Compute · Assess & Decide · Data & Research
Compute Founder Personal Runway and Go-Full-Time Verdict
A bootstrapping founder learns how many months of personal runway they have and whether it clears the book's full-time-go thresholds, so they can decide whether to quit their job now or stay part-time.
You receive: A pure calculator returning a JSON object with months of personal runway, a go-decision enum, and the savings shortfall to the next threshold, given savings, monthly burn, side income, and the minimum/comfortable month thresholds.
Part of Choose Business Model
What's verified: STUD verifies the runway math and threshold verdict given the inputs. It does NOT verify the savings/burn figures are truthful, that the thresholds are right for the founder's risk tolerance, or that the startup will succeed in that window.
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_founder_runway",
"expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
"hiddenCaseCount": 12,
"hiddenCaseNames": [
"go_comfortable",
"self_sustaining",
"side_over_burn",
"exactly_min",
"exactly_comfortable",
"fractional_runway",
"high_savings",
"thin",
"no_side_field",
"low_thresholds",
"big_burn",
"just_under_min"
],
"inputKeys": [
"comfortable_months_threshold",
"min_months_threshold",
"monthly_personal_burn",
"monthly_side_income",
"personal_savings"
],
"normalizeSource": "def _normalize_compute_founder_runway_to_go_full_time(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 {\"net_monthly_burn\": n(r.get(\"net_monthly_burn\"), 2), \"self_sustaining\": bool(r.get(\"self_sustaining\")),\n \"runway_months\": n(r.get(\"runway_months\"), 2), \"verdict\": r.get(\"verdict\"),\n \"shortfall_to_min\": n(r.get(\"shortfall_to_min\"), 2), \"shortfall_to_comfortable\": n(r.get(\"shortfall_to_comfortable\"), 2)}\n",
"returnShapes": [
[
"net_monthly_burn",
"runway_months",
"self_sustaining",
"shortfall_to_comfortable",
"shortfall_to_min",
"verdict"
]
],
"signature": "def compute_founder_runway(inp):",
"submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
"tier": "calculator",
"visibleCases": [
{
"expect": {
"net_monthly_burn": 20000,
"runway_months": 12,
"self_sustaining": false,
"shortfall_to_comfortable": 240000,
"shortfall_to_min": 0,
"verdict": "go_minimum"
},
"input": {
"comfortable_months_threshold": 24,
"min_months_threshold": 12,
"monthly_personal_burn": 20000,
"monthly_side_income": 0,
"personal_savings": 240000
},
"name": "go_minimum"
},
{
"expect": {
"net_monthly_burn": 15000,
"runway_months": 6.67,
"self_sustaining": false,
"shortfall_to_comfortable": 260000,
"shortfall_to_min": 80000,
"verdict": "stay_part_time"
},
"input": {
"comfortable_months_threshold": 24,
"min_months_threshold": 12,
"monthly_personal_burn": 25000,
"monthly_side_income": 10000,
"personal_savings": 100000
},
"name": "stay_part_time"
}
],
"vocabulary": [
"comfortable_months_threshold",
"go_comfortable",
"go_full_time",
"go_minimum",
"min_months_threshold",
"monthly_personal_burn",
"monthly_side_income",
"net_monthly_burn",
"personal_savings",
"runway_months",
"self_sustaining",
"shortfall_to_comfortable",
"shortfall_to_min",
"stay_part_time",
"verdict"
]
}Get early access to STUD the day it goes live.