{
  "slug": "developer-build-minute-cost",
  "title": "Developer Hourly Cost of a Build Minute Calculator",
  "heading": "Cost of a Slow Build — Developer Time Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/developer-build-minute-cost",
  "summary": "Translate build/test wait time into real developer salary cost.",
  "description": "A slow build isn't just an annoyance — it's paid idle time multiplied across every developer, every build, every day, and it compounds because slow builds also break flow state, adding a well-documented context-switch penalty beyond the raw wait time. This calculator takes your team's average loaded hourly cost, average build time, and builds run per developer per day, and computes total daily and annual cost of build wait time across the team, plus the cost of a proposed build-speed improvement so you can justify infrastructure or tooling investment with a number instead of a vibe. It also applies a context-switch multiplier by default, since research on developer flow state (notably from studies referenced in the DORA and SPACE frameworks) suggests wait times over roughly 2 minutes cause many developers to switch tasks, and returning to the original task afterward costs meaningfully more than the wait time alone.",
  "formula": "Daily cost = developers × builds per dev per day × build minutes ÷ 60 × hourly rate × context-switch multiplier.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=developer-build-minute-cost",
  "inputs": [
    {
      "id": "developers",
      "label": "Number of developers",
      "kind": "number",
      "hint": null,
      "default": 25,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "buildsPerDay",
      "label": "Builds per developer per day",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "buildMinutes",
      "label": "Average build/test time",
      "kind": "number",
      "hint": null,
      "default": 6,
      "unit": "minutes",
      "min": 0.1,
      "max": null
    },
    {
      "id": "hourlyRate",
      "label": "Loaded hourly cost per developer",
      "kind": "number",
      "hint": null,
      "default": 90,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "switchMultiplier",
      "label": "Context-switch penalty multiplier",
      "kind": "number",
      "hint": null,
      "default": 1.5,
      "unit": null,
      "min": 1,
      "max": 3
    },
    {
      "id": "workdaysPerYear",
      "label": "Working days per year",
      "kind": "number",
      "hint": null,
      "default": 230,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "annualCost",
      "label": "Annual cost of current build time",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "dailyCost",
      "label": "Daily cost across the team",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "dailyMinutesPerDev",
      "label": "Minutes waiting per developer per day",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "perMinuteSaved",
      "label": "Annual value of shaving 1 minute off build time",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Number of developers: 25",
      "Builds per developer per day: 8",
      "Average build/test time: 6 minutes",
      "Loaded hourly cost per developer: 90 $",
      "Context-switch penalty multiplier: 1.5",
      "Working days per year: 230"
    ],
    "outputs": [
      "Annual cost of current build time: $621,000",
      "Daily cost across the team: $2,700",
      "Minutes waiting per developer per day: 48",
      "Annual value of shaving 1 minute off build time: $103,500"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter number of developers.",
      "Enter builds per developer per day.",
      "Enter average build/test time (minutes).",
      "Enter loaded hourly cost per developer ($).",
      "Enter context-switch penalty multiplier.",
      "Enter working days per year.",
      "Read your annual cost of current build time on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "developers": 15,
        "buildsPerDay": 5,
        "buildMinutes": 3.5999999999999996,
        "hourlyRate": 55,
        "switchMultiplier": 1,
        "workdaysPerYear": 138
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "developers": 25,
        "buildsPerDay": 8,
        "buildMinutes": 6,
        "hourlyRate": 90,
        "switchMultiplier": 1.5,
        "workdaysPerYear": 230
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "developers": 40,
        "buildsPerDay": 13,
        "buildMinutes": 9.600000000000001,
        "hourlyRate": 145,
        "switchMultiplier": 2.4000000000000004,
        "workdaysPerYear": 368
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Is the context-switch multiplier real or just a guess?",
      "a": "It reflects a well-observed pattern in developer productivity research: waits over roughly 1-2 minutes push many developers to switch to email, chat, or another task, and returning to full concentration on the original problem takes meaningfully longer than the wait itself. The exact multiplier varies by team and task type, so treat the default 1.5x as a reasonable starting estimate, not a precise measurement — tune it against your own team's self-reported experience."
    },
    {
      "q": "How do I use this to justify a CI investment?",
      "a": "Compare the 'per-minute-saved' output against the cost of the proposed fix — build caching, parallelized test suites, or faster CI runners. If shaving 3 minutes off a shared build pipeline saves $180,000/year in developer time and the fix costs $20,000 in engineering time plus $500/month in better infra, the payback period is typically under two months, which is an easy case to make."
    },
    {
      "q": "Does this only apply to full CI builds, or local builds too?",
      "a": "Both — local build/compile/hot-reload time is often ignored in these calculations but happens far more frequently per developer per day than full CI runs, so even small local build times multiply into large numbers. Run the calculator twice, once for local iteration loops and once for CI, since they're usually optimized with different tools and have different payback profiles."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/cicd-minutes-cost",
    "https://www.revenuelab.fyi/toolbox/technical-debt-interest",
    "https://www.revenuelab.fyi/toolbox/oncall-load-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Developer Hourly Cost of a Build Minute Calculator (https://www.revenuelab.fyi/toolbox/developer-build-minute-cost)"
}