Dashboard Forecast Computation
Numerical Gotcha
The
netForecastfromdashboard_summary_v1can look enormous becauseavg_hrsis interpreted as per-workday allocation per project. With multiple parallel ONGOING projects, daily allocation can sum to >8 hrs, overstating realistic monthly billable. Mobile + desktop hero now display the projection as a standalone number with a clear caption, NOT as a misleading ratio.
Source
dashboard_summary_v1 RPC (migration 007) computes:
netForecast = sum_over(ONGOING|MAINTAIN projects)(p.avg_hrs × workdays_in_month × avg_rate)
+ on-call estimate
Where:
avg_hrsis per-project, per-workday allocationworkdays_in_monthexcludes weekends and known holidaysavg_rateis the project’s billing rate
Andras’s Real Data (illustrative, May 2026)
| Project | Status | avg_hrs/day | Rate (HUF) |
|---|---|---|---|
| BESS Accelerator | ONGOING | 8 | 12,500 |
| L3 Eng Support | ONGOING | 8 | 12,500 |
| GSR ETF DataLayer | ONGOING | 0.1 | 12,500 |
Workdays in May 2026 = 19 (after 2 holidays). Total = (8 + 8 + 0.1) × 19 × 12,500 ≈ 3,823,750 HUF/month. The 16.1 hrs/day “split” is unrealistic in practice.
The Bug That Was Fixed
Pre-fix mobile ForecastHero
The mobile ForecastHero originally computed
weeklyRevenue / netForecastand displayed it as a “27% of forecast” progress ratio. Apples-to-oranges — weekly revenue compared against monthly forecast. The 27% looked off because the temporal scopes were mixed.
First fix (commit 1697360): switched to netThisMonth / netForecast with label “This month”. Same scope.
Final fix (commit 6f1fdb5): mobile ForecastHero rewritten to mirror the desktop dashboard hero exactly — no invented ratios. Now shows:
- Eyebrow
NET FORECAST(i18n) - Big number:
netForecast - Caption:
avg_hrs × workdays × rate - 2×2 stat strip:
- This week + delta
- This month + delta
- Previous month
- Next month estimate
Future Fix Paths
The forecast number is technically correct given the inputs but isn’t a realistic billable estimate. Options:
- Edit
avg_hrsper project to reflect the realistic split (e.g., split 8 hrs across 2 projects = 4 each) - Formula change — cap daily total across all projects at 8 hrs (requires per-day project ratios, not per-project hrs)
- Project-settings UI that surfaces the calculation and lets the user dial it in
Decision
No formula change made this session. The display now matches desktop and labels the inputs clearly so the user can self-correct via project
avg_hrs.
Related
- mobile-native-feel — Mobile dashboard surface (Home tab)
- budget — Adjacent revenue/budget surfaces
- tech-debt — Captures the formula limitation as a future item
- levandor-crm — Project overview