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
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.