Compute · Transform · Analysis & Finance
Compute a weighted-average anti-dilution conversion price
A function that applies the broad-based weighted-average anti-dilution formula to produce the adjusted conversion price for an earlier preferred series after a dilutive financing.
You receive: A pure function weightedAverageCP(input) -> { newConversionPrice, conversionRatio } graded on hidden cases.
Part of Pitch Investors
What's verified: STUD verifies the conversion-price math matches the broad-based weighted-average formula on hidden inputs. STUD does NOT decide whether weighted-average vs full-ratchet is the right clause, whether the down round itself is wise, or the legal enforceability of the clause.
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": "weightedAverageCP",
"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": [
"amountRaisedNewRound",
"commonEquivalentOutstandingPrior",
"newSharesIssued",
"oldConversionPrice",
"roundingDecimals"
],
"normalizeSource": "def _normalize_weighted_average_antidilution(r):\n if not isinstance(r, dict): return r\n def n(x): return None if x is None else round(float(x), 6)\n return {\"newConversionPrice\": n(r.get(\"newConversionPrice\")), \"conversionRatio\": n(r.get(\"conversionRatio\"))}\n",
"returnShapes": [
[
"conversionRatio",
"newConversionPrice"
]
],
"signature": "def weightedAverageCP(inp):",
"submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
"tier": "calculator",
"visibleCases": [
{
"expect": {
"conversionRatio": 1.136364,
"newConversionPrice": 1.76
},
"input": {
"amountRaisedNewRound": 4000000,
"commonEquivalentOutstandingPrior": 13000000,
"newSharesIssued": 4000000,
"oldConversionPrice": 2,
"roundingDecimals": 2
},
"name": "down_round"
},
{
"expect": {
"conversionRatio": 1,
"newConversionPrice": 2
},
"input": {
"amountRaisedNewRound": 4000000,
"commonEquivalentOutstandingPrior": 13000000,
"newSharesIssued": 2000000,
"oldConversionPrice": 2,
"roundingDecimals": 2
},
"name": "no_dilution"
},
{
"expect": {
"conversionRatio": 1.362398,
"newConversionPrice": 3.67
},
"input": {
"amountRaisedNewRound": 5000000,
"commonEquivalentOutstandingPrior": 10000000,
"newSharesIssued": 5000000,
"oldConversionPrice": 5,
"roundingDecimals": 2
},
"name": "steep_down"
},
{
"expect": {
"conversionRatio": 1.086957,
"newConversionPrice": 0.92
},
"input": {
"amountRaisedNewRound": 2000000,
"commonEquivalentOutstandingPrior": 20000000,
"newSharesIssued": 4000000,
"oldConversionPrice": 1,
"roundingDecimals": 2
},
"name": "small_down"
}
],
"vocabulary": [
"amountRaisedNewRound",
"commonEquivalentOutstandingPrior",
"conversionRatio",
"newConversionPrice",
"newSharesIssued",
"oldConversionPrice",
"roundingDecimals"
]
}Get early access to STUD the day it goes live.