{
  "slug": "cohort-course-revenue-refund",
  "title": "Cohort Course Revenue & Refund Reserve Calculator",
  "heading": "Cohort Course Revenue Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/cohort-course-revenue-refund",
  "summary": "Net revenue for a cohort-based course after refunds, fees, and affiliate cuts.",
  "description": "Cohort courses sell seats before delivery, which means refund risk sits on the seller's books for weeks. This calculator takes enrollment count, price, and typical refund and chargeback rates for cohort-based programs (usually 3–10% depending on guarantee length) and nets out payment processing and affiliate commissions to show real cash you can count on, plus how big a reserve to hold until the refund window closes.",
  "formula": "Gross = seats × price. Refund reserve = gross × refund rate. Net revenue = gross − refunds − processing fees − affiliate payouts.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=cohort-course-revenue-refund",
  "inputs": [
    {
      "id": "seats",
      "label": "Seats sold",
      "kind": "number",
      "hint": null,
      "default": 120,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "price",
      "label": "Price per seat",
      "kind": "number",
      "hint": null,
      "default": 799,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "refundRate",
      "label": "Expected refund rate",
      "kind": "number",
      "hint": null,
      "default": 6,
      "unit": "%",
      "min": 0,
      "max": 50
    },
    {
      "id": "processingFee",
      "label": "Payment processing fee",
      "kind": "number",
      "hint": null,
      "default": 3.5,
      "unit": "%",
      "min": 0,
      "max": 10
    },
    {
      "id": "affiliateShare",
      "label": "Seats via affiliate",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "affiliateCommission",
      "label": "Affiliate commission",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "%",
      "min": 0,
      "max": 60
    }
  ],
  "outputs": [
    {
      "id": "net",
      "label": "Net revenue after all cuts",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "gross",
      "label": "Gross revenue",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "refundReserve",
      "label": "Refund reserve to hold",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "processing",
      "label": "Payment processing cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "affiliatePayout",
      "label": "Affiliate payouts",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "perSeatNet",
      "label": "Net per seat",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Seats sold: 120",
      "Price per seat: 799 $",
      "Expected refund rate: 6 %",
      "Payment processing fee: 3.5 %",
      "Seats via affiliate: 20 %",
      "Affiliate commission: 30 %"
    ],
    "outputs": [
      "Net revenue after all cuts: $81,220",
      "Gross revenue: $95,880",
      "Refund reserve to hold: $5,753",
      "Payment processing cost: $3,154",
      "Affiliate payouts: $5,753",
      "Net per seat: $676.83"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter seats sold.",
      "Enter price per seat ($).",
      "Enter expected refund rate (%).",
      "Enter payment processing fee (%).",
      "Enter seats via affiliate (%).",
      "Enter affiliate commission (%).",
      "Read your net revenue after all cuts 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": {
        "seats": 72,
        "price": 480,
        "refundRate": 4,
        "processingFee": 2.1,
        "affiliateShare": 12,
        "affiliateCommission": 18
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "seats": 120,
        "price": 800,
        "refundRate": 6,
        "processingFee": 3.5,
        "affiliateShare": 20,
        "affiliateCommission": 30
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "seats": 192,
        "price": 1280,
        "refundRate": 10,
        "processingFee": 5.6000000000000005,
        "affiliateShare": 32,
        "affiliateCommission": 48
      }
    }
  ],
  "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 refund rate should I plan for?",
      "a": "Cohort courses with a 14-day money-back guarantee typically see 4–8% refunds; longer guarantees (30 days or 'finish the course') push toward 10–15%. High-ticket B2B cohorts with application screening run lower, often 2–4%, because buyers self-select."
    },
    {
      "q": "Should I hold the refund reserve in a separate account?",
      "a": "Yes. Spending gross revenue immediately and then owing refunds out of operating cash is the single most common cash crunch for course creators. Park the reserve amount until the guarantee window closes, then release it to operating funds."
    },
    {
      "q": "How do chargebacks differ from refunds here?",
      "a": "Chargebacks carry an extra processor fee (often $15–$25 per dispute) on top of the refunded amount and can trigger account review if the rate exceeds about 1% of transactions. Track them separately from voluntary refunds since they hit both revenue and your merchant standing."
    },
    {
      "q": "Does affiliate commission apply to the discounted or full price?",
      "a": "Almost always the price actually paid, after any coupon. If you run promotions, recompute this with the discounted price for affiliate-driven seats, since running the commission on list price overstates your payout cost."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/online-course-completion-economics",
    "https://www.revenuelab.fyi/toolbox/lms-seat-pricing"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Cohort Course Revenue & Refund Reserve Calculator (https://www.revenuelab.fyi/toolbox/cohort-course-revenue-refund)"
}