{
  "slug": "camp-session-margin",
  "title": "Summer Camp Session Margin Calculator",
  "heading": "Summer Camp Session Margin Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/camp-session-margin",
  "summary": "Model profit per weekly camp session after staffing, supplies, and field trips.",
  "description": "Summer camps run on tight weekly cycles where a single low-enrollment session can wipe out the margin from a strong one, so directors need per-session math, not just a summer-long average. This calculator takes campers enrolled in a session, per-camper price, counselor ratio and pay, and per-camper variable costs (supplies, field trip admission, transportation, snacks) to produce session revenue, total cost, and margin per camper. It separates the staffing cost, which snaps in fixed increments as you cross ratio thresholds, from smooth per-camper costs like snacks and field trip tickets, since the two behave very differently as enrollment moves. A session sitting near a ratio threshold — say 25 campers against a 1:10 ratio — is one enrollment away from an extra counselor salary, so watch the 'counselors required' output when you're deciding whether to accept another registration or close the session waitlist.",
  "formula": "Counselors = CEILING(campers ÷ ratio); staffing cost = counselors × counselor pay for the week; total cost = staffing + campers × variable cost per camper; margin = revenue − total cost.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=camp-session-margin",
  "inputs": [
    {
      "id": "campers",
      "label": "Campers enrolled this session",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "price",
      "label": "Price per camper for the week",
      "kind": "number",
      "hint": null,
      "default": 350,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "ratio",
      "label": "Camper-to-counselor ratio",
      "kind": "number",
      "hint": null,
      "default": 10,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "counselorPay",
      "label": "Counselor pay for the week",
      "kind": "number",
      "hint": null,
      "default": 550,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "variableCost",
      "label": "Variable cost per camper (supplies, snacks, trips)",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "fixedCost",
      "label": "Fixed session cost (site rental, director, insurance)",
      "kind": "number",
      "hint": null,
      "default": 1800,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "margin",
      "label": "Session profit",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "marginPerCamper",
      "label": "Profit per camper",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "marginPct",
      "label": "Margin as % of revenue",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "counselors",
      "label": "Counselors required",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalCost",
      "label": "Total session cost",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Campers enrolled this session: 45",
      "Price per camper for the week: 350 $",
      "Camper-to-counselor ratio: 10",
      "Counselor pay for the week: 550 $",
      "Variable cost per camper (supplies, snacks, trips): 45 $",
      "Fixed session cost (site rental, director, insurance): 1800 $"
    ],
    "outputs": [
      "Session profit: $9,175",
      "Profit per camper: $204",
      "Margin as % of revenue: 58.3%",
      "Counselors required: 5",
      "Total session cost: $6,575"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter campers enrolled this session.",
      "Enter price per camper for the week ($).",
      "Enter camper-to-counselor ratio.",
      "Enter counselor pay for the week ($).",
      "Enter variable cost per camper (supplies, snacks, trips) ($).",
      "Enter fixed session cost (site rental, director, insurance) ($).",
      "Read your session 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": {
        "campers": 27,
        "price": 210,
        "ratio": 6,
        "counselorPay": 330,
        "variableCost": 25,
        "fixedCost": 1100
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "campers": 45,
        "price": 350,
        "ratio": 10,
        "counselorPay": 550,
        "variableCost": 45,
        "fixedCost": 1800
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "campers": 72,
        "price": 560,
        "ratio": 16,
        "counselorPay": 880,
        "variableCost": 70,
        "fixedCost": 2900
      }
    }
  ],
  "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 one more camper sometimes reduce margin?",
      "a": "When enrollment crosses a ratio threshold you add a full counselor salary for the week, which usually costs far more than the one extra registration brings in. Check the counselor count before accepting a registration near the edge — sometimes it's better to hold at the current count or push the extra child to a different session."
    },
    {
      "q": "What belongs in variable cost per camper versus fixed session cost?",
      "a": "Variable cost should scale with headcount: snacks, craft supplies, field trip tickets, a t-shirt. Fixed cost stays the same whether you have 20 or 50 campers: site rental, camp director salary for the week, liability insurance, marketing amortized across the summer. Getting this split right is what makes the ratio-threshold warning meaningful."
    },
    {
      "q": "How low can enrollment go before a session should be canceled?",
      "a": "Set the camper count to whatever number makes margin equal zero — that's your cancel-or-combine threshold. Many camps set a minimum enrollment (often 60-70% of typical session size) two weeks out and either combine low sessions or offer a discount to bump enrollment above that line."
    },
    {
      "q": "Should field trip costs be priced into every session equally?",
      "a": "No — build variable cost per camper for the specific week's trip and supply plan, since a session with an amusement park trip costs far more per head than an on-site nature week. Running this calculator per session rather than for the summer average avoids masking a money-losing trip week inside an otherwise profitable summer."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/childcare-staffing-ratio-cost",
    "https://www.revenuelab.fyi/toolbox/field-trip-cost-per-child",
    "https://www.revenuelab.fyi/toolbox/extended-care-margin"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Summer Camp Session Margin Calculator (https://www.revenuelab.fyi/toolbox/camp-session-margin)"
}