Save, load, compare, and delete named budget scenarios for Wes projections
Manages named budget scenarios for the Wes dashboard budget projection system. Scenarios are snapshots of fpa_yield_assumptions data (unit forecasts, WIP units, yield rates) that can be saved, loaded, compared side-by-side, and shared across users. This enables what-if analysis — e.g., "optimistic Q2" vs "conservative Q2" scenarios.
save, load, list, compare, delete."optimistic-q2-2026", "baseline-fy25").tablecsvlib/budget/scenarios.ts::manageScenarios(action, options) to orchestratefpa_yield_assumptions rows (filtered by user + fiscal year) into a named scenario record, stored as JSON blob with metadata (name, created_at, user_id, row_count)fpa_yield_assumptions rows for the target user + fiscal year with the snapshot data. Creates a backup of current data first.lib/board/index.ts::logActivity()list:
| Name | FY | Created | Rows | User |
|------|----|---------|------|------|
| baseline-fy25 | FY25 | 2026-01-15 | 1,264 | Carlos |
| optimistic-q2 | FY26 | 2026-02-20 | 1,310 | Carlos |
compare:
Comparing: baseline-fy25 vs optimistic-q2
| Program | Baseline Units | Optimistic Units | Delta | Delta % |
|---------|---------------|-----------------|-------|---------|
| BRTON-WM | 42,000 | 48,500 | +6,500 | ↑15.5% |
| FORTX-POOL | 18,200 | 16,800 | -1,400 | ↓-7.7% |
| Total | 7,352,022 | 7,891,450 | +539,428 | ↑7.3% |
save: Saved scenario "optimistic-q2" (1,310 rows, FY26)
load: Loaded scenario "baseline-fy25" → overwrote 1,264 rows (backup: auto-backup-20260301T100000)
# Save current assumptions as a named scenario
optimal manage-scenarios save --name optimistic-q2 --fiscal-year FY26
# Load a saved scenario
optimal manage-scenarios load --name baseline-fy25
# List all scenarios
optimal manage-scenarios list
# Compare two scenarios
optimal manage-scenarios compare --name baseline-fy25 --compare-with optimistic-q2
# Delete a scenario
optimal manage-scenarios delete --name old-test-scenario
Requires: RETURNPRO_SUPABASE_URL, RETURNPRO_SUPABASE_SERVICE_KEY
fpa_yield_assumptions — read/write unit forecasts and yield data. Unique key: (user_id, fiscal_year, month, master_program_id)wes_imports — baseline reference for sync validationbudget_scenarios table or JSON blobs in an existing metadata tablewip_units INTEGER. Unique key is (user_id, fiscal_year, month, master_program_id).auto-backup-{timestamp} before overwriting.Implementation status: Not yet implemented. Spec only. Lib function lib/budget/scenarios.ts to be built on top of existing lib/budget/projections.ts in wes-dashboard.