Investment mix

Delivery & investment

What it measures

The share of merged PRs in each of four MECE investment buckets, tracked weekly: KTLO (bug fixes, dependency updates, ops work), New (net-new customer-facing capability), Improving (refactors, tech-debt paydown, performance), and Productivity (build, CI, tests, docs, tooling). Every PR lands in exactly one bucket.

The panel's headline vital is the Innovation ratio — the share of PRs in the "New" bucket.

Why it matters

Where a team invests its merge-bandwidth shapes what it ships and what it owes. A team that never sees "Improving" may be accumulating technical debt quietly; one stuck almost entirely on "KTLO" has a reliability conversation to have. Investment mix makes the allocation visible so the team can have that conversation deliberately.

How to read it

  • Read weeks as a stacked 100% bar — the four buckets always sum to all merged PRs that week.
  • The Innovation ratio (New share) is the headline vital; it surfaces on the overview.
  • There are no universal target bands — a greenfield product team legitimately skews New; a platform or reliability team legitimately skews KTLO or Improving. Set bands in gitpulse.yml against your own team's intent.
  • Trends matter more than any single week — look for sustained shifts, not noise.
  • The Improving bucket is an INTENT signal: it captures PRs whose labels or title say refactor, perf, debt, etc. This is different from the Refactor share panel, which is a CODE-SHAPE signal (deletion-heavy PRs). The two can disagree — a PR titled 'refactor' that adds more code than it removes counts as Improving here but not in refactor_share. They measure different things and are complementary, not redundant.

Anti-blame

Common misreads

  • A low Innovation ratio is not inherently bad — it depends on team type, product maturity, and the current season. A team paying down years of debt should expect a high Improving share.
  • Buckets are heuristic: classification uses PR labels first, then title patterns. A PR with no matching label or title keyword lands in New by default. The buckets are a signal, not ground truth.
  • Comparing innovation ratios across teams or repos is rarely meaningful — context differs too much.