Outcome Engine
The Outcome Engine page in web/outcome.html now calls:
GET /api/outcome?q=<query>
The API uses Supabase project data when configured.
Current Inputs
The current slice uses:
- Client and project names.
- Project descriptor/status.
- Start and end dates.
hours_logged.hours_30d.project_category.budget_hoursandbudget_amount.actual_revenueandactual_cost.
Current Outputs
The response includes:
typical_hoursrange_hoursduration_weekscategorybudget_variance_hoursfinancials.average_margin_percentconfidencecomparablesscope_signals.completed_after_hoursscope_signals.recent_burn_hours
If there are no projects with mapped Toggl hours, the API returns no_data: true and the UI shows an insufficient-data state rather than presenting fictional fallback estimates as live.
POST /api/estimate-cases persists an estimate snapshot so proposed scopes can later be compared with actual hours, margin, duration, and scope-change events.
Next Metrics
The next outcome-pricing slice should add:
- Automated SOW extraction into structured
budget_lines. - Estimate variance by project category and service template.
- Unscoped meeting asks from Fathom sources/promises.
- Completed-project after-hours burn.
- Scope-change causes from
scope_events.