{
  "slug": "vending-machine-route-profit",
  "title": "Vending Machine Route Profit Calculator",
  "heading": "Vending Machine Route Profit Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/vending-machine-route-profit",
  "summary": "Roll up per-machine sales, commission, and restocking cost across a route into monthly profit.",
  "description": "A vending route's profit isn't just sales minus product cost — location commission (the cut paid to the property owner, typically 5-25% of gross sales), restocking labor and mileage, and machine downtime all eat into margin before you see a dollar. This calculator takes average weekly sales per machine, product cost as a percentage of sales, commission rate, and route service costs (driver time and mileage per stop), and rolls it up across your total machine count to a monthly net profit figure. It's the number to check before adding a new location or route stop — a location only helps if it clears its own service cost on top of contributing margin.",
  "formula": "Gross sales = machines × avg weekly sales × 4.33. Product cost = gross × cost %. Commission = gross × commission %. Service cost = machines × visits/month × cost per visit. Net profit = gross − product − commission − service − fixed.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=vending-machine-route-profit",
  "inputs": [
    {
      "id": "machines",
      "label": "Number of machines",
      "kind": "number",
      "hint": null,
      "default": 18,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "weeklySales",
      "label": "Average weekly sales per machine",
      "kind": "number",
      "hint": null,
      "default": 110,
      "unit": "$",
      "min": 5,
      "max": null
    },
    {
      "id": "productCostPct",
      "label": "Product cost (% of sales)",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "%",
      "min": 10,
      "max": 80
    },
    {
      "id": "commissionPct",
      "label": "Location commission (% of sales)",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "%",
      "min": 0,
      "max": 35
    },
    {
      "id": "visitsPerMonth",
      "label": "Restock visits per machine per month",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "costPerVisit",
      "label": "Labor + mileage cost per visit",
      "kind": "number",
      "hint": null,
      "default": 22,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "fixedMonthly",
      "label": "Other fixed monthly costs (insurance, card fees)",
      "kind": "number",
      "hint": null,
      "default": 250,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "netProfit",
      "label": "Monthly net profit",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "grossSales",
      "label": "Monthly gross sales",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "productCost",
      "label": "Product cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "commission",
      "label": "Location commission paid",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "serviceCost",
      "label": "Route service cost",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Number of machines: 18",
      "Average weekly sales per machine: 110 $",
      "Product cost (% of sales): 45 %",
      "Location commission (% of sales): 12 %",
      "Restock visits per machine per month: 4",
      "Labor + mileage cost per visit: 22 $",
      "Other fixed monthly costs (insurance, card fees): 250 $"
    ],
    "outputs": [
      "Monthly net profit: $1,853",
      "Monthly gross sales: $8,573",
      "Product cost: $3,858",
      "Location commission paid: $1,029",
      "Route service cost: $1,584"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter number of machines.",
      "Enter average weekly sales per machine ($).",
      "Enter product cost (% of sales) (%).",
      "Enter location commission (% of sales) (%).",
      "Enter restock visits per machine per month.",
      "Enter labor + mileage cost per visit ($).",
      "Enter other fixed monthly costs (insurance, card fees) ($).",
      "Read your monthly net profit 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": {
        "machines": 11,
        "weeklySales": 65,
        "productCostPct": 27,
        "commissionPct": 7,
        "visitsPerMonth": 2,
        "costPerVisit": 13,
        "fixedMonthly": 150
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "machines": 18,
        "weeklySales": 110,
        "productCostPct": 45,
        "commissionPct": 12,
        "visitsPerMonth": 4,
        "costPerVisit": 22,
        "fixedMonthly": 250
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "machines": 29,
        "weeklySales": 175,
        "productCostPct": 72,
        "commissionPct": 19,
        "visitsPerMonth": 6,
        "costPerVisit": 35,
        "fixedMonthly": 400
      }
    }
  ],
  "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 commission rate is normal for vending locations?",
      "a": "Break rooms and small offices often pay 0-10% or nothing at all; schools, hospitals, and high-traffic public locations frequently demand 15-25% of gross sales, sometimes with a guaranteed minimum payment regardless of sales volume. Always model commission before signing a location contract, not after."
    },
    {
      "q": "How many machines does it take to run a route profitably?",
      "a": "Solo operators typically need 15-30 machines to generate enough combined profit to justify treating vending as a real part-time or full-time income, since fixed costs like a vehicle, insurance, and card-reader subscriptions are largely flat regardless of machine count below that scale."
    },
    {
      "q": "What's a healthy weekly sales figure per machine?",
      "a": "A single well-placed snack/drink combo machine in a 50-100 person workplace typically does $60-$150 per week; break rooms under 30 people or poor foot-traffic spots can fall below $40/week, at which point the location may not clear its own restocking cost."
    },
    {
      "q": "Should I drop a location that's barely breaking even?",
      "a": "Usually yes, unless it's part of a route where the marginal mileage cost to service it is near zero because you're already driving past it for other stops. A standalone low-volume location that requires a dedicated trip rarely justifies the driver time even at breakeven product margin."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/vending-machine-slot-velocity",
    "https://www.revenuelab.fyi/toolbox/vending-machine-shrink-loss",
    "https://www.revenuelab.fyi/toolbox/vending-machine-roi"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Vending Machine Route Profit Calculator (https://www.revenuelab.fyi/toolbox/vending-machine-route-profit)"
}