KPI Dashboard — What You Measure Weekly, Monthly, Quarterly

What gets measured, gets shipped. What gets tracked, gets honest. This dashboard is the difference between “I feel like I’ve been working hard” and “I have shipped 3 rungs in 6 months.”

The dashboard has three tiers: 7 weekly metrics (checked in every Sunday retro, half of them binary), 4 monthly metrics (checked in on the 1st of every month), and 3 quarterly metrics (checked in every 3 months, hard and honest). At M9 there is a special hard-gate checkpoint, run once, that decides whether you continue on the current trajectory or invoke the reset protocol.

At the end of this file, an anti-KPI list: metrics you must not track, because tracking them would lie to you.


The 7 Weekly Metrics (Sunday retro, ~10 minutes)

#

Metric

Target

Threshold (yellow if below)

1

Deep-block hours logged

12+

8

2

Morning deep-block days hit (out of 5)

5

3

3

Evening 30-min touch days (out of 5)

5

3

4

Saturday 4h deep block: hit or miss

HIT

MISS (yellow if 2+/month miss)

5

Lab notebook entries this week

4

2

6

Sprint deliverable on-track (Y/N)

Y

N (yellow if 2 sprints in row)

7

Sleep 7-day average (hours)

7.5

6.5

Weekly retro spreadsheet template (copy to Google Sheets or Airtable):

Week | S# | Deep hrs | Mornings 5 | Evenings 5 | Sat block | Lab-NB | On-track | Sleep avg | Notes
W1   | S1 | 12.5     | 5          | 4          | HIT       | 4      | Y        | 7.4       | 

Weekly metrics are cheap to track and answer one question: am I doing the work I promised? They do not answer whether the work is good — monthly metrics answer that.


The 4 Monthly Metrics (1st of month, ~30 minutes)

#

Metric

Target by month

1

Portfolio rung shipped this month? (Y/N/PARTIAL, mapped to schedule)

Y in M1, M3, M5, M7, M9, M11, M13. Everything else = N acceptable.

2

Files read in this month’s phase (out of the phase’s file count)

100% by month end

3

LOC of C written this month (rough, from git shortlog)

800-1200 (rungs 1-2 phase), 1200-2000 (rungs 3-4), 500-1500 (rungs 5-6, dense)

4

Public artifacts added (blog posts, repo commits, PR/issue comments)

4+ (blog once/2 months, commits weekly, community comment monthly)

Monthly review spreadsheet template:

Month | Rung shipped | Files read % | LOC | Public artifacts | Confidence 1-10 | Notes
M1    | R1 (Y)       | 100          | 950 | 6                | 7               |
M2    | (N, planned) | 100          | 1100| 3                | 8               |

Monthly metrics answer: is the work compounding into the rungs? If LOC is high but no rung is progressing, you’re writing scaffolding — stop.


The 3 Quarterly Metrics (~90 minutes each)

Every 3 months (October 5, 2026; January 5, 2027; April 5, 2027; July 5, 2027), sit down for 90 minutes and answer these three cold.

Q Metric 1 — The Rung Ladder Status

Draw the ladder (Rung 1 — Rung 7). Mark each: shipped / in-progress / not started / at-risk. Compare against the month-by-month schedule. If you are 1 rung behind: yellow. 2+ rungs behind: red — invoke 99_pre_mortem/09.

Q Metric 2 — The Skill Self-Test

Every quarter, take one 60-minute cold challenge that tests where you should be by that quarter. Log the result.

Quarter end

Cold challenge (60 min, no notes, no LLM)

Q1 (M3)

Implement a bump-arena allocator from scratch, ASan clean, with 3 test cases

Q2 (M6)

Solve 3 NeetCode-medium problems in C in 60 min; ≥2 correct with tests

Q3 (M9)

Write a minimal single-connection echo server with select(), then convert to epoll

Q4 (M12)

Read a 500-LOC unfamiliar .c file from curl or valkey; write a 300-word summary

Did you pass? If no, drill on the corresponding phase directory for the following week.

Q Metric 3 — The Zoho Alignment Meter

See 06_background_alignment.md for the Q1-Q4 arc. At each quarter’s end, ask honestly:

  • Q1 (Oct 5, 2026): Am I quietly doing sharper C-adjacent thinking at Zoho? (Y/N)

  • Q2 (Jan 5, 2027): Have I measured where C skills could help my team? (Y/N)

  • Q3 (Apr 5, 2027): Have I proposed a small C-adjacent contribution? Manager reaction? (Y/N + notes)

  • Q4 (Jul 5, 2027): Am I now owning something C-shaped at Zoho? OR: am I actively studying externally? (One of the two must be true.)


The M9 Hard-Gate Checkpoint (March 14, 2027 evening)

The single most important checkpoint in the fortress. On Sunday, March 14, 2027 at 7:00 PM IST, sit down alone for 45 minutes with this file open. Answer honestly.

The M9 Hard-Gate 5 questions:

  1. Did Rung 5 (epoll HTTP server, 100k+ RPS) ship publicly by today?

    • YES → Proceed to Phase 6. You are on-track for the M13 pitch.

    • NO but shippable in ≤7 days (by Mar 21) → Use grace week. Ship it. Then proceed.

    • NO and not shippable in 7 days → Invoke reset protocol. Read 99_pre_mortem/09 now.

  2. Is sleep 7-day average ≥ 6.5h?

    • YES → Good.

    • NO → Read 13_discipline/08_health_burnout.md. Sleep before Rung 5.

  3. Have I quit the fortress mentally in the last 30 days more than once?

    • No / Once → Normal. Valley of Despair. Continue.

    • 2+ times → Read 13_discipline/07_motivation_sustainment.md and 99_pre_mortem/07.

  4. Am I still translating C from Claude/Copilot to my project? (Any time in the last 60 days?)

    • No → Good. You are un-atrophied.

    • Yes → Read 99_pre_mortem/01_the_ai_crutch_relapse.md. Recommit or reset.

  5. Would I take a Zoho-internal ML-infra role right now if offered?

    • Yes with 6 months more prep → On-track. Continue.

    • Yes today → You have overshot the target. This is a great problem. Consider studying.

    • No, I want something else → That’s information. See 06_background_alignment.md Q3-Q4.


Portfolio Rung Tracking Table

Maintain this table live. Update at each rung-ship, and on quarterly reviews.

Rung

Target Month

Actual Ship Date

Public URL

Stars/Views/Comments

Recruiter click?

R1

M1 (Aug 2)

R2

M3 (Sep 27)

R3

M5 (Nov 22)

R4

M7 (Jan 17)

R5 🟧

M9 (Mar 14)

R6 🟧

M11 (May 9)

R7

M13 (Jul 5)

“Recruiter click?” means: has anyone from a target company found this rung and reached out or reacted? Not required per rung, but a trailing signal that becomes meaningful by M11-M13.


Yearly Review Template (July 5, 2027)

On the final day, before writing the M13 pitch versions, spend 90 minutes on this.

  1. All 7 rungs status. Which shipped on time, late, or dropped?

  2. Total deep-block hours logged (from weekly spreadsheet, summed).

  3. Total LOC of C written. (from git shortlog across all your public repos)

  4. Total lab notebook entries.

  5. Blog posts published.

  6. Community comments/reviews received on public work.

  7. PRs opened / merged externally.

  8. The 5 things you are most proud of.

  9. The 3 things you regret spending time on.

  10. What you would tell yourself on July 6, 2026 if you could send one paragraph back.

  11. Are you now the person the M13 pitch describes? Y / N / mostly-Y.

  12. What’s next? (This is the beginning of the next 13 months, not the end.)


Anti-KPIs — Do Not Track These

Some metrics feel meaningful and are not. Tracking them will lie to you and make you feel productive while you drift.

1. Total hours “studied” (including reading unrelated CS content)

Measuring hours is fine — measuring hours including tangents is a lie. Do not count Rust rabbit holes, kernel dev streams unrelated to your phase, or general-CS YouTube as roadmap hours. Only phase-aligned hours count.

2. GitHub daily-commit streak

Streaks feel great and produce garbage commits. If you did no C on a rest day, do not make a fake commit. The streak lies to recruiters and to you.

3. Books “read”

A book is not read if you did not type the examples. “I finished Modern C” without a typed exercise repo is a lie. Track files completed with typed exercises, not books.

4. LeetCode problems solved this week (in ANY language)

The fortress rung 3 is 75 problems in C, not in Python. Solving in Python is fine for study-round practice; do not count it toward Rung 3 progress.

5. Twitter followers / LinkedIn connections

Zero-signal until M11+. Tracking them creates a distraction incentive to write posts instead of code. Do not track. The M13 pitch is not “I have followers”; it is a merged PR.

6. Total tabs open / bookmarks saved

Bookmarks are procrastination. Read the file or close the tab. Do not bookmark for later. Later never comes.

7. “Time to finish” estimates

Estimating time in weeks-out is astrology. Track what shipped this sprint only. Long-horizon estimates for a personal 10-15h/week schedule are unreliable and only produce guilt.


The One Number That Matters

If you strip everything else, one number matters more than all others: rungs shipped on time, by month. If Rung 1 shipped by M1 end, Rung 2 by M3 end, and so on — all other metrics are recoverable. If rungs are slipping, other metrics don’t matter.

Everything above is either (a) an early-warning signal that a rung is about to slip, or (b) a sanity check on process. The rungs themselves are the fortress.


Return to README.md · Previous: 04_weekly_rhythm.md · Next: 06_background_alignment.md