Performance budget checker
Open Performance budget checker on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.
Tool capabilities
{
"id": "performance-budget-checker",
"category": "developer-tools",
"built": true,
"requirements": "Up to 2,000,000 characters for the measured export and 100,000 characters for the budget. Processing runs locally in a background worker in your browser. Downloads: a JSON report, a CSV and a Markdown table.",
"implementation": {
"fields": [
{
"key": "budget",
"label": "Budget",
"value": "[\n {\n \"path\": \"/*\",\n \"resourceSizes\": [\n {\n \"resourceType\": \"script\",\n \"budget\": 200\n },\n {\n \"resourceType\": \"total\",\n \"budget\": 500\n }\n ],\n \"resourceCounts\": [\n {\n \"resourceType\": \"third-party\",\n \"budget\": 0\n }\n ],\n \"timings\": [\n {\n \"metric\": \"load\",\n \"budget\": 2000\n }\n ]\n }\n]\n",
"type": "textarea",
"maxLength": 100000,
"help": "A Lighthouse budget.json array, or CSV rows kind,key,budget. Sizes are KiB, timings are milliseconds."
},
{
"key": "sizeMode",
"label": "Size to compare",
"value": "transfer",
"type": "select",
"values": [
"transfer",
"decoded"
],
"labels": {
"transfer": "Transferred size",
"decoded": "Decoded size"
}
},
{
"key": "unknownSizes",
"label": "Resources without a size",
"value": "not-measured",
"type": "select",
"values": [
"not-measured",
"count-as-zero"
],
"labels": {
"not-measured": "Report as not measured",
"count-as-zero": "Count as zero bytes"
}
},
{
"key": "firstPartyHosts",
"label": "First-party hosts",
"value": "",
"type": "text",
"maxLength": 2000,
"help": "Comma separated, * allowed. Empty uses the host of the first request."
}
],
"registrationFamily": "report-ingest-analysis-reference",
"inputMaxLength": 2000000,
"inputErrorCode": "REPORT_INGEST_ANALYSIS_REFERENCE_TOO_LONG",
"note": "Runs in your browser in a background worker. Reads a HAR file, Lighthouse JSON or resource timing CSV of up to 2,000,000 characters.",
"experience": {
"automatic": false,
"single": false,
"inputMaxLength": 2000000,
"inputMode": "text",
"label": "HAR file, Lighthouse JSON or resource timing CSV",
"placeholder": "{\"log\":{\"entries\":[...]}}",
"help": "Export a HAR from the browser network panel, or save a Lighthouse report as JSON. Up to 2,000,000 characters. Review the settings before running.",
"helpParts": [
"Export a HAR from the browser network panel, or save a Lighthouse report as JSON.",
"Up to 2,000,000 characters.",
"Review the settings before running."
],
"action": null
},
"mode": "explicit",
"interactive": false
},
"execution": "Browser interface",
"api": null,
"browser_agent": {
"supported": true,
"name": "run_current_tool",
"discovery": "WebMCP on the human page in a supporting browser",
"verification": "See audit/API-AUDIT.md; availability is not verification"
}
}Page guide
Check a HAR file, Lighthouse report or resource timing export against a performance budget. Each size, request count and timing gets a pass or fail with the amount over budget.
How to use Performance budget checker
- Paste a HAR file, a Lighthouse JSON report or a resource timing CSV.
- Paste your budget as Lighthouse budget.json or as kind,key,budget rows.
- Choose transfer or decoded sizes.
- Run the check and review each budget line.
- Download the JSON report, CSV or Markdown table.
Useful next steps
Budget format
Budgets follow the Lighthouse budget.json format: resourceSizes in KiB, resourceCounts in requests and timings in milliseconds, with an optional path pattern. When several budgets match the page path, the last one is used, as in Lighthouse.
How resources are classified
Each request is classified by its MIME type, then by its initiator type, then by its file extension into document, script, stylesheet, image, media, font or other. A request is third-party when its host does not match the first-party hosts you list, or the host of the first request when you list none.
Sizes and timings
Transfer size uses the HAR _transferSize value, or body plus header size when that is missing. Decoded size uses the content size. HAR timings cover load and dom-content-loaded. Lighthouse reports supply their own resource summary and metric values.