Compute · Transform · Analysis & Finance
Compute the dilution impact of a pre-money option pool top-up
A function that computes the effective (pool-adjusted) price per share and the share of dilution borne by existing holders when a new option pool is created on a pre-money basis.
You receive: A pure function optionPoolShuffle(input) -> { effectivePricePerShare, poolShares, postMoneyShares, existingDilutionPct } graded on hidden cases.
Part of Pitch Investors
What's verified: STUD verifies the pool-adjusted price-per-share and dilution-incidence math is internally consistent on hidden inputs. STUD does NOT judge how big the option pool should be or whether the pre-money basis is fair to founders.
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": "optionPoolShuffle",
"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": [
"amountRaised",
"poolBasis",
"preMoney",
"sharesOutstandingFD",
"targetPoolPctPostMoney"
],
"normalizeSource": "def _normalize_option_pool_dilution_impact(r):\n if not isinstance(r, dict): return r\n def n(x, p): return None if x is None else round(float(x), p)\n return {\"effectivePricePerShare\": n(r.get(\"effectivePricePerShare\"), 6), \"poolShares\": n(r.get(\"poolShares\"), 2),\n \"postMoneyShares\": n(r.get(\"postMoneyShares\"), 2), \"existingDilutionPct\": n(r.get(\"existingDilutionPct\"), 6)}\n",
"returnShapes": [
[
"effectivePricePerShare",
"existingDilutionPct",
"poolShares",
"postMoneyShares"
]
],
"signature": "def optionPoolShuffle(inp):",
"submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
"tier": "calculator",
"visibleCases": [
{
"expect": {
"effectivePricePerShare": 0.875,
"existingDilutionPct": 0.3,
"poolShares": 1142857.14,
"postMoneyShares": 11428571.43
},
"input": {
"amountRaised": 2000000,
"poolBasis": "pre_money",
"preMoney": 8000000,
"sharesOutstandingFD": 8000000,
"targetPoolPctPostMoney": 0.1
},
"name": "premoney_pool"
},
{
"expect": {
"effectivePricePerShare": 2,
"existingDilutionPct": 0.2,
"poolShares": 0,
"postMoneyShares": 12500000
},
"input": {
"amountRaised": 5000000,
"poolBasis": "pre_money",
"preMoney": 20000000,
"sharesOutstandingFD": 10000000,
"targetPoolPctPostMoney": 0
},
"name": "no_pool"
},
{
"expect": {
"effectivePricePerShare": 1.625,
"existingDilutionPct": 0.35,
"poolShares": 2307692.31,
"postMoneyShares": 15384615.38
},
"input": {
"amountRaised": 5000000,
"poolBasis": "pre_money",
"preMoney": 20000000,
"sharesOutstandingFD": 10000000,
"targetPoolPctPostMoney": 0.15
},
"name": "premoney_15pct"
},
{
"expect": {
"effectivePricePerShare": 2,
"existingDilutionPct": 0.32,
"poolShares": 2205882.35,
"postMoneyShares": 14705882.35
},
"input": {
"amountRaised": 5000000,
"poolBasis": "post_money",
"preMoney": 20000000,
"sharesOutstandingFD": 10000000,
"targetPoolPctPostMoney": 0.15
},
"name": "postmoney_15pct"
}
],
"vocabulary": [
"amountRaised",
"effectivePricePerShare",
"existingDilutionPct",
"pool fraction >= 100%",
"poolBasis",
"poolShares",
"postMoneyShares",
"pre-money pool leaves no room for existing holders",
"preMoney",
"pre_money",
"sharesOutstandingFD",
"targetPoolPctPostMoney"
]
}Get early access to STUD the day it goes live.