The KPI Dashboard¶
Measurement is not optional. If you cannot see the plan working, you will assume it is not. If you cannot see it failing, you will discover it too late. The dashboard below is 14 metrics: 7 weekly, 4 monthly, 3 quarterly. Also: anti-KPIs (what NOT to track) and the M9 hard-gate checkpoint.
Open this file every Sunday during the 30-minute retro block. Update the tables. Do not skip a week.
Weekly Metrics (7)¶
Update in your lab notebook every Sunday 20:00–20:30. Copy this table into a weekly_kpi.md file in your mynn-cpp (or current-rung) repo. Yes, it goes in a public repo. Yes, that is intentional — accountability is why.
# |
Metric |
Definition |
Green (weekly target) |
Yellow |
Red |
|---|---|---|---|---|---|
1 |
Hours logged |
Personal C++ hours (not Zoho C++). Rounded to 0.5 hr. |
10–15 |
6–9 |
<6 |
2 |
Morning drills completed |
Count of the 4 planned (Mon/Tue/Thu/Fri) actually done. |
3–4 of 4 |
2 of 4 |
≤1 of 4 |
3 |
Rung commits pushed |
Distinct commit messages on current-rung repo. Squash-merges count once. |
5+ |
2–4 |
0–1 |
4 |
Lab notebook entries |
Dated entries in |
4+ |
2–3 |
0–1 |
5 |
Sprint deliverable progress |
Self-rated % complete on the sprint’s primary deliverable. |
On plan |
5–15% behind |
>15% behind |
6 |
Wednesday rest respected |
Did you code C++ on Wednesday? Y/N. |
N (rest respected) |
— |
Y (broke rest) |
7 |
Read one thing from |
Read a Reddit thread, watched a talk, or engaged in a Discord/Bluesky thread this week. |
Yes |
— |
3 weeks in a row “no” |
Monthly Metrics (4)¶
Update on the last Sunday of each month. Compare to the exit check in 01_month_by_month.md.
# |
Metric |
Definition |
Green (monthly target) |
|---|---|---|---|
1 |
Rung status |
Where the current rung stands vs. its calendar date. |
On or ahead of |
2 |
Reading breadth |
Number of distinct files ( |
5–10 files |
3 |
Community touches |
Public posts (blog, comment, r/cpp reply, Bluesky/X post) with C++ content. |
2–4 per month |
4 |
Sleep floor |
Nights below 6.5 hrs this month. |
≤3 per month |
Quarterly Metrics (3)¶
Update at the end of Q1 (end of Sep 2026), Q2 (end of Dec 2026), Q3 (end of Mar 2027), Q4 (end of Jun 2027).
# |
Metric |
Definition |
Green (quarterly target) |
|---|---|---|---|
1 |
Rungs shipped in quarter |
Rungs published (public GitHub + README complete) in the quarter. |
Q1: 1–2 · Q2: 1 · Q3: 2 (incl. Rung 6 HG) · Q4: 2–3 (incl. Rung 7 HG) |
2 |
Zoho alignment stage matched |
Q1 Quiet / Q2 Measure / Q3 Propose / Q4 Own — are you where the calendar says? |
Yes |
3 |
M13 pitch honesty test |
Can you say the M13 pitch out loud today, in your own voice, without lying? Y/N. |
Q1: no (fine). Q2: partial. Q3: mostly. Q4: yes. |
The M9 Hard-Gate Checkpoint (2027-03-31)¶
On 2027-03-31, run this checklist. Every item must be a “Yes.” Any “No” triggers the hard-gate miss protocol (99_pre_mortem/05_the_hard_gate_M9_miss.md).
mynn-cpprepo public on GitHub with MIT license?Eigen-based MLP compiles clean on brew LLVM 21+?
MNIST test accuracy ≥95% reproducible from
make test-accuracy?pybind11 bindings functional,
pip install-able from Test PyPI?Same-seed comparison vs PyTorch shows delta ≤1%?
README has: build instructions, benchmark table, honest limitations?
Blog post live somewhere public (personal blog, dev.to, Medium)?
Posted to r/cpp AND r/MachineLearning AND HN (Show HN or main post)?
All 8 boxes checked → hard gate cleared. Continue to Phase 6. Any box unchecked at 2027-04-14 (14-day tolerance) → hard-gate miss protocol.
The M11 checkpoint (2027-05-31 → 2027-06-14 tolerance) uses the equivalent checklist in 12_portfolio/07_rung7_m11_HARDGATE_grpc_inference_service.md.
Portfolio Rung Tracking Table¶
Copy this into your lab notebook. Update at the end of every month. This is the master table — more important than any weekly metric.
Rung |
Target month |
Actual ship date |
Green / Yellow / Red |
Notes |
|---|---|---|---|---|
1 |
M1 (Aug 2) |
|||
2 |
M3 (Sep 27) |
|||
3 |
M4 (Oct 11) |
|||
4 |
M5 (Nov 22) |
|||
5 |
M7 (Jan 17) |
|||
6 🟧 |
M9 (Mar 31) |
HARD GATE |
||
7 🟧 |
M11 (May 31) |
HARD GATE |
||
8 |
M13 (Aug 6) |
Anti-KPIs — What NOT To Track¶
These metrics look meaningful but are noise. They will lie to you about your progress. Do not track:
GitHub stars. They are a function of when you posted, not what you built. Ignore.
LeetCode ranking / contest rating. Not the goal. NeetCode 150 finished (Rung 4) is the ceiling for competitive-style DSA.
Number of books read. Book-count is vanity. Applied learning is what matters — books consumed in service of a rung, not books completed.
Lines of code written. LoC is inversely correlated with quality after a point. Ignore.
Twitter/X followers, Bluesky followers. Community engagement quality matters; audience size does not (until M12+, and even then it’s a bonus).
Hours spent on YouTube tutorials. Passive watching is not learning. If it’s not turning into commits, it’s leisure. That’s fine — just don’t count it as work.
PRs to famous open-source projects. Great if it happens. Not a target. Do not chase; a rejected PR to LLVM will demoralize you without teaching you anything.
study offer count before M13. You are not studying before M13. See
08_phase_7_capstone_and_signal/05_interview_conversion.md.
Yearly Review Template (2027-08-06)¶
At the end of the 13 months, write this document. It is the artifact of your artifacts.
# The Next 13 Months — Retrospective
**Started:** 2026-07-06
**Ended:** 2027-08-06
**Hours logged (est.):** _____ (target 600, floor 400)
**Rungs shipped:** ___/8
**Hard gates cleared:** ___/2
## What worked
(3–5 bullets. Specific.)
## What did not
(3–5 bullets. Specific.)
## The single hardest week
(Name the week. Why. What did you do.)
## The single most surprising technical finding
(One paragraph.)
## What I underestimated
(One paragraph.)
## What I overestimated
(One paragraph.)
## The M13 pitch — honest version
(Rewrite the pitch in your own words based on what you actually shipped.)
## What's next
(Not "the next 13 months." What you're doing on 2027-08-07.)
Write it publicly. Publish it to your blog. It is the artifact recruiters will read.
What Most People Get Wrong About KPI Dashboards¶
They track them for a month, then quietly stop. The reason: the dashboard felt like extra work when the sprint was already hard. This is the moment the plan starts to drift. The dashboard is not extra work — it is the only work whose job is to tell you the truth about the other work. Skipping it during a hard sprint is like turning off the fuel gauge because you’re low on fuel. Track every Sunday, even in the 8-hour weeks. Especially in the 8-hour weeks.
The second failure: they conflate KPIs with worth. A red week is data. It is not a verdict on you as a person. Log it, adjust load, continue. The dashboard is a tool of dispassionate measurement. If it feels like judgment, it is being misused.
Return to: README.md · Next: 06_background_alignment.md — how this plan meshes with your Zoho work.