{
  "slug": "detailing-package-margin",
  "title": "Detailing Package Margin Calculator",
  "heading": "Detailing Package Margin Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/detailing-package-margin",
  "summary": "True profit per package after product cost, labor time, and equipment wear.",
  "description": "Detailing pricing often gets set by copying a competitor's menu instead of costing out the actual labor hours and product consumption per package. A basic wash-and-vacuum might take 45 minutes and $3 in product, while a full paint correction and ceramic package can run 8+ hours and $60+ in pads, compound, and coating — treating them with the same margin assumption produces wildly different real profitability per hour of bay/bay-tech time. This calculator takes package price, product cost, labor hours at a loaded rate, and equipment/consumable overhead to compute dollar margin and, critically, margin per labor hour, which is the number that actually tells you whether a package is worth the calendar slot compared to booking two smaller jobs in the same time.",
  "formula": "Margin$ = Price − Product Cost − (Labor Hours × Loaded Rate) − Overhead. Margin per Hour = Margin$ ÷ Labor Hours.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=detailing-package-margin",
  "inputs": [
    {
      "id": "price",
      "label": "Package price",
      "kind": "number",
      "hint": null,
      "default": 350,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "productCost",
      "label": "Product/consumables cost",
      "kind": "number",
      "hint": null,
      "default": 28,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "laborHours",
      "label": "Labor hours to complete",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "hrs",
      "min": 0.1,
      "max": null
    },
    {
      "id": "loadedRate",
      "label": "Loaded detailer pay rate",
      "kind": "number",
      "hint": null,
      "default": 22,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "overhead",
      "label": "Bay/equipment overhead allocation",
      "kind": "number",
      "hint": null,
      "default": 15,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "marginPerHour",
      "label": "Margin per labor hour",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "margin",
      "label": "Total dollar margin",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "marginPct",
      "label": "Margin percent",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "laborCost",
      "label": "Labor cost for package",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Package price: 350 $",
      "Product/consumables cost: 28 $",
      "Labor hours to complete: 5 hrs",
      "Loaded detailer pay rate: 22 $/hr",
      "Bay/equipment overhead allocation: 15 $"
    ],
    "outputs": [
      "Margin per labor hour: $39.40",
      "Total dollar margin: $197.00",
      "Margin percent: 56.3%",
      "Labor cost for package: $110.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter package price ($).",
      "Enter product/consumables cost ($).",
      "Enter labor hours to complete (hrs).",
      "Enter loaded detailer pay rate ($/hr).",
      "Enter bay/equipment overhead allocation ($).",
      "Read your margin per labor hour 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": {
        "price": 210,
        "productCost": 17,
        "laborHours": 3,
        "loadedRate": 13,
        "overhead": 9
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "price": 350,
        "productCost": 28,
        "laborHours": 5,
        "loadedRate": 22,
        "overhead": 15
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "price": 560,
        "productCost": 45,
        "laborHours": 8,
        "loadedRate": 35,
        "overhead": 24
      }
    }
  ],
  "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": "Why does margin per hour matter more than margin percent?",
      "a": "A package with 70% margin but 8 hours of labor might net less per calendar hour than a 50%-margin package that takes 90 minutes. Since your calendar is the real constraint, not your product cost, margin per hour tells you which packages to push and which to reprice or drop."
    },
    {
      "q": "What margin per hour should I target?",
      "a": "Most profitable detail operations target $35-$60+ margin per labor hour after paying the detailer, which typically means retail pricing needs to be 2.5-3.5x the loaded labor cost once product and overhead are included."
    },
    {
      "q": "How should ceramic coating packages be priced differently?",
      "a": "Coating has high product cost (structural cost, not just consumable) and requires controlled environment/cure time that ties up a bay longer than the active labor hours suggest — model bay-occupancy hours separately from labor hours for coating jobs specifically."
    },
    {
      "q": "Should mobile detailing use the same overhead number?",
      "a": "No — replace bay overhead with vehicle operating cost per job (fuel, water/power generator run time, travel time) which is usually higher per job than a fixed-location bay's allocated overhead."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/mobile-mechanic-route-economics",
    "https://www.revenuelab.fyi/toolbox/tire-shop-margin-per-unit"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Detailing Package Margin Calculator (https://www.revenuelab.fyi/toolbox/detailing-package-margin)"
}