Back-to-School Forecast Dashboard

April-October 2026 | Clean Run Rates (Dec 2025 - Mar 2026) | Supply vs. Utilization Classification
Loading dashboard data...

Changelog

v2.6 Apr 14, 2026 Improvement
  • Upload tab restructured: Forecast and Manual Adjustments promoted to primary sections
  • Looker auto-sync status banner shows last successful fetch time and source status
  • Actuals, Run Rates, and Utilization uploads moved to collapsible "Advanced: Manual Data Overrides" section
  • Override descriptions clarified for all Looker-automated data sources
v2.5 Apr 14, 2026 Feature
  • Looker actuals integration: monthly contracted counts (Look 26292) now auto-fetched in CI/CD
  • Per-month actuals CSVs written to data/actuals/ with auto-detected status (final/in_progress)
  • Months with all-zero actuals are automatically skipped to prevent empty files
  • Extra columns stored for future use: Auto Assignable, Opps Responded, Assigns
v2.4 Apr 13, 2026 Feature
  • Looker API integration: utilization (Look 26291) and run rates (Look 25848) now auto-fetched in CI/CD
  • Utilization trending: current rate (recent 3 months) vs trailing rate with ↑/↓/→ trend indicators
  • Problem classification now uses recent utilization instead of pooled all-time average
  • Util column shows recent contracted vs utilized counts and trend delta tooltip
  • CI/CD: added scripts/** to trigger paths so analysis code changes trigger rebuilds
v2.3 Apr 8, 2026 Improvement
  • Extracted CSS and JS into separate files for maintainability and browser caching
  • Added HTML escaping to prevent XSS from data-derived values
  • Added loading spinner and error message when dashboard data fails to load
  • Critical Findings table now computes statistics dynamically from data
  • Deduplicated smoothing algorithm in analysis script
  • GitHub PAT switched to session-only storage with security warning
  • Added error handling and data validation to analysis pipeline
  • Added 24 unit tests for smoothing, classification, and categories
  • Updated CI/CD: newer GitHub Actions, pip caching, test step, skip-ci on bot commits
  • Improved accessibility: ARIA tab roles, keyboard navigation, non-color badge icons
  • Removed unused data.json.js (~1.1MB savings per deploy)
  • Added 200ms debounce to search inputs
  • Category filter dropdowns now generated dynamically from data
v2.2 Apr 1, 2026 Improvement
  • Cascade smoothing with 90-day window — over-cap months only push excess backward 3 months, keeping demand concentrated near peak to reduce tutor attrition
  • March baseline updated with final actual and adjusted forecast data (144 subjects)
  • New run rates format supported — auto-detects simple two-column CSV uploads
v2.1 Apr 1, 2026 Improvement
  • Smoothing fix: monthly targets now use forecast as a floor — earlier months are no longer zeroed out; back-loading only adds capacity toward peak months
  • Manual adjustments can now add new subjects not in Pierre's model — zero-value adjustments treated as intentional removal
  • Per-month manual adjustments with month selector — adjustments stored and applied independently per month
  • Redesigned capacity gap bar chart — values displayed outside bars for readability
  • Utilization data upload section added to Upload Data tab
  • Utilization column tooltips explaining the 30-day Feb-Mar 2026 measurement period
  • Gap column and priority table updated to use raw gap + coverage percentage
v2.0 Apr 1, 2026 Major Update
  • Back-loaded smoothing: adjusted targets concentrate recruiting toward peak months (Sep/Oct), capped at run rate
  • Manual forecast adjustments: upload CSV overrides for specific subjects; ADJ badge shows which subjects differ from model output
  • Monthly problem filter: filter Problem Subjects by specific month to see which subjects are problems in Apr vs Sep, etc.
  • Dual gap metric: gap column now shows raw gap number AND coverage percentage
  • Sticky table headers: column headers stay visible when scrolling all data tables
  • Utilization detail: shows underlying counts (e.g., "62% (23 of 37)") below percentage
  • Renamed "Utilization Problem" to "Possible Placement Issue" for stakeholder clarity
  • Mark-as-Final lock: finalized months removed from upload dropdown, lock icon shown
  • Reconciliation check: overview card counts computed client-side from actual data for accuracy
v1.8 Apr 1, 2026 Feature
  • Weekly actuals uploads — upload partial-month data as often as needed
  • In-progress months shown with dashed blue border, mini progress bar, and "IN PROGRESS" badge
  • "Mark as final" checkbox on upload — only finalized months shift adjusted targets and pace
  • Pace tooltip updated to explain in-progress vs final distinction
v1.7 Mar 31, 2026 Feature
  • Pace column with color-coded progress bar (green/yellow/red) showing forecast risk per subject
  • Hover tooltip on Pace header explaining formula and color coding
  • "Will Miss Forecast" and "At Risk" filter options
v1.6 Mar 31, 2026 Improvement
  • Renamed "Smoothed" terminology to "Adjusted" across all user-facing labels
  • Added forecast vs adjusted toggle to Monthly Tracker — view original forecast, adjusted targets, or both side by side
v1.5 Mar 31, 2026 Fix
  • Comprehensive category classification — subjects now mapped to 12 categories instead of mostly "Other" (241 → 10 unclassified)
  • New categories: Arts & Music, Technology, Language
v1.4 Mar 31, 2026 Feature
  • Combined Supply Problems and Utilization Problems into single "Problem Subjects" tab
  • Clear messaging that utilization issues may be masking real supply gaps
  • Problem type filter (Utilization/Algorithm, True Supply, No Util Data)
  • Category filter dropdowns added to All Subjects, Problem Subjects, and Monthly Tracker tabs
  • Sortable columns on Monthly Tracker (Subject, Run Rate, BTS Total, Remaining)
v1.3 Mar 31, 2026 Feature
  • March baseline reference added to Monthly Tracker — shows March actuals vs forecast as pre-BTS context
  • Portfolio-level March summary card with actual, forecast, and variance
v1.2 Mar 31, 2026 Feature
  • Monthly Tracker tab — per-subject, per-month breakdown with adjusted targets
  • Upload Data tab — upload actuals and updated forecasts (CSV/XLSX)
  • Performance History tab — aggregate monthly stats and upload log
  • Dynamic target recalculation: as actuals are uploaded, future months auto-adjust to meet BTS goals
v1.1 Mar 31, 2026 Fix
  • Fixed dashboard data not loading (NaN values in JSON causing parse failures)
  • Fixed Supply Problems tab not rendering (duplicate HTML ID collision)
  • Fixed All Subjects showing only 105 of 343 subjects (negative gap filter bug)
  • Updated methodology ownership credits
v1.0 Mar 31, 2026 Feature
  • Initial deployment with BTS forecast analysis (Apr–Oct 2026)
  • Demand adjustment distributes total BTS demand evenly across 7 months
  • Capacity gap analysis with utilization-based problem classification
  • Overview dashboard with summary cards, bar chart, and priority action table
  • All Subjects and Problem Subjects tables with search, sort, and CSV export