KPI Dashboard — What Gets Measured, What Gets Ignored¶
Every long plan gets destroyed by one of two failure modes: measuring nothing (so slippage is invisible until it’s catastrophic) or measuring too much (so the plan becomes about the dashboard, not the work). This file is the middle path — 14 metrics total, split across weekly / monthly / quarterly cadences, plus a list of anti-KPIs you must never chase.
The rule that governs this whole file: metrics exist to make honest slippage visible in time to correct it, not to prove to yourself that you are working. If a metric is going green while the work is going sideways, the metric is wrong. Change it.
Weekly Metrics (7) — Sunday Evening Ritual¶
Write these seven numbers at the end of every week in the lab notebook. Five minutes.
# |
Metric |
Definition |
Green |
Yellow |
Red |
|---|---|---|---|---|---|
W1 |
Real Java hours |
Time spent writing Java (not reading, not watching) |
≥ 8 |
4–7 |
≤ 3 |
W2 |
Total plan hours |
Real Java + reading + notebook + publishing |
≥ 10 |
6–9 |
≤ 5 |
W3 |
Commits to plan repos |
Public commits to any of the rung repos or notes repo |
≥ 5 |
2–4 |
≤ 1 |
W4 |
Lab-notebook entries |
Number of entries this week (S-plan, retros, predict/measures) |
≥ 3 |
1–2 |
0 |
W5 |
Sleep hours (7-day avg) |
Honest average, from phone or wearable |
≥ 7 |
6.0–6.9 |
≤ 5.9 |
W6 |
Sprint burn-down |
% of sprint deliverable completed vs % of sprint calendar consumed |
on track |
5–15% behind |
> 15% behind |
W7 |
Wednesday-off honored? |
Yes/no |
yes |
— |
no |
How to use it: Any two reds triggers the yellow-week response from 04_weekly_rhythm.md. Any three reds two weeks in a row triggers the reset protocol in ../99_pre_mortem/09_summary_and_reset_protocol.md.
Monthly Metrics (4) — Last Weekend of the Month¶
Spend 45 minutes on the last Sunday of the month reviewing these. Write the numbers in the lab notebook and in a running MONTHLY.md in the notes repo.
# |
Metric |
Definition |
Target |
|---|---|---|---|
M1 |
Monthly exit-check pass rate |
Fraction of the month’s exit checkboxes in |
≥ 80% by month-end |
M2 |
Portfolio-rung status |
Where each active rung is on its checklist |
Current rung on track for calendar due date |
M3 |
Public shipping cadence |
Public commits, blog posts, PRs (any repo, any platform) |
≥ 1 substantial public artifact per month |
M4 |
Retro completeness |
S-retro entries written for both sprints this month |
2/2 (never miss both, never skip one silently) |
How to use it: M1 below 60% two months in a row = plan is oversized for current life; compress next month’s scope. M3 = 0 in any single month is a red flag — something must go public even if it is a work-in-progress commit with a WIP tag.
Quarterly Metrics (3) — Buffer-Week Review¶
During each quarter’s buffer week, spend 90 minutes writing the quarterly review. Three questions, three numbers:
# |
Metric |
Definition |
Target |
|---|---|---|---|
Q1 |
Rungs shipped on time |
Cumulative rungs shipped by their calendar due date |
100% for hard gates; ≥ 80% for others |
Q2 |
Sustainable-week ratio |
(Green weeks) / (Total weeks this quarter). Yellow and red both count against green. |
≥ 60% green quarters (7 of 12 weeks green) |
Q3 |
Body/mind integrity |
Sleep average, exercise sessions/week, at least one deep dinner or family evening/week |
Sleep ≥ 7h avg; exercise ≥ 2x/wk; deep dinner ≥ 3/quarter |
Quarterly review lives in QUARTERLY.md. Cross-link the previous quarter’s entry when you write the next — the diff between two quarters is the most useful signal in the whole dashboard.
The M9 Hard-Gate Checkpoint¶
End of March 2027 (M9) is the single most important checkpoint in the entire 13 months. By this date:
Rung 5 (Concurrency Playground) must be shipped — hard gate #1, due Feb 28, 2027.
Rung 6 (JVM Performance Case Study) should be shipped — due Mar 31, 2027.
Phase 06 (JVM Internals) must be complete.
First M13 pitch draft should exist.
If at end of M9 you are missing any of the above, the plan needs a structural correction, not a small adjustment:
Missing Rung 5: Extend Rung 5 by 4 weeks (using Q3 buffer + one week of Rung 6 scope). Descope Rung 6 to “a single case study, no reverted-optimization requirement.” Do not skip Rung 5.
Missing Phase 06 completion: Cut Phase 07 (Spring) reading by 30% — focus on files 01, 02, 03, 04 and defer 05, 06, 07 to after Rung 7 ships.
Missing pitch draft: Schedule two evenings in April to write it before Phase 07 depth reading. Rehearsal begins one month later than planned but is not skipped.
This checkpoint is the single point in the plan where you are allowed to renegotiate scope with yourself. Elsewhere the answer is “absorb into buffer.” Here the answer can be “cut Phase 07 by 30%.”
Portfolio Rung Tracking Table¶
Maintain a copy of this in PORTFOLIO_STATUS.md in the notes repo. Update monthly.
Rung |
Artifact |
Due date |
State |
Blocker (if any) |
Notes |
|---|---|---|---|---|---|
1 |
50 Programs Repo |
Aug 31, 2026 |
☐ not started · ☐ in progress · ☐ shipped |
||
2 |
DSA GitHub 150 |
Oct 31, 2026 |
☐ not started · ☐ in progress · ☐ shipped |
||
3 |
MiniCollections |
Nov 30, 2026 |
☐ not started · ☐ in progress · ☐ shipped |
||
4 |
Modern Java Refactor Case |
Dec 27, 2026 |
☐ not started · ☐ in progress · ☐ shipped |
||
🚨 5 |
Concurrency Playground |
Feb 28, 2027 |
☐ not started · ☐ in progress · ☐ shipped |
||
6 |
JVM Performance Case Study |
Mar 31, 2027 |
☐ not started · ☐ in progress · ☐ shipped |
||
7 |
URL Shortener Service |
May 31, 2027 |
☐ not started · ☐ in progress · ☐ shipped |
||
🚨 8 |
ML Capstone on Kubernetes |
Jul 31, 2027 |
☐ not started · ☐ in progress · ☐ shipped |
Anti-KPIs — What Never To Track¶
These metrics look useful and are actively harmful. Tracking them will corrupt your priorities. Do not put them in the dashboard.
GitHub stars / follower counts. Popularity is a lottery. Chasing it will make you optimize for tweetable projects instead of substantive ones. Only ship-count matters.
LeetCode number solved. Total count without pattern-tagging and without complexity analysis is theatre. Rung 2 asks for 150 pattern-tagged with complexity comments; that is the real metric.
Books finished. “Finished Effective Java” means nothing. “Applied Item 17 to
MiniHashMapand here is the commit” means everything.Hours in front of the screen. Ass-in-chair is not the same as thinking. W1 (real Java hours) and W6 (sprint burn-down) both measure output; screen time measures nothing.
Blog post view counts. Ships > views. Publishing a Rung retro that gets 12 views is a green metric; publishing nothing but hoping the next post goes viral is a red metric.
Comparing to other learners on Twitter/LinkedIn. Zero signal, high emotional cost. Do not track anyone but yourself. See
../99_pre_mortem/06_fm_isolation_and_no_feedback.mdfor how to get feedback without falling into comparison.
Yearly Review Template¶
Write in the Q4 buffer week (Jul 26 – Aug 1, 2027). One long entry. This is the artifact you re-read every year in July.
### The Next 13 Months — Final Review · YYYY-MM-DD
1. **The rungs, honest:**
- Rung 1 — shipped / not / partial. What it taught me: ___
- ... (repeat for 8)
2. **The pitch, said out loud:**
- Can I say the M13 pitch sentence in one breath, without notes, and mean every word? Yes / No.
- If yes: what earned it? If no: what is missing?
3. **The dashboard, aggregate:**
- Green weeks: __ / 52
- Yellow weeks: __ / 52
- Red weeks: __ / 52
- Rungs on time: __ / 8
- Hard gates hit: __ / 2
4. **The Valley of Despair — what I learned in M4–M7:**
___
5. **What I would do differently if I ran this plan again:**
___
6. **What I kept from the plan that surprised me by working:**
___
7. **The three lessons I want the version of me starting Aug 2027's next plan to remember:**
1. ___
2. ___
3. ___
8. **A letter to July-2026 me** (250 words, honest, warm):
___
That letter at the end is not optional. It is the thing you re-read when you start the next long plan and forget what a year of viking-level work actually cost.
Return to 00_command README · Previous: 04_weekly_rhythm.md · Next: 06_background_alignment.md