{
  "slug": "machine-hourly-rate",
  "title": "Machine Hourly Rate Calculator",
  "heading": "Machine Hourly Rate Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/machine-hourly-rate",
  "summary": "The true cost per hour to run a machine — depreciation, power, tooling, labor, overhead.",
  "description": "Job shops that quote off labor rate alone routinely lose money on jobs that hog machine time but use little labor, like long unattended CNC runs. The machine hourly rate bundles ownership cost (depreciation and financing), operating cost (power, consumables, tooling wear), floor overhead allocated per machine, and the operator's burdened labor rate, divided across the hours the machine actually runs in a year. This is the number you should be quoting against, not a generic shop rate. Depreciation here uses straight-line over the machine's useful life to salvage value, which is standard for internal costing even if your tax depreciation schedule differs. Annual usable hours account for realistic uptime, not 8,760 calendar hours or even a naive 2,080 shift-hours figure, since maintenance, changeovers, and downtime always eat into it.",
  "formula": "Annual Machine Cost = (Purchase Price − Salvage) ÷ Useful Life + Annual Power + Annual Consumables/Tooling + Allocated Overhead + (Labor Rate × Annual Hours). Hourly Rate = Annual Machine Cost ÷ Annual Usable Hours.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=machine-hourly-rate",
  "inputs": [
    {
      "id": "price",
      "label": "Machine purchase price",
      "kind": "number",
      "hint": null,
      "default": 180000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "salvage",
      "label": "Salvage value at end of life",
      "kind": "number",
      "hint": null,
      "default": 18000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "lifeYears",
      "label": "Useful life",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "years",
      "min": 1,
      "max": null
    },
    {
      "id": "annualHours",
      "label": "Usable hours per year",
      "kind": "number",
      "hint": null,
      "default": 3800,
      "unit": "hrs",
      "min": 1,
      "max": null
    },
    {
      "id": "powerCost",
      "label": "Power + consumables per year",
      "kind": "number",
      "hint": null,
      "default": 9500,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "overhead",
      "label": "Allocated shop overhead per year",
      "kind": "number",
      "hint": null,
      "default": 14000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "laborRate",
      "label": "Operator burdened labor rate",
      "kind": "number",
      "hint": null,
      "default": 34,
      "unit": "$/hr",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "rate",
      "label": "Machine hourly rate (fully burdened)",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "rateNoLabor",
      "label": "Machine-only rate (excl. labor)",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "annualCost",
      "label": "Total annual cost to own & run",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "depreciation",
      "label": "Annual depreciation",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Machine purchase price: 180000 $",
      "Salvage value at end of life: 18000 $",
      "Useful life: 12 years",
      "Usable hours per year: 3800 hrs",
      "Power + consumables per year: 9500 $",
      "Allocated shop overhead per year: 14000 $",
      "Operator burdened labor rate: 34 $/hr"
    ],
    "outputs": [
      "Machine hourly rate (fully burdened): $43.74",
      "Machine-only rate (excl. labor): $9.74",
      "Total annual cost to own & run: $166,200",
      "Annual depreciation: $13,500"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter machine purchase price ($).",
      "Enter salvage value at end of life ($).",
      "Enter useful life (years).",
      "Enter usable hours per year (hrs).",
      "Enter power + consumables per year ($).",
      "Enter allocated shop overhead per year ($).",
      "Enter operator burdened labor rate ($/hr).",
      "Read your machine hourly rate (fully burdened) 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": 108000,
        "salvage": 11000,
        "lifeYears": 7,
        "annualHours": 2300,
        "powerCost": 5700,
        "overhead": 8500,
        "laborRate": 20
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "price": 180000,
        "salvage": 18000,
        "lifeYears": 12,
        "annualHours": 3800,
        "powerCost": 9500,
        "overhead": 14000,
        "laborRate": 34
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "price": 288000,
        "salvage": 29000,
        "lifeYears": 19,
        "annualHours": 6100,
        "powerCost": 15200,
        "overhead": 22500,
        "laborRate": 54
      }
    }
  ],
  "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": "Should I include labor in the machine rate or quote it separately?",
      "a": "Either works as long as you're consistent. Bundling it into one rate simplifies quoting for lights-out or unattended operations. Separating them helps when the same machine sometimes runs unattended overnight and sometimes needs a dedicated operator, since the labor portion changes but the machine portion doesn't."
    },
    {
      "q": "What usable hours figure should I use?",
      "a": "Start from your calendar hours available (shifts × days), then subtract actual historical downtime for maintenance, changeovers, and no-work gaps. Most single-shift shops land between 1,600 and 2,000 usable hours; multi-shift or lights-out CNC operations can hit 3,500-5,000."
    },
    {
      "q": "How do I handle a fully depreciated machine that's still running?",
      "a": "Drop the depreciation line to zero or replace it with a smaller 'replacement reserve' figure so you're still saving toward the eventual replacement. Running the rate at zero depreciation understates true cost and can lead to underpricing new work."
    },
    {
      "q": "Does this rate include profit margin?",
      "a": "No — this is a cost rate, not a sell rate. Add your target margin or use it as the base for a separate markup calculation before quoting a customer."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/job-shop-quote-markup",
    "https://www.revenuelab.fyi/toolbox/shop-labor-burden-rate",
    "https://www.revenuelab.fyi/toolbox/tooling-breakeven-quantity"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Machine Hourly Rate Calculator (https://www.revenuelab.fyi/toolbox/machine-hourly-rate)"
}