{
  "slug": "car-wash-tunnel-revenue",
  "title": "Car Wash Tunnel Revenue Calculator",
  "heading": "Express Tunnel Car Wash Revenue Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/car-wash-tunnel-revenue",
  "summary": "Project daily and monthly revenue for a conveyor tunnel wash from cars-per-hour throughput.",
  "description": "Tunnel car washes make money on volume, not margin per car, so throughput assumptions drive the whole pro forma. This calculator takes your tunnel's rated cars-per-hour capacity, expected utilization during operating hours (rarely 100% except at true peak), average ticket price across your menu of wash packages, and computes daily car count and revenue. It also splits revenue between single-wash retail sales and unlimited monthly membership plans, since most modern express tunnels now generate 60-80% of revenue from memberships rather than one-off washes, which changes both the cash flow pattern and the churn risk you're managing.",
  "formula": "Cars per day = tunnel capacity/hr × hours open × utilization. Revenue = (retail cars × retail price) + (member washes × allocated membership value).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=car-wash-tunnel-revenue",
  "inputs": [
    {
      "id": "capacity",
      "label": "Tunnel capacity",
      "kind": "number",
      "hint": null,
      "default": 120,
      "unit": "cars/hr",
      "min": 20,
      "max": null
    },
    {
      "id": "hours",
      "label": "Operating hours per day",
      "kind": "number",
      "hint": null,
      "default": 11,
      "unit": null,
      "min": 4,
      "max": 16
    },
    {
      "id": "utilization",
      "label": "Average utilization",
      "kind": "number",
      "hint": null,
      "default": 35,
      "unit": "%",
      "min": 5,
      "max": 100
    },
    {
      "id": "memberShare",
      "label": "Share of washes from members",
      "kind": "number",
      "hint": null,
      "default": 65,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "retailPrice",
      "label": "Average retail ticket",
      "kind": "number",
      "hint": null,
      "default": 22,
      "unit": "$",
      "min": 5,
      "max": null
    },
    {
      "id": "memberValue",
      "label": "Revenue value per member wash",
      "kind": "number",
      "hint": null,
      "default": 9,
      "unit": "$",
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "revenue",
      "label": "Daily revenue",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "carsPerDay",
      "label": "Cars washed per day",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "monthlyRevenue",
      "label": "Monthly revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "retailCars",
      "label": "Retail (non-member) cars/day",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "memberCars",
      "label": "Member cars/day",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Tunnel capacity: 120 cars/hr",
      "Operating hours per day: 11",
      "Average utilization: 35 %",
      "Share of washes from members: 65 %",
      "Average retail ticket: 22 $",
      "Revenue value per member wash: 9 $"
    ],
    "outputs": [
      "Daily revenue: $6,260",
      "Cars washed per day: 462",
      "Monthly revenue: $190,307",
      "Retail (non-member) cars/day: 162",
      "Member cars/day: 300"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter tunnel capacity (cars/hr).",
      "Enter operating hours per day.",
      "Enter average utilization (%).",
      "Enter share of washes from members (%).",
      "Enter average retail ticket ($).",
      "Enter revenue value per member wash ($).",
      "Read your daily revenue 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": {
        "capacity": 70,
        "hours": 7,
        "utilization": 21,
        "memberShare": 40,
        "retailPrice": 13,
        "memberValue": 5.3999999999999995
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "capacity": 120,
        "hours": 11,
        "utilization": 35,
        "memberShare": 65,
        "retailPrice": 22,
        "memberValue": 9
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "capacity": 190,
        "hours": 16,
        "utilization": 56,
        "memberShare": 100,
        "retailPrice": 35,
        "memberValue": 14.4
      }
    }
  ],
  "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 utilization rate should I assume for a new site?",
      "a": "New sites often open around 15-25% average utilization and grow to 30-45% by year two or three as membership base builds. True peak-hour utilization can spike near 80-90% on Saturday mornings, but the daily average across a full operating day is what drives the pro forma."
    },
    {
      "q": "How is 'member value per wash' different from the membership price?",
      "a": "A $30/month unlimited member who washes 6 times a month generates $5 of revenue per visit, not $30. Divide monthly membership revenue by average visit frequency (typically 2.5-4 washes/month) to get a realistic per-wash value for this line."
    },
    {
      "q": "Why do most tunnels push membership so hard?",
      "a": "Membership converts unpredictable retail traffic into recurring revenue and dramatically increases visit frequency (members wash roughly 3x more often than retail-only customers), which raises total volume even though per-wash revenue drops. It also improves cash flow predictability for financing."
    },
    {
      "q": "How much does site location affect achievable utilization?",
      "a": "Traffic count is the single biggest driver — sites need roughly 20,000-25,000+ vehicles per day passing the location to hit strong volume targets, along with good ingress/egress and stacking lane capacity so cars don't back onto the street during peak periods."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/car-wash-iba-membership-value",
    "https://www.revenuelab.fyi/toolbox/car-wash-chemical-cost-per-car",
    "https://www.revenuelab.fyi/toolbox/car-wash-membership-churn-value"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Car Wash Tunnel Revenue Calculator (https://www.revenuelab.fyi/toolbox/car-wash-tunnel-revenue)"
}