Metrics · LGTM · M
Momentum
Is the team measurably improving at working with AI?
Momentum is the direction of the other readings over time: the slope of a simple composite — Landing, inverse friction, the felt score — across trailing windows. It is the number the maturity ladder's top level asks about: whether the loop is actually compounding.
What it reads
- ●The composite reading (Landing, inverse friction, felt) for each of the last six windows
- ●Consistent window boundaries and team scope across the series
How it’s computed
Compute the same composite for six trailing windows and fit a line. The slope is Momentum; the series itself ships with it.
// six trailing windows of the same composite
const series = lastWindows(6).map(w => ({
at: w.end,
value: mean([
landing(team, w),
1 - normalize01(friction(team, w)),
felt(team, w) / 100,
]),
}));
const momentum = slope(linearFit(series)); // > 0 : compounding
// always published with the series — never the slope alone
How to read it
- →Positive Momentum is the compounding the loop promises: the record is read, findings return to the work, and the next window is a little better.
- →Flat Momentum with healthy levels is fine — a strong steady state. Negative Momentum during a tool change is normal; negative for three windows is a conversation.
How it gets misused
- ✕Six points fit a line, they don't prove a law. Momentum flags direction; the components say why.
- ✕Comparing Momentum between teams punishes the ones who started strong. It's a team-against-itself number.