Skip to main content

Cross-FSM unified KPI: jobs booked, jobs completed, conversion rate, revenue collected from paid invoices in the window, and average paid invoice value. Read revenue_source before quoting money (paid_invoices | accounting_scope_missing | unavailable); revenue is null when unknown, never zero. When counts_truncated is true the window held more jobs than one scan pass covers, so jobs_completed and conversion_rate are null rather than computed off a partial set. Scope: read.

GET 

/api/v1/kpi

Cross-FSM unified KPI: jobs booked, jobs completed, conversion rate, revenue collected from paid invoices in the window, and average paid invoice value. Read revenue_source before quoting money (paid_invoices | accounting_scope_missing | unavailable); revenue is null when unknown, never zero. When counts_truncated is true the window held more jobs than one scan pass covers, so jobs_completed and conversion_rate are null rather than computed off a partial set. Scope: read.

Request

Responses

KPI payload: revenue (number|null), jobs_booked, jobs_completed, conversion_rate (number|null), avg_job_value (number|null), source (servicetitan|housecall_pro|jobber|none). Tenants with no FSM connected get zeros with source "none".