A weekly promise-and-tracking layer for the bigger internal jobs — a new distribution post, a line rebuild — that a ticket queue was never built for: milestones, a filtered look-ahead, a constraint log, and weekly promises scored once the week actually closes, built on Lean Construction's Last Planner method rather than a Gantt chart nobody keeps up to date.
Companion piece to Public Lighting Ops Console — same contractor, same system, the project-planning half.
What the finished phases actually are, and by when — the handful of dates the whole job is organized around.
In this build: a milestone list per project, each with an owner and a due date, marked done as they land.
Working backward from each milestone: what handoffs does it actually depend on, and of the work coming up in the next six weeks, what's genuinely unblocked?
In this build: a pull-planning handoff log (who hands what to whom, and the condition that makes it "done") feeding a six-week look-ahead, plus a constraint register — each blocker gets an owner, a category, and a removal action, not just a note.
Only work marked ready in the look-ahead can be promised for the coming week — and the promise has an owner, a day, and a condition of satisfaction, not just a task name.
In this build: promoting a look-ahead item to "ready" surfaces a one-click "promise this week" action; the weekly board itself still takes freeform promises too, for anything not routed through look-ahead.
Once the week closes, every promise is scored Done or Missed — Percent Plan Complete — and the team huddles briefly on what actually happened.
In this build: PPC computes off the most recently closed week specifically (see below), plus a short huddle log — date, facilitator, blockers.
A missed promise on its own is just a log entry. The point is spotting which reason keeps recurring, so it gets fixed instead of rediscovered every huddle.
In this build: every missed promise gets tagged with a reason from a fixed list, tallied project-wide into a ranked breakdown — see the board below.
Computing PPC off the week still in progress made it look artificially bad every Monday and
Tuesday, since most of that week's promises were legitimately still "Promised" and hadn't been
evaluated yet. The headline PPC number now always reads the most recently closed
week; the running week gets its own live, explicitly-unlabeled-as-PPC progress note instead.
The timeline isn't a separate document someone maintains — it's a view computed from the same milestone, look-ahead, constraint, and weekly records the five conversations already produce. One source of truth means it's structurally impossible for the chart and the plan to drift apart.
Variance reasons are counted across a project's whole history rather than the last N weeks — a new project simply won't have enough missed promises yet for a rolling window to mean anything, and a young project with three misses shouldn't have its one real pattern diluted by an arbitrary empty window.
This workspace is scoped to one project lead's login and stored client-side, deliberately apart from the shared, database-backed ticket records in the ops console. It's still finding its shape week to week — keeping it out of the shared schema means it can keep changing without migrating data other roles depend on.