The mobile user is the performance baseline, the midrange phone on a real network with a warm cache and a wandering attention span. Everything desktop hides, mobile exposes.
A performance budget is the draft contract that turns that reality into numbers the team can violate or satisfy. Without it, every sprint decides performance by accident.
Budgets fail not because they are wrong but because nobody owns them. The fix is ownership, enforcement and a field check that keeps the budget honest.
Setting the Budget
Budget the three vitals on the mobile field at the 75th percentile, plus the levers that drive them: page weight in kilobytes, main thread time on boot, and the third-party bill.
Budget per template, not per site. A checkout template earns a harder budget than a blog post, and the enforcement needs the granularity to say so.
The budget is an engineering contract. It states the number, the template, the measurement surface and the owner, so a violation has an address.
Enforcement in the Build
The build fails on weight. A bundle that breaks the kilobyte budget stops the merge, which is how budgets become requirements instead of reminders.
Synthetic checks add the second gate. A Lighthouse pass against the budget in the pipeline catches what a weight check cannot, interaction and layout patterns.
The third gate is the field. Monthly field measurements per template compare against the budget, and regressions get opened as tickets with the template and the metric attached.
| Gate | When | Catches |
|---|---|---|
| Build weight | Each merge | Bundle and asset growth |
| Synthetic pass | Each release | Vital regressions |
| Field check | Monthly | Real user drift |
Mobile-Specific Levers
Network shaping makes the difference. Throttled to midrange reality, images that pass on desktop fail on mobile, and the budget test runs on the mobile profile.
Execution matters more on mobile. Parse and layout cost more relative to device speed, so main thread time is a first-class mobile budget line.
Input handling decides INP on mobile. Touch targets and handlers run on the same constrained thread, and the interaction budget applies here first.
- Test on a throttled midrange profile
- Budget main thread time, not just transfer
- Enforce image and third-party budgets per template
- Measure the field per region and device class
Budget Failures
A budget with no owner is the first failure. Numbers without a name get violated in the first sprint and are forgiven in the first quarter.
A desktop budget is the second. Budgeting on a lab desktop hides the entire mobile surface the field is actually measured on.
A static budget is the third. Set once and forgotten, it decays as the product grows, and nobody notices until the field score already fell.
A Living Contract
Assign each budget to the team that ships the template. The owner adjusts the number only with a documented trade, and every violation has a ticket, not an apology.
Review the numbers quarterly against the business. A template that earns more can fund a heavier budget, a template that cannot afford it gets the arithmetic enforced.
Report the budget in the same dashboard as the business. When revenue and the field score share a page, the tradeoffs stop being invisible.
Real-World Considerations
Emerging markets reshape the baseline. Devices and networks in different regions set different floors, and a single global budget hides the hardest surface.
Features negotiate for weight. Every new component asks for its share of the budget, and the enforcement that refuses without a trade keeps the contract alive.
The budget intersects with the third-party bill. Tags reprice without a commit, so the monthly field check is the only real enforcement on that line.
Where Budgets Bite
Product teams shipping weekly need the budget most, because enforcement is the only thing standing between performance and the next feature swipe.
Agencies and site owners benefit from the same contract, one dashboard, one owner, one review cycle, so performance stops being a quarterly surprise.
Implementation Checklist
- Set per-template budget numbers for the three vitals
- Name an owner for every budget line
- Fail the build on weight overruns
- Run synthetic checks in the pipeline
- Verify the field monthly per region and device
- Review the numbers quarterly against the business
Final Thoughts
A mobile performance budget converts the field score from a hope into a contract with an owner. Enforcement in the build and measurement in the field hold the contract.
Set the numbers, name the owners, and check the surface monthly. The mobile score follows the discipline, not the chart.
Frequently Asked Questions
The build fails for weight and a ticket opens for field drift. Both surface an owner and a trade, which is what a budget is for.
No. Money templates earn tighter budgets and strict ceilings, content pages run looser numbers, and the granularity is what makes the contract enforceable.
Within a quarter if unowned. The quarterly review against the business is what keeps the numbers attached to reality.

