{
  "slug": "school-bus-route-cost",
  "title": "School Bus Route Cost Calculator",
  "heading": "School Bus Route Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/school-bus-route-cost",
  "summary": "Per-route and per-rider cost of operating a school bus line.",
  "description": "District transportation budgets get scrutinized route by route, but the true cost of a route includes far more than fuel — driver wages, bus depreciation, maintenance, and insurance allocated per route all matter. This calculator combines fixed per-bus costs with mileage-based variable costs, divides by ridership, and gives a per-student cost so districts can compare routes, evaluate consolidation, or justify budget requests with real numbers.",
  "formula": "Fixed cost = driver wages + insurance + depreciation share. Variable cost = miles/day × days × cost per mile. Total annual cost = fixed + variable. Cost per rider = total ÷ riders.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=school-bus-route-cost",
  "inputs": [
    {
      "id": "driverWage",
      "label": "Driver annual wage (loaded)",
      "kind": "number",
      "hint": null,
      "default": 32000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "insurance",
      "label": "Insurance allocated to this bus",
      "kind": "number",
      "hint": null,
      "default": 3500,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "depreciation",
      "label": "Annual depreciation share",
      "kind": "number",
      "hint": null,
      "default": 9000,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "milesPerDay",
      "label": "Route miles per day",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "costPerMile",
      "label": "Fuel + maintenance cost per mile",
      "kind": "number",
      "hint": null,
      "default": 1.1,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "schoolDays",
      "label": "School days per year",
      "kind": "number",
      "hint": null,
      "default": 180,
      "unit": null,
      "min": 1,
      "max": 220
    },
    {
      "id": "riders",
      "label": "Students on this route",
      "kind": "number",
      "hint": null,
      "default": 55,
      "unit": null,
      "min": 1,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "total",
      "label": "Total annual route cost",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "costPerRider",
      "label": "Cost per rider per year",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "fixed",
      "label": "Fixed cost (driver, insurance, depreciation)",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "variable",
      "label": "Variable cost (fuel & maintenance)",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "costPerDay",
      "label": "Cost per school day",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Driver annual wage (loaded): 32000 $",
      "Insurance allocated to this bus: 3500 $",
      "Annual depreciation share: 9000 $",
      "Route miles per day: 45",
      "Fuel + maintenance cost per mile: 1.1 $",
      "School days per year: 180",
      "Students on this route: 55"
    ],
    "outputs": [
      "Total annual route cost: $53,410",
      "Cost per rider per year: $971",
      "Fixed cost (driver, insurance, depreciation): $44,500",
      "Variable cost (fuel & maintenance): $8,910",
      "Cost per school day: $296.72"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter driver annual wage (loaded) ($).",
      "Enter insurance allocated to this bus ($).",
      "Enter annual depreciation share ($).",
      "Enter route miles per day.",
      "Enter fuel + maintenance cost per mile ($).",
      "Enter school days per year.",
      "Enter students on this route.",
      "Read your total annual route cost 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": {
        "driverWage": 19000,
        "insurance": 2100,
        "depreciation": 5500,
        "milesPerDay": 27,
        "costPerMile": 0.66,
        "schoolDays": 108,
        "riders": 33
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "driverWage": 32000,
        "insurance": 3500,
        "depreciation": 9000,
        "milesPerDay": 45,
        "costPerMile": 1.1,
        "schoolDays": 180,
        "riders": 55
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "driverWage": 51000,
        "insurance": 5600,
        "depreciation": 14500,
        "milesPerDay": 72,
        "costPerMile": 1.7600000000000002,
        "schoolDays": 220,
        "riders": 88
      }
    }
  ],
  "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 fixed cost dominate the total?",
      "a": "Driver wages alone are usually 55-65% of a route's total cost, well above fuel and maintenance, which is why districts focus consolidation efforts on reducing route count and driver headcount rather than just optimizing mileage."
    },
    {
      "q": "How should depreciation be allocated per bus?",
      "a": "Divide the bus purchase price (often $95,000-$180,000 for a standard yellow bus) by its expected service life, typically 10-15 years, to get an annual figure, then adjust if the bus also runs athletic or field trips, which should be allocated separately."
    },
    {
      "q": "What ridership triggers a route review?",
      "a": "Many districts flag routes under 50% of bus capacity for review, since cost per rider rises sharply as ridership falls while fixed costs stay the same. A half-empty route often costs 2-3x per rider what a nearly full route costs."
    },
    {
      "q": "Does this include special education transportation?",
      "a": "No — specialized routes for students with mobility needs typically use smaller vehicles with higher per-rider cost due to lower capacity and sometimes an aide on board. Model those separately since the cost structure and legal requirements differ."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/student-teacher-ratio-staffing-cost",
    "https://www.revenuelab.fyi/toolbox/teacher-stipend-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — School Bus Route Cost Calculator (https://www.revenuelab.fyi/toolbox/school-bus-route-cost)"
}