Dashboard Forecast Computation

Numerical Gotcha

The netForecast from dashboard_summary_v1 can look enormous because avg_hrs is 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_hrs is per-project, per-workday allocation
  • workdays_in_month excludes weekends and known holidays
  • avg_rate is the project’s billing rate

Andras’s Real Data (illustrative, May 2026)

ProjectStatusavg_hrs/dayRate (HUF)
BESS AcceleratorONGOING812,500
L3 Eng SupportONGOING812,500
GSR ETF DataLayerONGOING0.112,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 / netForecast and 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:

  1. Edit avg_hrs per project to reflect the realistic split (e.g., split 8 hrs across 2 projects = 4 each)
  2. Formula change — cap daily total across all projects at 8 hrs (requires per-day project ratios, not per-project hrs)
  3. 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.