Engineering ROI — what the spend buys, and what to do next
Commit churn joined with runtime value on the CodeNSM codebase itself: which code was expensive to build, which code the product actually runs on, and where the two disagree. Function names are aliased (svc.fn_•••2c) and authors are relabelled Engineer A/B; the churn, calls, value and quadrant math are the real distribution.
This page answers: what did the engineering spend actually buy? Build cost joined to runtime value — the efficiency grade, where the money leaks, and a ledger of every git-mapped function.
? How to read this office roles & states, in plain English
Executive summary
the 30-second read — computed live from this codebasein 45 expensive dead-weight functions — high build cost, no runtime value.
trapped in dead weight (71% of scored churn) — re-queue onto value without adding headcount.
expensive-and-valuable functions with the fewest commits — protect with tests first.
26 framework entry points held out of the grade — invoked by the framework, not runtime-called, so not counted as waste.
The reads
deterministic inferences — the joins say this, no guessing5377 lines of churn went into code with no runtime value (92 functions). Worst offender: core.fn_•••a4 — 173 lines over 3 commits, 0 runtime calls. Stop funding it, or find out why nobody calls it.
115 functions are expensive AND valuable — the iterate-hard core. core.fn_•••a4 leads: value 8.9, 3 commits, 12d to stabilise. These deserve tests and review depth first.
Bandwidth split is uneven: Engineer A lands 50% of commits in high-value code; Engineer B lands 0%. That gap is a queueing decision, not a talent verdict — re-queue before you re-hire.
Share of sprint churn landing in high-value functions: 48% → 58% (rising — the roadmap is converging on value).
Cheapest capacity is reallocation: move the dead-weight churn onto the ranked fix queue before adding headcount.
The money chart
Build cost × runtime value
cost → (churn × iterations, log scale) · up = more runtime value · hover a dot for the function. Trajectory (▲/▼) lives in the ledger below.
Dev bandwidth → business value
grey = all commits · gradient = commits landing in top-quartile-value functions · % = share of bandwidth on business value · authors relabelled Engineer A/B
Sprint time contributing to business
Re-allocation simulator
what if you stopped funding the dead weight?Deselect any dead-weight function you would keep; the freed capacity re-estimates live. Hours are an estimate at 25000 churn-lines / 1800h per engineer-year.
Function ledger
every git-mapped function, costliest first — click a row for the business logic| Function | Quadrant | Commits | Churn | Runtime calls | Value | Days | Triage | |
|---|---|---|---|---|---|---|---|---|
| core.fn_•••a4 | Expensive value | ▲ | 3 | 173 | 9 | 8.9 | 12 | read-only |
| core.fn_•••a4 | Expensive value | ▲ | 3 | 173 | 3 | 3.0 | 12 | read-only |
| core.fn_•••a4 | Expensive dead weight | ▲ | 3 | 173 | 0 | 0.0 | 12 | read-only |
| core.fn_•••a4 | Expensive dead weight | ▲ | 3 | 173 | 0 | 0.0 | 12 | read-only |
| core.fn_•••a4 | Expensive dead weight | ▲ | 3 | 173 | 0 | 0.0 | 12 | read-only |
| core.fn_•••a4 | Expensive dead weight | ▲ | 3 | 173 | 0 | 0.0 | 12 | read-only |
| core.fn_•••a4 | Expensive dead weight | ▲ | 3 | 173 | 0 | 0.0 | 12 | read-only |
| svc.fn_•••6b | Expensive value | ▲ | 4 | 83 | 548 | 548.0 | 2 | read-only |
| web.fn_•••fe | Expensive value | ▲ | 6 | 55 | 43 | 29.6 | 2 | read-only |
| api.fn_•••57 | Expensive value | ▲ | 5 | 65 | 919 | 798.8 | 2 | read-only |
| core.fn_•••57 | Expensive value | ▲ | 5 | 56 | 2 | 1.7 | 10 | read-only |
| core.fn_•••c9 | Expensive value | ▲ | 4 | 50 | 8.5K | 8476.7 | 2 | read-only |
| api.fn_•••42 | Expensive value | ▲ | 5 | 36 | 93 | 74.7 | 13 | read-only |
| data.fn_•••6c | Expensive dead weight | ▲ | 1 | 171 | 0 | 0.0 | 0 | read-only |
| svc.fn_•••97 | Expensive dead weight | ▲ | 1 | 171 | 0 | 0.0 | 0 | read-only |
| data.fn_•••70 | Expensive dead weight | ▲ | 1 | 171 | 0 | 0.0 | 0 | read-only |
| data.fn_•••08 | Expensive value | ▲ | 3 | 57 | 34 | 33.7 | 0 | read-only |
| api.fn_•••9f | Expensive value | ▲ | 4 | 42 | 74 | 73.9 | 2 | read-only |
| api.fn_•••71 | Expensive dead weight | ▲ | 1 | 165 | 0 | 0.0 | 0 | read-only |
| core.fn_•••ec | Expensive value | ▲ | 1 | 165 | 235 | 235.0 | 0 | read-only |
| ops.fn_•••01 | Expensive value | ▲ | 4 | 39 | 985 | 985.0 | 4 | read-only |
| data.fn_•••ff | Expensive value | ▲ | 3 | 52 | 83 | 50.6 | 2 | read-only |
| core.fn_•••8d | Expensive value | ▲ | 4 | 36 | 29 | 20.6 | 3 | read-only |
| web.fn_•••b6 | Expensive value | ▲ | 4 | 35 | 8 | 7.9 | 0 | read-only |
| svc.fn_•••9a | Expensive dead weight | ▲ | 2 | 70 | 0 | 0.0 | 0 | read-only |
| web.fn_•••20 | Expensive value | ▲ | 4 | 32 | 246 | 246.0 | 4 | read-only |
| svc.fn_•••e2 | Expensive value | ▲ | 2 | 61 | 67.8K | 67770.0 | 2 | read-only |
| api.fn_•••75 | Expensive value | ▲ | 2 | 59 | 149 | 122.3 | 12 | read-only |
| web.fn_•••1c | Expensive dead weight | ▲ | 1 | 112 | 0 | 0.0 | 0 | read-only |
| web.fn_•••1c | Expensive dead weight | ▲ | 1 | 112 | 0 | 0.0 | 0 | read-only |
// Method: patch hunks are parsed for the functions they touch and matched to the functions this project tracks in production. Cost = churn × iterations per function; value = runtime contribution. Quadrants split at the medians. Dollar figures are estimates from an adjustable engineer-cost assumption, never presented as fact. In the public demo, function names are aliased and authors relabelled — the distribution is real; the identities are not.
// Triage decisions (delete / keep / test) persist in your own workspace, alongside the executive summary and per-developer coaching view.