Compute · Assess & Decide · Analysis & Finance
Compute Founder Share Repurchase on Departure
A precise vested-vs-repurchasable share split when a founder leaves before fully vesting, plus the cash the company pays under the repurchase agreement, so the cap table can be corrected.
You receive: A pure function implementing the founder repurchase ('clawback') mechanic: given grant, vesting term/cliff, an optional up-front vested credit (fast-forward), departure month, and the per-share repurchase price, it returns vestedShares (founder keeps), repurchasableShares (company buys back), and repurchaseCost.
Part of Choose Business Model
What's verified: STUD verifies the repurchase share counts and dollar cost against the supplied grant and price. It does NOT determine the correct repurchase price, whether the repurchase right is enforceable, or the tax consequences; it computes the clawback implied by the frozen parameters.
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": "solve",
"expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
"hiddenCaseCount": 12,
"hiddenCaseNames": [
"gen0",
"gen1",
"gen2",
"gen3",
"gen4",
"gen5",
"gen6",
"gen7",
"gen8",
"gen9",
"gen10",
"gen11"
],
"inputKeys": [
"cliffMonths",
"departureMonth",
"repurchasePricePerShare",
"totalGrantShares",
"upfrontVestedShares",
"vestingMonths"
],
"normalizeSource": "def _normalize_founder_repurchase_on_departure(r):\n if not isinstance(r, dict): return r\n def i(x): return None if x is None else int(round(float(x)))\n return {\"vestedShares\": i(r.get(\"vestedShares\")), \"repurchasableShares\": i(r.get(\"repurchasableShares\")),\n \"repurchaseCost\": (None if r.get(\"repurchaseCost\") is None else round(float(r[\"repurchaseCost\"]), 2))}\n",
"returnShapes": [
[
"repurchasableShares",
"repurchaseCost",
"vestedShares"
]
],
"signature": "def solve(inp):",
"submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
"tier": "calculator",
"visibleCases": [
{
"expect": {
"repurchasableShares": 625000,
"repurchaseCost": 62.5,
"vestedShares": 375000
},
"input": {
"cliffMonths": 12,
"departureMonth": 18,
"repurchasePricePerShare": 0.0001,
"totalGrantShares": 1000000,
"upfrontVestedShares": 0,
"vestingMonths": 48
},
"name": "mid_vesting"
},
{
"expect": {
"repurchasableShares": 1000000,
"repurchaseCost": 100,
"vestedShares": 0
},
"input": {
"cliffMonths": 12,
"departureMonth": 9,
"repurchasePricePerShare": 0.0001,
"totalGrantShares": 1000000,
"upfrontVestedShares": 0,
"vestingMonths": 48
},
"name": "precliff"
},
{
"expect": {
"repurchasableShares": 375000,
"repurchaseCost": 375,
"vestedShares": 625000
},
"input": {
"cliffMonths": 0,
"departureMonth": 18,
"repurchasePricePerShare": 0.001,
"totalGrantShares": 1000000,
"upfrontVestedShares": 250000,
"vestingMonths": 36
},
"name": "fast_forward_credit"
},
{
"expect": {
"repurchasableShares": 0,
"repurchaseCost": 0,
"vestedShares": 1000000
},
"input": {
"cliffMonths": 12,
"departureMonth": 60,
"repurchasePricePerShare": 0.0001,
"totalGrantShares": 1000000,
"upfrontVestedShares": 0,
"vestingMonths": 48
},
"name": "fully_vested"
}
],
"vocabulary": [
"cliffMonths",
"departureMonth",
"repurchasableShares",
"repurchaseCost",
"repurchasePricePerShare",
"totalGrantShares",
"upfrontVestedShares",
"vestedShares",
"vestingMonths"
]
}Get early access to STUD the day it goes live.