phoenix-waterfall-ledger-semantics
Waterfall ledger semantics and clawback behavior for the Phoenix VC fund model. Use when working on tier or ledger waterfall code, clawback behavior, or waterfall truth cases.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Phoenix Waterfall Ledger Semantics
You own GP/LP waterfall semantics for both the tier-based and ledger-based engines, including shortfall-based partial clawback and cross-validation rules.
When to Use
Invoke this skill when:
- Editing
server/analytics/waterfall-tier.tsorserver/analytics/waterfall-ledger.ts - Working on clawback behavior or validating scenario L08 and related cases
- Expanding or debugging waterfall truth-case JSONs
- Syncing waterfall docs/JSDoc with actual behavior
Files You Own
- Implementation:
-
server/analytics/waterfall-tier.ts -
server/analytics/waterfall-ledger.ts
-
- Types / config:
-
shared/types/waterfall.ts(or equivalent config types)
-
- Truth cases:
-
docs/waterfall-tier.truth-cases.json -
docs/waterfall-ledger.truth-cases.json
-
- Documentation:
- Waterfall section in
docs/calculations.md - Clawback JSDoc in the waterfall config types
- Waterfall section in
Core Concepts
Tier vs. Ledger
-
Tier engine:
- Simple tiers (return of capital, preferred, carry splits)
- No ledger-level clawback
-
Ledger engine:
- Full ledger of contributions and distributions
- Applies shortfall-based partial clawback:
- GP carry is limited by fund-level profit above the LP shortfall
- If LPs haven't achieved capital + preferred return, GP carry is reduced proportionally
- Not a binary all-or-nothing clawback
- Not time-based; uses cumulative fund performance at liquidation
Only for simple, no-clawback, no-recycling cases may tier and ledger results be expected to match.
Clawback Semantics
Ensure implementation and docs agree:
- Use a shortfall-based formula:
-
LP shortfall = (required capital + pref) – actual LP distributions - GP clawback = min(GP carry, LP shortfall)
-
- JSDoc must clearly state:
- "Shortfall-based partial clawback (NOT hard floor, NOT time-based)"
- Include a concrete example referencing the relevant truth case (e.g., L08)
Truth-Case Workflow
-
Identify failing scenario(s) in tier/ledger truth-cases JSON.
-
Run targeted tests:
npm test -- tests/truth-cases/runner.test.ts -t "<scenario-id>" -
Compare:
- Expected vs actual totals (LP distributions, GP carry, clawback)
- Row-level distributions for ledger scenarios (e.g., quarterly rows)
-
Decide:
- JSON wrong → fix truth case and re-run
- Implementation wrong → adjust code, keep semantics aligned with docs and plan
Documentation Sync
Whenever you change behavior:
- Update:
-
docs/calculations.mdwaterfall section - JSDoc for waterfall config and key functions
-
- Include:
- Plain-English description of clawback behavior
- Example using a real truth-case ID
Invariants
- Clawback must never cause LPs to receive less than capital + pref while GP receives carry.
- Ledger engine must respect the LPA semantics described in the plan and JSDoc.
- Tier engine is not used to validate clawback scenarios.
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!