Notifications are sent out to alert you whenever one or more of your performance budgets is crossed. We send alerts via email and to webhook endpoints like Slack. 

It's important to remember this only happens when the budget is crossed, either from under budget to over budget, or over budget to under budget. If your test is over budget 10 times or hours in a row, we only send a notification on the first crossover. We don't send 10 notifications. This is done to reduce spam.

If you think you should be getting notifications but you're not, check the following:

  • Did the budget cross the threshold? Check your performance budget charts. Notifications are only sent at the point at which the metric value crosses over or under the threshold.

  • Are notifications turned on? Open the Budget tab in your chart and make sure the "Send alerts for this budget" checkbox is checked.

  • Are you in the notification list? Check the "Notifications" section in your Settings and make sure your email address or webhook is listed.


You can send performance budget alerts straight to your Slack channel.

1. Search the Slack app directory for Incoming Webhooks and then click Add Configuration


2. Choose the Slack channel you'd like the alerts sent to and click Add incoming Webhooks Integration.

3. Copy the Webhook URL you're given by Slack. In your SpeedCurve settings add a new Webhook and paste in the Slack Webhook URL.

4. For each performance budget, make sure that you have the "Send alerts for this budget" checkbox checked. You'll then get an alert in your Slack channel every time a performance budget alert is sent.


Microsoft Teams

You can send performance budget alerts straight to your Microsoft Teams channel.

1. Search the app directory for Incoming Webhook and click on the matching result.


2.  Click Add to a team.


3. Select the channel that you want to receive the alerts and click Set up a connector


4. Give the Incoming Webhook a name, optionally upload an image, and click Create.


5.  Copy the URL that Microsoft Teams generates for the webhook.


6. In your SpeedCurve settings, click Add Webhook and paste in the URL you just copied. Click Add to save the webhook.


SpeedCurve supports sending alerts to any webhook.

  1. In the Alerts section of your SpeedCurve settings, click the Add Webhook button and enter the URL of your webhook.

  2. For each performance budget, make sure that you have Send alerts for this budget checkbox checked.

That's it! Your webhook will receive a POST request for each performance budget alert.

Webhook payload details

Each performance budget alert will be sent as a separate payload to your webhook. The payload will be a HTTP POST request, where the request body is a JSON-encoded string. See below for the JSON schema.

    // Information about the budget that is alerting
    "budget": {
        "metric": "SpeedIndex",
        "threshold": "1.8 seconds",
        "threshold_absolute": 1.8,
        "threshold_relative": 10

    // Information about the chart that the budget is set on
    "chart": {
        "title": "Start Render, SpeedIndex | Wildly Inaccurate | Home | AVG",
        "chart_type": "timeseries",
        "metric": [
        "correlation_metrics": [],
        "correlation_stat": null,
        "stat": "50",
        "site_ids": [
        "label": [
        "region": [
        "test_profile_name": [
        "customer_data": []

    // An array of crossing objects, each describing a data series
    // that crossed the budget threshold
    "crossings": [
            // Whether the series went over or under the budget
            // threshold
            "type": "under",

            // The value of the threshold that this series crossed
            "threshold": 1.8,

            // The type of threshold that this series crossed
            // (absolute or relative)
            "threshold_type": "absolute",

            // Upper and lower bounds that were used for relative                // thresholds
            "threshold_lower": null,
            "threshold_upper": null,

            // By how much the threshold was crossed
            "difference_from_threshold": 0.36111111111111116,

            // The value in the series that triggered this alert
            "latest_value": "1.15",

            "series": {
                // The name that this series has in the chart
                "name": "SpeedIndex (Syn), BBC News, Home",

                // Information about the metric
                "metrictype": "time",
                "metricName": "SpeedIndex",
                "metricQualified": "SYN|speedindex",

                // An array of data points that were evaluated
                // against the budget
                "data": [
                        // A timestamp for this data point,
                        // expressed in milliseconds
                        "x": "1545658800000",

                        // The value of the metric at this point
                        "y": "1.12",

                        // For synthetic data, how many tests made
                        // up this data point
                        "num": "16",

                        // For synthetic median and 95th percentile
                        // queries, the test ID for this data point
                        "test": "181224_4Q_ab33515a52212727a28cd0cae080220c"
                        // More data points

    // A copy of the crossing object with the largest
    // difference_from_threshold value
    "largest_crossing": {
        // ...

    // A URL to an image of the chart series at the time of
    // the alert
    "chart_image_url": "https:\/\/\/n.php?hash=...",

    // A public ("share") URL to the Favorites dashboard containing
    // the chart
    "chart_web_url": "https:\/\/\/my-account\/favorite\/...",

    // Used by some services like VictorOps
    "message_type": "INFO"

Interpreting performance budget alerts

Why am I receiving these alerts?

These alerts come from performance budgets in SpeedCurve. If you've only recently created a SpeedCurve account, then these alerts likely came from the default budgets that we set up for you. 

What do the alerts mean?

The alerts are to tell you when the performance of your web pages has gone over a predefined threshold, or changed significantly. Each alert contains one or more "budget crossings", which are charts and information about changes detected in your pages.

How do I turn off the alerts?

To turn off all performance budget alerts, you need to log into your SpeedCurve account and remove your email address from Settings > Alerts.

You can also disable alerts for specific budgets or charts:

  1. Click on a chart in the alert to go to the SpeedCurve dashboard containing the chart.

  2. Click on the Edit link at the top-right of the chart (you may need to log into SpeedCurve before this is visible). 

  3. Expand the Set a performance budget section of the chart editor and set the alerts toggle to Off.

  4. Click Save

What do the charts in the alert mean?

Each alert contains one or more "budget crossings". At a glance, you can see the following information for each crossing: 

  • The budget metric. Read about what the different metrics mean.

  • The name of the team that the budget belongs to.

  • The value of the budget threshold.

  • The current value of the metric, and how far above or below the threshold that value is.

  • A chart showing several days of historic data leading up to the budget crossing. Clicking on the chart will take you to the budget in SpeedCurve.


Why do some charts have a red threshold line where others have a green boundary?

All performance budgets have an absolute threshold. When a chart crosses this threshold, it is represented by a red line. Budgets can also have a relative threshold, which is represented by a green boundary. Read on to learn more.

Absolute thresholds

When you create a performance budget you set an absolute threshold. Alerts will be sent for this budget whenever the latest value for the metric crosses this threshold.

Alerts for absolute threshold crossings will include a chart similar to what you will see in your Site dashboard. The red line represents the value of the absolute threshold. Values over the threshold will be coloured red.


Relative thresholds

As well as the absolute threshold, you can also set a relative threshold or rate of change for a budget. Alerts will be sent for this budget whenever the latest value for the metric is different to the previous value by the amount specified.