{ "_readme": "Pinned vectors for the funding waterfall (docs/funding.md § The waterfall). Amounts are integer cents. These are the spec, not snapshots: if tools/waterfall.mjs disagrees, fix the implementation (or version the algorithm), never the vector. Run: node test/waterfall.test.mjs", "vectors": [ { "name": "doc worked example — €40k revenue quarter over Series 1", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [ { "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }, { "id": "S1-002", "series": "S1", "principal": 10000000, "remainingCap": 20000000 } ], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributable": 800000, "distributed": true, "investorPool": 480000, "teamPool": 200000, "commonsPool": 120000, "payments": [ { "note": "S1-001", "amount": 320000 }, { "note": "S1-002", "amount": 160000 } ], "retained": 0, "residue": 0, "extinguished": [], "notes": [ { "id": "S1-001", "remainingCap": 39680000 }, { "id": "S1-002", "remainingCap": 19840000 } ] } }, { "name": "negative surplus distributes nothing", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 1000000, "costs": 2800000, "reserveTopUp": 0, "floorMet": false }, "expected": { "distributable": -1800000, "distributed": false, "investorPool": 0, "teamPool": 0, "commonsPool": 0, "payments": [], "retained": 0, "residue": 0, "extinguished": [], "notes": [{ "id": "S1-001", "remainingCap": 40000000 }] } }, { "name": "zero surplus distributes nothing", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 2800000, "costs": 2800000, "reserveTopUp": 0, "floorMet": true }, "expected": { "distributable": 0, "distributed": false, "payments": [], "retained": 0, "residue": 0 } }, { "name": "rounding cents land with the commons", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 10001, "costs": 0, "reserveTopUp": 0, "floorMet": true }, "expected": { "distributable": 10001, "distributed": true, "investorPool": 6000, "teamPool": 2500, "commonsPool": 1501, "payments": [{ "note": "S1-001", "amount": 6000 }], "retained": 0, "residue": 0 } }, { "name": "remainder cents are deterministic — largest remainder, then note id", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [ { "id": "n-a", "series": "S1", "principal": 500, "remainingCap": 1000 }, { "id": "n-b", "series": "S1", "principal": 500, "remainingCap": 1000 }, { "id": "n-c", "series": "S1", "principal": 500, "remainingCap": 1000 } ], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 167, "costs": 0, "reserveTopUp": 0, "floorMet": true }, "expected": { "distributable": 167, "distributed": true, "investorPool": 100, "teamPool": 41, "commonsPool": 26, "payments": [ { "note": "n-a", "amount": 34 }, { "note": "n-b", "amount": 33 }, { "note": "n-c", "amount": 33 } ], "retained": 0, "residue": 0, "notes": [ { "id": "n-a", "remainingCap": 966 }, { "id": "n-b", "remainingCap": 967 }, { "id": "n-c", "remainingCap": 967 } ] } }, { "name": "unseasoned series is excluded from the pro-rata", "ledger": { "series": [ { "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }, { "id": "S2", "closedAt": "2028-06-30", "capMultiple": 2, "seasoningMonths": 24 } ], "notes": [ { "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }, { "id": "S2-001", "series": "S2", "principal": 10000000, "remainingCap": 20000000 } ], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "investorPool": 480000, "payments": [{ "note": "S1-001", "amount": 480000 }], "retained": 0, "notes": [ { "id": "S1-001", "remainingCap": 39520000 }, { "id": "S2-001", "remainingCap": 20000000 } ] } }, { "name": "no seasoned notes — investor pool retained, team and commons still flow", "ledger": { "series": [{ "id": "S2", "closedAt": "2028-06-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S2-001", "series": "S2", "principal": 10000000, "remainingCap": 20000000 }], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "investorPool": 480000, "teamPool": 200000, "commonsPool": 120000, "payments": [], "retained": 480000, "notes": [{ "id": "S2-001", "remainingCap": 20000000 }] } }, { "name": "a broken floor streak gates seasoning even when the calendar has passed", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": false } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "investorPool": 480000, "payments": [], "retained": 480000 } }, { "name": "pool beyond every cap — notes fill, extinguish, and the excess is residue", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [ { "id": "S1-001", "series": "S1", "principal": 100000, "remainingCap": 200000 }, { "id": "S1-002", "series": "S1", "principal": 50000, "remainingCap": 100000 } ], "quarters": [ { "id": "2028-Q2", "floorMet": true }, { "id": "2028-Q3", "floorMet": true } ] }, "quarter": { "id": "2028-Q4", "asOf": "2028-12-31", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "investorPool": 480000, "payments": [ { "note": "S1-001", "amount": 200000 }, { "note": "S1-002", "amount": 100000 } ], "retained": 0, "residue": 180000, "extinguished": ["S1-001", "S1-002"], "notes": [ { "id": "S1-001", "remainingCap": 0 }, { "id": "S1-002", "remainingCap": 0 } ] } }, { "name": "seasoning boundary — one day short of 24 months is unseasoned", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q1", "floorMet": true }, { "id": "2028-Q2", "floorMet": true } ] }, "quarter": { "id": "2028-Q3", "asOf": "2028-09-29", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "payments": [], "retained": 480000 } }, { "name": "seasoning boundary — exactly 24 months is seasoned", "ledger": { "series": [{ "id": "S1", "closedAt": "2026-09-30", "capMultiple": 2, "seasoningMonths": 24 }], "notes": [{ "id": "S1-001", "series": "S1", "principal": 20000000, "remainingCap": 40000000 }], "quarters": [ { "id": "2028-Q1", "floorMet": true }, { "id": "2028-Q2", "floorMet": true } ] }, "quarter": { "id": "2028-Q3", "asOf": "2028-09-30", "revenue": 4000000, "costs": 2800000, "reserveTopUp": 400000, "floorMet": true }, "expected": { "distributed": true, "payments": [{ "note": "S1-001", "amount": 480000 }], "retained": 0 } } ] }