public.projects — a title edit PATCHes projects.name, the single source
of truth. The daily workflow then republishes the dashboard from Supabase.
live_metrics.json → raw.Students (scraped from CCCCO API)
Supabase projects → id 3.1 → kpi_metric (baseline "current")
Then a committed snapshot, then the legacy .xlsx — deep outage fallbacks only
Injected from live_metrics.json → metrics[0].breakdowns:
• Military — raw.MilitaryStudents
• Workforce — raw.NonMilitaryStudents
• Apprentice — raw.AprenticeStudents (API typo)
Primary: LIVE from the CCCCO API (raw.Students) — nothing to set.
Baseline fallback: edit projects.kpi_metric for id 3.1 via the signed-in editor. A hard override lives in kb/dashboard_config.json (the old Excel Col AF/AG override columns were retired).
live_metrics.json → raw.Units
API endpoint: /api/potential-savings → ALL COLLEGES row
• Military — raw.MilitaryCredits
• Workforce — raw.NonMilitaryCredits
• Apprentice — raw.ApprenticeshipCredits
• Avg per Student — raw.AverageUnits
Supabase projects id 3.2 → kpi_metric
live_metrics.json → raw.TranscribedUnits
• Military — raw.TranscribedMilitaryUnits
• Workforce — raw.TranscribedNonMilitaryUnits
• Apprentice — raw.TranscribedApprenticeshipUnits
• Applied Credits — from CustomReport credit_distribution (enrichment)
Supabase projects id 3.2 → kpi_metric (same row as eligible units)
CustomReport_*.json → View_ArticulatedMAPExhibits_APIDataset
Parsed by _parse_exhibits() → exhibit_data["total_credit_recs"]
• CCC Collaborative — exhibits where Collaborative Type = CCC
• Local — individual college articulations
• Footnote — Top 5 CPL types by count
Supabase projects id 2.1 → kpi_metric
CustomReport_*.json → exhibit_data["unique_exhibits"]
• CCC Collaborative — ccc["unique_exhibits"]
• Local — exhibit_data["local"]["unique_exhibits"]
"{originating_colleges} originating colleges"
• Collaborative Exhibits — ccc["unique_exhibits"]
• Collaborative Credit Recs — ccc["credit_recs"]
live_metrics.json → computed by Cloudflare Worker from per-college API data
• Leading — tiers.leading.count (13)
• Advancing — tiers.advancing.count (82)
• Inactive — tiers.inactive.count (20)
• Active Total = Leading + Advancing (95)
Auto-generated criteria list from Worker response
CustomReport_*.json → View_ArticulatedMAPExhibits_APIDataset
Unique "College" values in exhibit rows
live_metrics.json → raw.Savings
Computed by CCCCO: eligible units × avg credit cost
Supabase projects id 4.1 (Veteran Sprint) — kpi_metric. Post-reorg #872 the old 4.1a sub-id is gone.
• JST Credits — {jst_credits} placeholder → replaced by live_data → cumulative_students → Military breakdown
• Basic Training Credit — projects[4.1].kpi_metric + " Colleges" (Supabase)
• Eligible CPL — {eligible_cpl} placeholder → replaced by live_data → eligible_units → Military breakdown
live_metrics.json → raw.YearImpact
Computed by CCCCO: 20-year economic impact model (Beacon Economics)
The old populate_current_metrics() / _pmetric_int / _ppct / _pcount cluster and the "Excel Col R/S/T-AC" columns were deleted in the Excel-retirement work (PR #213) — ignore any doc that still cites them.
projects, grouped by workplan_activity)1.1 MAP Platform Development · 1.1.1 AI Certification-to-Course Matching · 1.1.2 AI Apprenticeship CPL Tools · 1.1.3 WestEd CPL Scope of Work · 1.2 System Integration & Interoperability · 1.3 CPL Student Portal · 1.4 California Credential Registry
Each card's big number = projects.kpi_metric unless apply_live_activity_current() wires it to a live headline KPI (none in Activity 1 today).
Rename / re-metric a sub-activity via the signed-in editor — the title cell PATCHes projects.name (e.g. 1.1.3 is the WestEd rename).
projects)2.1 Statewide Credit Recommendations · 2.2 Faculty Discipline Workgroups · 2.3 Common Course Crosswalks · 2.4 Validated Skills
2.1 → credit_recommendations headline KPI via PID_TO_KPI_KEY (the exhibit-count total from CustomReport JSON). The rest show projects.kpi_metric / workplan_goals.current.
Title / metric edits PATCH Supabase projects via the signed-in dashboard editor.
projects)3.1 CPL Offers & Awards Tracking — All Populations · 3.1.1 Working Adults · 3.1.2 Veterans & Service Members · 3.1.3 Apprentices & Journeyworkers · 3.1.4 Other Populations · 3.2 CPL Units Transcription · 3.3 Statewide Adoption & Participation · 3.4 Student Impact Rate Survey · 3.5 Student Stories · 3.6 College Tracking & Recognition · 3.7 RP Group CPL Field Survey · 3.8 MIS Data Reconciliation
3.1→cumulative_students, 3.2→transcribed_units, 3.3→active_colleges (headline KPIs). Population cards 3.1.1/3.1.2/3.1.3→ the workforce / military / apprentice breakdown rows via PID_TO_KPI_BREAKDOWN.
Title / metric edits PATCH Supabase projects. Live-wired cards read the merged headline KPI, so their number can't be hand-edited here.
projects)4.1 Veteran Sprint · 4.1.1 29 Palms Marine Corps Base Demo · 4.2 Apprenticeship Sprint · 4.3 Strategic Partnerships · 4.4 Technical Assistance & Training · 4.4.1 VRC CPL Module Revision · 4.5 Law & Regulation Review · 4.6 Sustainable Funding · 4.7 CPL Legislative Advocacy (2026 Session)
The old 4.1 composite of 4.1a–4.1d is gone (reorg #872). Sprints are a cross-cutting sprint_tag (Veteran / Apprenticeship / Statewide Adoption); Statewide Adoption moved under 3.3.
4.1 Veteran Sprint → veteran_sprint headline KPI (PID_TO_KPI_KEY). Others show projects.kpi_metric / workplan_goals.current.
kpi_history.json — appended daily by log_daily_snapshot()
• students, students_military, students_workforce, students_apprentice
• eligible_units, transcribed_units
• savings_m (Savings / 1M), year_impact_b (YearImpact / 1B)
• active_colleges, leading_colleges, star_colleges
• credit_recs, map_exhibits, ccc_collaborative, articulating_colleges
Academic quarters: Q1=Jul-Sep, Q2=Oct-Dec, Q3=Jan-Mar, Q4=Apr-Jun
Delta badges compare current entry to quarter start, 30 days ago, and 7 days ago
From live_metrics.json → tiers (Worker-computed, 3-of-5 algorithm)
render_college_activity_card() — combines live tiers, last activity dates, and military counts into a sortable card
• Baselines: Hardcoded in Python (line 1655)
• 2025 actuals: Hardcoded (lines 1710-1713)
• Current values: From live data sub-populations
• Goal/Stretch endpoints: From Supabase workplan_goals
• Targets: 250K / 500K hardcoded
Baselines, 2025 actuals, and the 250K/500K targets are Python constants in excel_to_dashboard.py — change the generator to move them. Goal/stretch endpoints edit live on the Annual Workplan Goals tab (Supabase workplan_goals).
Top expense categories with yearly and total values
Reshaped from the loaded budget dataset (Supabase)
All expense areas with yearly and total values
Reshaped from the loaded budget dataset (Supabase)
Supabase personnel: title, FTE per year, total compensation (+ a totals row)
Direct pass-through — no computation. Values from the Supabase personnel rows.
Entirely hardcoded in main() — Vision 2030 is intentionally static/computed (no Excel, no Supabase migration needed). Change the generator to update it.
Entirely hardcoded in main() — static/computed by design; edit the generator to change it.
Exported to statewide_data.js as window.CPL_STATEWIDE
Rendered interactively by statewide_interactive.js