measure-land-and-expand-net-revenue-retention
Use when a business claims land-and-expand economics. Builds NRR and GRR from a revenue bridge and checks that expansion is real growth, not reclassification of price rises.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 80
- Forks
- 17
01 前言 Front Matter
- name
- measure-land-and-expand-net-revenue-retention
- description
- Use when a business claims land-and-expand economics. Builds NRR and GRR from a revenue bridge and checks that expansion is real growth, not reclassification of price rises.
02 资源文件 3
- 许可证LICENSE1.0 KB
- 参考文档SOURCE.md371 B
- 参考文档TRUST.auto.yaml2.2 KB
03 SKILL.md 正文
Measure land-and-expand net revenue retention
Land-and-expand is a claim about existing accounts growing. Net revenue retention is the number that tests it, so long as you build it from a revenue bridge and not from a headline.
Procedure
-
Build the bridge for one cohort over one period: starting MRR, expansion, contraction, churn, and ending MRR.
-
Compute NRR = (start + expansion - contraction - churn) / start, from the same cohort so new logos do not pollute it.
-
Worked: start $100,000, expansion $18,000, contraction $4,000, churn $9,000, ending $105,000. NRR = 105,000/100,000 = 105%.
``` python3 -c "from decimal import Decimal as D; print(D('105000')/D('100000'), D('87000')/D('100000'))" # 1.05 0.87 ``` -
Compute GRR the same way without expansion: (100,000 - 4,000 - 9,000)/100,000 = 87%. GRR is the leak; NRR is the pump. Report both.
-
Check the expansion source. Seat growth, usage overage and upgrades are real expansion; a price rise is re-pricing, not expansion.
-
Look at the land-to-expand path per cohort: median time from $5k ACV to $15k ACV, and the share that ever expand at all. Use the median; one whale distorts a mean.
-
Segment by landing size. Small lands that expand fast are the thesis; large lands that never move weaken it.
-
Keep the bridge in integer minor units so the four components sum exactly to the ending MRR; a float bridge will not tie to the ledger.
-
Reconcile the bridge to finance's MRR movement report every period; a retention figure that does not tie out is worse than none.
-
Flag negative-NRR cohorts early. Under 100% means expansion no longer covers churn and the model is running backwards.
Pitfalls
- Computing NRR including new logos, which turns retention into a growth number.
- Calling a price rise "expansion" and inflating NRR.
- Reporting NRR without GRR, hiding the churn underneath.
- Using a mean expansion figure that one whale distorts.
- Mixing cohorts across acquisition dates, so the comparison is not like for like.
- A float bridge that will not sum to the ending MRR.
Verification
```
python3 -c "from decimal import Decimal as D; print(D('105000')/D('100000'), D('87000')/D('100000'))"
# 1.05 0.87 -> NRR 105%, GRR 87% for the same cohort
```
Pass when the bridge components sum to the ending MRR. Report NRR, GRR, the expansion source, and confirmation the bridge ties to the ledger.
04 同仓库更多 Skills
recipe-performance
Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold/warm/background-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout/paint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.
mexc-spot-websocket
MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.
mexc-spot-rest
MEXC Spot REST workflows for public data, signed account requests, orders, wallet/admin actions, and secure signing without exposing API keys.
mexc-futures-websocket
MEXC Futures WebSocket workflows for public streams, private account/order/position streams, ping/pong, subscriptions, and depth maintenance.
0xklen-version-and-refresh-sanctions-lists
暂无简介
verify-tests-cover-changed-lines
Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.