{
  "slug": "class-field-trip-cost",
  "title": "Class Field Trip Cost Calculator",
  "heading": "Class Field Trip Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/class-field-trip-cost",
  "summary": "Per-student cost of a field trip including transport, admission, and chaperone coverage.",
  "description": "Field trips get budgeted casually until the bus company invoice and admission tickets come due. This calculator totals transportation, admission, substitute chaperone pay, and a contingency buffer, then divides by student count to set the per-student fee, flagging when the fee exceeds a threshold that would require a fee waiver pool for lower-income families.",
  "formula": "Total cost = transport + admission×students + chaperone pay + contingency. Per-student fee = total cost ÷ students.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=class-field-trip-cost",
  "inputs": [
    {
      "id": "transport",
      "label": "Bus/transport cost",
      "kind": "number",
      "hint": null,
      "default": 650,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "admissionPerStudent",
      "label": "Admission per student",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "students",
      "label": "Students attending",
      "kind": "number",
      "hint": null,
      "default": 90,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "chaperonePay",
      "label": "Substitute/chaperone pay",
      "kind": "number",
      "hint": null,
      "default": 300,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "contingencyPct",
      "label": "Contingency buffer",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": "%",
      "min": 0,
      "max": 30
    }
  ],
  "outputs": [
    {
      "id": "perStudent",
      "label": "Fee per student",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "total",
      "label": "Total trip cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "admission",
      "label": "Total admission cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "needsWaiverPool",
      "label": "Affordability flag",
      "format": "raw",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Bus/transport cost: 650 $",
      "Admission per student: 12 $",
      "Students attending: 90",
      "Substitute/chaperone pay: 300 $",
      "Contingency buffer: 8 %"
    ],
    "outputs": [
      "Fee per student: $24.36",
      "Total trip cost: $2,192",
      "Total admission cost: $1,080",
      "Affordability flag: Consider a fee waiver pool"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter bus/transport cost ($).",
      "Enter admission per student ($).",
      "Enter students attending.",
      "Enter substitute/chaperone pay ($).",
      "Enter contingency buffer (%).",
      "Read your fee per student 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": {
        "transport": 400,
        "admissionPerStudent": 7,
        "students": 54,
        "chaperonePay": 175,
        "contingencyPct": 5
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "transport": 650,
        "admissionPerStudent": 12,
        "students": 90,
        "chaperonePay": 300,
        "contingencyPct": 8
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "transport": 1050,
        "admissionPerStudent": 19,
        "students": 144,
        "chaperonePay": 475,
        "contingencyPct": 13
      }
    }
  ],
  "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 add a contingency buffer?",
      "a": "Attendance counts shift between the deposit date and trip day, and venues sometimes add last-minute fees. An 8-10% buffer absorbs this without needing to go back to families for more money."
    },
    {
      "q": "How should schools handle students who can't pay?",
      "a": "Build a small fee waiver pool funded by a modest overage built into every other family's fee, or by PTA fundraising, so no student is excluded from a required curricular trip over cost."
    },
    {
      "q": "Does chaperone pay apply to volunteer parents?",
      "a": "No — this line is for paid staff coverage such as a substitute teacher covering the trip-leading teacher's other classes, not for parent volunteers who typically aren't paid."
    },
    {
      "q": "What's a reasonable per-student fee ceiling?",
      "a": "Many districts try to keep single-day trip fees under $20-$25 per student to avoid effectively pricing out lower-income families from a curricular activity."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/school-bus-route-cost",
    "https://www.revenuelab.fyi/toolbox/class-set-material-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Class Field Trip Cost Calculator (https://www.revenuelab.fyi/toolbox/class-field-trip-cost)"
}