DEV Community

Cover image for Performance Budget Thresholds Template
Apogee Watcher
Apogee Watcher

Posted on • Originally published at apogeewatcher.com

Performance Budget Thresholds Template

The Problem: No Clear Definition of "Good"

Without concrete thresholds, you can't set performance budgets, explain pass/fail to clients, or know when to alert. "LCP should be good" isn't enough — you need numbers. This template gives you those numbers: ready-to-use thresholds by site type (e-commerce, agency client sites, content, SaaS, landing pages) so you can define "good" once and enforce it everywhere.

Benefits: One place for all your budget values, client-ready language, and clear escalation (warning vs critical). What you get: Set budgets per site, get alerted only when it matters, and report to clients with confidence.


Your Ready-to-Use Performance Budget Template

Copy the thresholds below into a Google Sheet, CSV, or your monitoring tool. No theory — just the numbers, organised by site type and strategy.

If you want the "why" behind these numbers, read our Complete Guide to Performance Budgets first.


The Template

Universal Thresholds (Google's "Good" Baselines)

These are the starting points for any site. For an introduction to what is Core Web Vitals, see our practical guide; the numbers below follow Google's documented thresholds. Adjust based on your baseline: If your current scores are far from these targets, use them as stretch goals and set interim budgets at your current values. Tighten as you improve.

Note: For LCP, INP, FCP, TBT, Speed Index — lower is better. "Poor" = exceed the max. For Performance Score and CLS — higher is better (Score) / lower is better (CLS).

Metric Good Needs Improvement Poor Unit
LCP ≤2500 2500–4000 >4000 milliseconds
INP ≤200 200–500 >500 milliseconds
CLS ≤0.10 0.10–0.25 >0.25 score
FCP ≤1800 1800–3000 >3000 milliseconds
TBT ≤200 200–600 >600 milliseconds
Speed Index ≤3400 3400–5800 >5800 milliseconds
Performance Score ≥90 50–89 ≤49 points (0–100)

Budget Template by Site Type

E-Commerce

Metric Mobile Budget Desktop Budget Priority Notes
LCP 2000 1500 Critical Product images are usually LCP — optimise aggressively
INP 150 100 Critical Cart, filters, search must feel instant
CLS 0.05 0.05 Critical Strict — shifts cause misclicks and lost revenue
FCP 1500 1200 High First paint signals page is loading
TBT 150 100 High Heavy JS frameworks common in e-commerce
Speed Index 3000 2500 Medium Visual completeness — product grid rendering
Performance Score 90 95 High Conversion-critical pages should target 95+

Agency Client Sites (Default)

Metric Mobile Budget Desktop Budget Priority Notes
LCP 2500 2000 Critical Standard threshold; tighten after initial optimisation
INP 200 150 High Most client sites are content-heavy, not interaction-heavy
CLS 0.10 0.10 Critical Watch for ad slots, lazy images, font loading
FCP 1800 1500 High Important for perceived speed
TBT 200 150 Medium Matters most for interactive pages
Speed Index 3400 2800 Medium Good general indicator
Performance Score 90 90 High Client-facing threshold — below 90 needs attention

Content / Blog Sites

Metric Mobile Budget Desktop Budget Priority Notes
LCP 2500 2000 Critical Hero images and article bodies are typical LCP elements
INP 200 200 Medium Less interactive — standard threshold is fine
CLS 0.10 0.10 High Ads and lazy-loaded images are the main risks
FCP 1800 1500 High Fast first paint keeps readers engaged
TBT 200 200 Low Minimal JS on most content pages
Speed Index 3400 3000 Medium Article rendering speed
Performance Score 90 90 High SEO-critical — content sites live or die by search

SaaS / Web Applications

Metric Mobile Budget Desktop Budget Priority Notes
LCP 2500 2000 High Dashboard load time — users expect app-level speed
INP 100 75 Critical App interactions must feel native — strict budget
CLS 0.05 0.05 Critical Dynamic content loading needs careful layout reservation
FCP 1500 1200 High Fast initial paint reduces perceived wait
TBT 150 100 Critical Heavy JS is expected but must be managed
Speed Index 3000 2500 Medium Complex UIs load incrementally
Performance Score 85 90 High SaaS apps score lower due to JS — 85 is realistic on mobile

Landing Pages / Marketing Sites

Metric Mobile Budget Desktop Budget Priority Notes
LCP 2000 1500 Critical First impression pages — speed is everything
INP 150 100 Medium Limited interactivity but CTAs must be responsive
CLS 0.05 0.05 Critical Zero tolerance — every shift is a potential lost conversion
FCP 1200 1000 Critical Sub-second FCP is the goal for landing pages
TBT 100 50 High Minimal JS — these pages should be fast
Speed Index 2500 2000 High Visual completeness drives conversion confidence
Performance Score 95 98 Critical Landing pages should be near-perfect

How to Use This Template

Step 1: Choose Your Site Type

Pick the template that matches your site (or start with the "Agency Client Sites" default if you're not sure).

Step 2: Copy Into Your Tool

Google Sheets / CSV:
Copy the CSV data above into a spreadsheet. Add columns for:

  • Current Mobile Score — Your latest test result
  • Current Desktop Score — Your latest test result
  • Status — Within Budget / Over Budget / Critical

Monitoring tool (like Apogee Watcher):
Enter the Mobile Budget and Desktop Budget values as your performance budget thresholds per site.

Lighthouse CI config:
Translate thresholds into your lighthouserc.json:

{
  "ci": {
    "assert": {
      "assertions": {
        "largest-contentful-paint": ["error", {"maxNumericValue": 2500}],
        "cumulative-layout-shift": ["error", {"maxNumericValue": 0.1}],
        "total-blocking-time": ["error", {"maxNumericValue": 200}],
        "first-contentful-paint": ["warn", {"maxNumericValue": 1800}],
        "categories:performance": ["error", {"minScore": 0.9}]
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Step 3: Baseline Your Sites

Run PageSpeed Insights on your key pages. Fill in the "Current" columns. Anything marked "Over Budget" is an immediate action item.

Step 4: Set Up Alerts

Configure your monitoring tool to alert you when any metric exceeds its budget. Without alerts, this template is just a document. With alerts, it's a safety net.


Multi-Client Tracking Spreadsheet

For agencies managing multiple clients, use this structure:

Client Domain Page Strategy LCP Budget LCP Actual LCP Status INP Budget INP Actual INP Status CLS Budget CLS Actual CLS Status Score Budget Score Actual Score Status Last Tested
Acme Corp acme.com Homepage Mobile 2500 2100 OK 200 180 OK 0.10 0.05 OK 90 92 OK 2026-02-10
Acme Corp acme.com Homepage Desktop 2000 1400 OK 150 95 OK 0.10 0.02 OK 90 96 OK 2026-02-10
Acme Corp acme.com Pricing Mobile 2500 3200 OVER 200 220 OVER 0.10 0.15 OVER 90 71 OVER 2026-02-10
Widget Co widgets.io Homepage Mobile 2500 1900 OK 200 160 OK 0.10 0.08 OK 90 94 OK 2026-02-10
Widget Co widgets.io Shop Mobile 2000 2800 OVER 150 190 OVER 0.05 0.12 OVER 90 67 OVER 2026-02-10

Color-code the Status column: green for OK, red for OVER. Review weekly.


Budget Escalation Levels

Not all budget violations are equal. Use escalation levels to prioritise response:

Level Condition Response SLA
Info Metric within 10% of budget Note for next review Next monthly review
Warning Metric exceeds budget by < 20% Investigate cause Within 1 week
Critical Metric exceeds budget by > 20% Immediate investigation Within 48 hours
Emergency Score drops below 50 or LCP > 5s Treat as incident Within 4 hours

Adjusting Budgets Over Time

Budgets aren't permanent. Review quarterly:

Tighten when:

  • Your team consistently meets budgets with room to spare
  • Competitors are faster and you're losing rankings
  • Client expectations increase

Loosen when:

  • New required functionality legitimately impacts performance (e.g., adding a complex interactive feature)
  • A temporary campaign requires heavier scripts (set an expiration date for the loosened budget)

Never loosen because:

  • "We can't fix it right now" — that's a prioritisation issue, not a budget issue
  • "The score fluctuates" — that's normal variance, not a reason to move the goalposts

Download Options

This template is available as:

  • CSV — Copy the CSV blocks above into any spreadsheet application (Google Sheets, Excel)
  • JSON — Use the Lighthouse CI config format for CI/CD integration
  • Monitoring tool — Enter the values directly into your platform's budget configuration

FAQ

Can I customise these thresholds for my specific site?
Yes. The template provides baseline values. Adjust based on your current scores, site type, and competitive benchmarks. E-commerce and landing pages often need stricter LCP and CLS budgets; content sites can use the standard thresholds.

What's the difference between the "Agency Client Sites" and "E-Commerce" templates?
Agency Client Sites use Google's standard "Good" thresholds as a default. E-Commerce is stricter — lower LCP (2s vs 2.5s), tighter INP (150ms vs 200ms), and stricter CLS (0.05 vs 0.1) because conversion-critical pages need to feel instant.

How do I use this template with a monitoring tool?
Copy the budget values into your tool's configuration. Most tools let you set thresholds per metric, per site, and per strategy (mobile/desktop). Once set, the tool will run tests against these budgets and alert you when thresholds are exceeded.

Should I track all metrics or just LCP, INP, and CLS?
LCP, INP, and CLS are the Core Web Vitals — track them first. FCP, TBT, and Speed Index add useful context. Performance Score is a useful composite. Start with CWV + Score; add others if you need deeper visibility.


What you can achieve: Every site can have clear pass/fail thresholds, alerts that fire only when metrics cross the line, and reports clients understand. Use this template so performance budgets stop being guesswork and start being something you can set, enforce, and show.

Managing performance budgets across multiple sites is easier with automation. Apogee Watcher lets you set budgets per site, get alerted when thresholds are exceeded, and track trends over time. Join the waitlist for early access.

Top comments (0)