Average monthly revenue per client (ARPA) for Direct/SMB customers versus Partner/accountancy practice customers, for the most recent full month
Basis: Average monthly revenue per paying customer account: Prepare MRR for Direct/SMB customers and Prepar, month-end snapshot for the most recent full month, 31 Aug 2026. Governed filters applied. Every row's «Customers Missing Revenue» came back as 0. That is usually a wrong segment filter rather than a real zero.
Per-step detail — each LLM call, each Omni request, each rejected draft —
is traced to stdout only and is not stored, so it cannot be shown here.
Query attempts counts run_query executions, not model turns.
WITH booking_snapshot_grain AS (
SELECT
omni_dbt__eds_calendar_day."DATE_DAY" AS "Snapshot Date",
omni_dbt__eds_all_accounts."DERIVED_ACCOUNT_ID" AS "Customer Account ID",
omni_dbt__eds_all_accounts."FINANCE_ACCOUNT_TYPE" AS "Finance Account Type",
omni_dbt__eds_bookings."PRIMARY_KEY" AS "Booking Primary Key",
MAX(omni_dbt__eds_bookings."HAS_PAID_SUBSCRIPTION") AS "Has Paid Subscription",
MAX(CASE
WHEN omni_dbt__eds_all_accounts."FINANCE_ACCOUNT_TYPE" = 'Corporate'
THEN omni_dbt__eds_bookings."PREPARE_BOOKINGS_MRR"
WHEN omni_dbt__eds_all_accounts."FINANCE_ACCOUNT_TYPE" = 'Accountant'
THEN omni_dbt__eds_bookings."PREPARE_BOOKINGS_MONTHLY_ACV"
ELSE NULL
END) AS "Monthly Revenue"
FROM PROD."EDS_ALL_ACCOUNTS" AS omni_dbt__eds_all_accounts
INNER JOIN PROD."EDS_CALENDAR_DAY" AS omni_dbt__eds_calendar_day
ON omni_dbt__eds_calendar_day."DATE_DAY" >= omni_dbt__eds_all_accounts."VALID_FROM" AND omni_dbt__eds_calendar_day."DATE_DAY" <= omni_dbt__eds_all_accounts."VALID_TO"
LEFT JOIN PROD."EDS_BOOKINGS" AS omni_dbt__eds_bookings
ON omni_dbt__eds_all_accounts."DERIVED_ACCOUNT_ID" = omni_dbt__eds_bookings."DERIVED_ACCOUNT_ID" AND omni_dbt__eds_calendar_day."DATE_DAY" >= omni_dbt__eds_bookings."VALID_FROM" AND omni_dbt__eds_calendar_day."DATE_DAY" <= omni_dbt__eds_bookings."VALID_TO"
WHERE omni_dbt__eds_calendar_day."DATE_DAY" = DATE_FROM_PARTS(2026, 8, 31)
AND omni_dbt__eds_calendar_day."DATE_DAY" = DATE_TRUNC('month', omni_dbt__eds_calendar_day."DATE_DAY" + INTERVAL '1 month') - INTERVAL '1 day'
AND omni_dbt__eds_all_accounts."FINANCE_ACCOUNT_TYPE" IN ('Corporate', 'Accountant')
AND COALESCE(omni_dbt__eds_all_accounts."IS_DEXT_DEMO", FALSE) = FALSE
AND omni_dbt__eds_all_accounts."FRANCHISE_NAME" IS NULL
AND (omni_dbt__eds_all_accounts."SALESFORCE_ACCOUNT_TYPE" != 'Reseller' OR omni_dbt__eds_all_accounts."SALESFORCE_ACCOUNT_TYPE" IS NULL)
GROUP BY
omni_dbt__eds_calendar_day."DATE_DAY",
omni_dbt__eds_all_accounts."DERIVED_ACCOUNT_ID",
omni_dbt__eds_all_accounts."FINANCE_ACCOUNT_TYPE",
omni_dbt__eds_bookings."PRIMARY_KEY"
),
customer_snapshot AS (
SELECT
"Finance Account Type" AS "Finance Account Type",
"Customer Account ID" AS "Customer Account ID",
SUM("Monthly Revenue") AS "Monthly Revenue",
COUNT(DISTINCT "Booking Primary Key") AS "Booking Records"
FROM booking_snapshot_grain
WHERE "Has Paid Subscription" = TRUE
GROUP BY
"Finance Account Type",
"Customer Account ID"
)
SELECT
CASE
WHEN "Finance Account Type" = 'Corporate' THEN 'Direct / SMB customers'
WHEN "Finance Account Type" = 'Accountant' THEN 'Partner / accountancy practice customers'
END AS "Customer Segment",
SUM("Monthly Revenue") AS "Total Monthly Revenue",
COUNT(DISTINCT CASE WHEN "Monthly Revenue" IS NOT NULL THEN "Customer Account ID" END) AS "Customers Used in ARPA",
COUNT(DISTINCT CASE WHEN "Monthly Revenue" IS NULL THEN "Customer Account ID" END) AS "Customers Missing Revenue",
SUM("Monthly Revenue") / NULLIF(COUNT(DISTINCT CASE WHEN "Monthly Revenue" IS NOT NULL THEN "Customer Account ID" END), 0) AS "Average Monthly Revenue per Customer",
COUNT(DISTINCT CASE WHEN "Booking Records" > 1 THEN "Customer Account ID" END) AS "Customers with Multiple Booking Records"
FROM customer_snapshot
GROUP BY "Finance Account Type"
ORDER BY "Customer Segment"
LIMIT 10
No feedback linked to this request.
Cost is the LLM completion spend LiteLLM priced for each call, summed per
request.
Chandler is running on the Codex CLI, which draws ChatGPT plan quota
rather than per-token API billing, so this figure is not money paid —
it is what the same traffic would have cost on the API, priced from the
token counts Codex reports. Read it as the size of the bill avoided.
Two known limits: embedding spend is not recorded, so
retrieval and matching cost is missing, and because the figure is one sum
per request it cannot be split by model within a request — a
request's classifier and agent calls can use different models while
llm_model holds only one name.
Only authenticated calls are logged, USAGE_LOG_ENABLED can
switch logging off, and log writes are fail-soft — this is not a complete
record of traffic. Questions are grouped into sessions: a session is
exact when the caller echoed its id back to us and otherwise inferred from
a 30-minute gap in that user’s activity, so a grouping is only as
good as the source shown on the session itself. A call with no
attributable user gets no session at all; those questions are listed
separately rather than dropped.