STUD.com
← Objectives

Compute · Assess & Decide · Data & Research

Compute Break-Even Point and Margin of Safety

A founder learns the exact unit and revenue break-even point so they can judge whether the required sales volume is achievable before fixed costs are recovered.

You receive: A pure calculator returning a JSON object with break-even units, break-even revenue, contribution margin per unit, contribution-margin ratio, and margin of safety, given price, variable cost per unit, total fixed cost, and an expected sales level.

Part of Choose Business Model

What's verified: STUD verifies the arithmetic is correct given the inputs. It does NOT verify the inputs are realistic, that the fixed/variable split is classified correctly, or that the break-even volume is actually achievable in the market.

Opens soon

Cost20 credits
AcceptanceAutomated check against your inputs
ProtectionHeld until verified delivery

This objective is verified and ready. It opens soon, once sign-in and payments are live.

Deliverable interface

The exact vocabulary the automated check enforces: keys, tokens, entry points, and worked examples. Generated from the verification source.

{
 "constants": {},
 "entryName": "compute_break_even",
 "expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
 "hiddenCaseCount": 12,
 "hiddenCaseNames": [
  "negative_margin",
  "below_be_negative_mos",
  "nonterminating_ratio",
  "exact_rounding",
  "thin_margin",
  "zero_margin_boundary",
  "high_fixed",
  "fractional_price",
  "exact_no_expected",
  "expected_above_be",
  "deep_negative",
  "large_units"
 ],
 "inputKeys": [
  "expected_units",
  "fixed_cost_total",
  "margin_of_safety_pct",
  "margin_of_safety_units",
  "price_per_unit",
  "rounding",
  "variable_cost_per_unit"
 ],
 "normalizeSource": "def _normalize_break_even_point(r):\n    if not isinstance(r, dict): return repr(r)\n    def n(x, p): return None if x is None else round(float(x), p)\n    return {\"contribution_margin_per_unit\": n(r.get(\"contribution_margin_per_unit\"), 4), \"cm_ratio\": n(r.get(\"cm_ratio\"), 4),\n            \"break_even_units\": (None if r.get(\"break_even_units\") is None else round(float(r[\"break_even_units\"]), 4)),\n            \"break_even_revenue\": n(r.get(\"break_even_revenue\"), 2), \"no_breakeven\": bool(r.get(\"no_breakeven\")),\n            \"margin_of_safety_units\": n(r.get(\"margin_of_safety_units\"), 4), \"margin_of_safety_pct\": n(r.get(\"margin_of_safety_pct\"), 4)}\n",
 "returnShapes": [],
 "signature": "def compute_break_even(inp):",
 "submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
 "tier": "calculator",
 "visibleCases": [
  {
   "expect": {
    "break_even_revenue": 250000,
    "break_even_units": 5000,
    "cm_ratio": 0.4,
    "contribution_margin_per_unit": 20,
    "margin_of_safety_pct": 0.375,
    "margin_of_safety_units": 3000,
    "no_breakeven": false
   },
   "input": {
    "expected_units": 8000,
    "fixed_cost_total": 100000,
    "price_per_unit": 50,
    "rounding": "up",
    "variable_cost_per_unit": 30
   },
   "name": "book_up_with_mos"
  },
  {
   "expect": {
    "break_even_revenue": 75000,
    "break_even_units": 15000,
    "cm_ratio": 0.8,
    "contribution_margin_per_unit": 4,
    "margin_of_safety_pct": null,
    "margin_of_safety_units": null,
    "no_breakeven": false
   },
   "input": {
    "fixed_cost_total": 60000,
    "price_per_unit": 5,
    "rounding": "up",
    "variable_cost_per_unit": 1
   },
   "name": "no_expected"
  }
 ],
 "vocabulary": [
  "break_even_revenue",
  "break_even_units",
  "cm_ratio",
  "contribution_margin_per_unit",
  "expected_units",
  "fixed_cost_total",
  "margin_of_safety_pct",
  "margin_of_safety_units",
  "no_breakeven",
  "price_per_unit",
  "rounding",
  "up",
  "variable_cost_per_unit"
 ]
}

Get early access to STUD the day it goes live.