Reports and dashboards.
How to produce client-facing engagement reports and live dashboards at milestone moments. The Milestone Update workflow chains dttt-advisory-credits for credit logging and balance confirmation into dttt-engagement-pdf for the closure PDF, with the live dashboard kept in sync throughout.
dttt-engagement-pdf, called from dttt-advisory-credits Step 8.
A Milestone Update is the trigger event — a piece of advisory work has reached a point where credits need to be logged, the balance needs to be refreshed for the client, and (often) a PDF needs producing. The workflow is owned by dttt-advisory-credits end-to-end; dttt-engagement-pdf is called in Step 8.
The user requests a Milestone Update.
Phrases that should trigger this workflow: "milestone update for [client]", "log the work and update the dashboard", "close out [job reference]", "produce the engagement report". Each implies the full chain, not just credit logging.Identify the work and propose bands.
Source transcripts, document metadata, calendar entries and any explicit instructions. Map discrete units of work to Work Blocks. For each, propose a band based on who did the work. Don't write to Airtable yet — propose only.Calculate hours.
Apply the two-hour gap rule (a gap longer than two hours splits a working session). Account for review time and meeting time from all colleagues, not just the primary contributor. Hours go in 0.25-hour increments. Ask before finalising if hours are ambiguous.Present for approval.
Show the user the proposed Work Blocks (band, hours, summary, credit cost). Iterate if needed. Don't proceed without explicit approval. This is the propose-then-approve guard — credits are commercially material, so the attribution is legible before it's written.Write to Airtable.
Create Work Blocks linked to the engagement. Credits Used auto-calculates from Hours × Band Credits/hr. The Advisory Ledger's Credits Used Rollup updates automatically; so does the Member's Credits Used.Confirm balance at Member level.
Read back the updated Credits Used, Credits Remaining, percentage used, and Equivalent Hours at Band C. The user (and the dashboard) now see the impact of the logged work on the annual pool.Update the client dashboard.
The dashboard reads directly from Airtable, so credit changes propagate automatically. What needs manual updating is the engagement narrative — Work Summary, Methodology & Approach, AI transparency fields — so the dashboard reflects what was just delivered, not only the credit numbers.Produce the engagement report PDF.
Where the milestone is an engagement closure, generate the PDF report card.dttt-advisory-credits calls dttt-engagement-pdf, which encodes the layout rules to prevent page-break and KeepTogether failures. The PDF is shared as the closure deliverable for the engagement.
The client dashboard surfaces the member's live state across two pools, then breaks down engagement by engagement. It's the source of truth the client uses to see how their year is going.
Top of page · pool status
- Advisory Credits — Allocation · Used · Remaining · % used · Equivalent Hours at Band C
- Session Credits — Allocation · Used · Remaining · % used
- Pro-rata note — if the activation is mid-year, the allocation reflects pro-rata and is annotated
Body · engagement list
Each engagement (Advisory Ledger record) gets its own block:
- Job Reference · Status · dates
- Request Title and short summary
- Credits Used (Rollup) and a band-mix breakdown
- Work Summary and Methodology & Approach
- AI transparency block (Grade, Percentage, Productivity, Models, Tasks)
Visual style
The dashboard uses the dttt-page-design system rather than the advisory design system. It's an operational view, not a client-facing artefact in the proposal sense — clarity and density take priority over reading rhythm.
The PDF is a single-engagement record. It travels separately from the dashboard and is sent to the client at closure.
Pages
- Cover — client name, engagement title, Job Reference, date range
- Summary — what was delivered, with the credit cost and band mix
- Approach — Methodology & Approach, key sessions, contributors
- Work breakdown — Work Blocks listed in chronological order with band attribution
- AI transparency — full AITC block with Grade, Percentage, Productivity, Models, Tasks, Note
- Footer — DTTT credentials, Job Reference, document version
Layout discipline
The PDF skill encodes the layout discipline learned the hard way. Page breaks land between logical units (never inside a Work Block). KeepTogether is set on every multi-line construct. The skill is opinionated about this because past PDFs broke at the wrong points.
dttt-advisory-credits owns the workflow end-to-end. It calls dttt-engagement-pdf at Step 8 for closure PDFs. The dashboard uses dttt-page-design. See the skills catalogue for each.
Phrases that should kick off the full Milestone Update workflow:
- "Milestone update for [client]"
- "Log the work for [job reference] and update the dashboard"
- "Close out [job reference] and produce the report"
- "Produce the engagement report for [client]"
- "How long did we spend on [job reference]? Log it."
Phrases that should kick off only the credit-logging part (no PDF):
- "Log the work for [job reference]"
- "Calculate the credits for [job reference]"
- "Update the dashboard for [client]"