{
  "slug": "blended-labor-rate-warranty-mix",
  "title": "Blended Labor Rate by Customer Mix Calculator",
  "heading": "Blended Labor Rate by Customer Mix Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/blended-labor-rate-warranty-mix",
  "summary": "See what your labor rate really averages once warranty, fleet, and internal work are mixed in.",
  "description": "Almost no shop bills every hour at the posted rate. Customer-pay work goes out at the door rate, manufacturer or extended-warranty work goes out at whatever rate the administrator approves, fleet and wholesale accounts get a negotiated discount, and internal work on your own lot vehicles bills at cost. Each of those buckets has a different rate and a different share of your hours, and the weighted average of all of them is the number that actually drives your labor gross profit. This calculator takes the hours and rate for each bucket and produces the blended rate, the gross profit at your loaded technician cost, and the dollar impact of your mix. The insight most owners get from running it is that mix matters more than the door rate. Raising your posted rate by ten dollars does nothing to the sixty percent of your hours locked into warranty schedules and fleet contracts. Shifting even ten percent of hours from a discounted bucket into customer pay usually moves the blended rate more than a rate increase would, and it does not risk losing retail customers. Use it before you renew a fleet contract or accept a new warranty program.",
  "formula": "Blended Rate = Σ(Hours_bucket × Rate_bucket) ÷ Σ(Hours_bucket). Labor GP% = (Blended Rate − Loaded Tech Cost/hr) ÷ Blended Rate.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=blended-labor-rate-warranty-mix",
  "inputs": [
    {
      "id": "cpHours",
      "label": "Customer-pay hours per month",
      "kind": "number",
      "hint": null,
      "default": 380,
      "unit": "hrs",
      "min": 0,
      "max": null
    },
    {
      "id": "cpRate",
      "label": "Customer-pay rate",
      "kind": "number",
      "hint": null,
      "default": 155,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "warrantyHours",
      "label": "Warranty hours per month",
      "kind": "number",
      "hint": null,
      "default": 120,
      "unit": "hrs",
      "min": 0,
      "max": null
    },
    {
      "id": "warrantyRate",
      "label": "Approved warranty rate",
      "kind": "number",
      "hint": null,
      "default": 118,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "fleetHours",
      "label": "Fleet / wholesale hours per month",
      "kind": "number",
      "hint": null,
      "default": 90,
      "unit": "hrs",
      "min": 0,
      "max": null
    },
    {
      "id": "fleetRate",
      "label": "Fleet / wholesale rate",
      "kind": "number",
      "hint": null,
      "default": 125,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "techCost",
      "label": "Loaded technician cost per hour",
      "kind": "number",
      "hint": null,
      "default": 46,
      "unit": "$/hr",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "blended",
      "label": "Blended labor rate",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "gapToDoor",
      "label": "Gap below your customer-pay rate",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "gpPct",
      "label": "Labor gross margin",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "gpDollars",
      "label": "Monthly labor gross profit",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "cpShare",
      "label": "Share of hours at customer-pay rate",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "revenue",
      "label": "Monthly labor revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Customer-pay hours per month: 380 hrs",
      "Customer-pay rate: 155 $/hr",
      "Warranty hours per month: 120 hrs",
      "Approved warranty rate: 118 $/hr",
      "Fleet / wholesale hours per month: 90 hrs",
      "Fleet / wholesale rate: 125 $/hr",
      "Loaded technician cost per hour: 46 $/hr"
    ],
    "outputs": [
      "Blended labor rate: $142.90",
      "Gap below your customer-pay rate: $12.10",
      "Labor gross margin: 67.8%",
      "Monthly labor gross profit: $57,170",
      "Share of hours at customer-pay rate: 64.4%",
      "Monthly labor revenue: $84,310"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter customer-pay hours per month (hrs).",
      "Enter customer-pay rate ($/hr).",
      "Enter warranty hours per month (hrs).",
      "Enter approved warranty rate ($/hr).",
      "Enter fleet / wholesale hours per month (hrs).",
      "Enter fleet / wholesale rate ($/hr).",
      "Enter loaded technician cost per hour ($/hr).",
      "Read your blended labor rate 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": {
        "cpHours": 230,
        "cpRate": 95,
        "warrantyHours": 70,
        "warrantyRate": 70,
        "fleetHours": 50,
        "fleetRate": 75,
        "techCost": 28
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "cpHours": 380,
        "cpRate": 155,
        "warrantyHours": 120,
        "warrantyRate": 120,
        "fleetHours": 90,
        "fleetRate": 125,
        "techCost": 46
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "cpHours": 610,
        "cpRate": 250,
        "warrantyHours": 190,
        "warrantyRate": 190,
        "fleetHours": 140,
        "fleetRate": 200,
        "techCost": 74
      }
    }
  ],
  "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": "What is a healthy customer-pay share of hours?",
      "a": "For an independent shop, 65% or more of billed hours at the customer-pay rate is a strong position. Below about 50%, your profitability is largely controlled by rates other people set, and a single warranty schedule change or fleet renegotiation can swing your year."
    },
    {
      "q": "Should I turn down fleet work with a low rate?",
      "a": "Not automatically. Fleet work fills slow days and stabilizes cash flow, which has real value. The test is whether it displaces customer-pay work. If your bays are full and fleet is pushing out retail jobs at a thirty-dollar-lower rate, it is costing you. If it fills otherwise idle hours, a lower rate still beats an empty bay."
    },
    {
      "q": "What belongs in the loaded technician cost?",
      "a": "Base wage or flat-rate pay, payroll taxes, workers compensation, health benefits, paid time off, and training. That typically runs 25% to 40% above raw hourly wage. Using bare wage inflates your apparent gross margin and leads to underpricing."
    },
    {
      "q": "Why does raising the door rate move this number so little?",
      "a": "Because a rate increase only applies to the customer-pay bucket. If customer pay is half your hours, a ten-dollar increase moves the blended rate five dollars. Changing the mix, or renegotiating a warranty and fleet rate at renewal, often produces a bigger result than a retail increase that risks customer pushback."
    },
    {
      "q": "Should internal and comeback hours be in here?",
      "a": "Track them separately. Internal work on your own vehicles and warranty comebacks consume technician capacity at zero or negative rate, so folding them into this calculation as billed hours hides the problem. Measure them as a percentage of total available hours instead, and keep comebacks under 2%."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/effective-labor-rate",
    "https://www.revenuelab.fyi/toolbox/fleet-account-margin",
    "https://www.revenuelab.fyi/toolbox/shop-breakeven-ro-count"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Blended Labor Rate by Customer Mix Calculator (https://www.revenuelab.fyi/toolbox/blended-labor-rate-warranty-mix)"
}