Analytics
SQL-backed conversion, churn, MRR, LTV, forecast.
/conversion, /churn and /volume take optional ?from=ISO8601&to=ISO8601 query params.
Conversion
Daily buckets:
rate = confirmed / created per UTC day.
Churn
Monthly churn rate over the last 12 months. Numerator: subs that flipped to cancelled or lapsed in that month. Denominator: total subs created in that month.
Amounts per currency
Every money figure is a CurrencyAmounts object with one base-unit string per payment
currency. Both currencies are always present; a currency with no activity is "0".
USDC and EURC are never added together, and Strimz does not convert between them.
The schemas and types for every response below ship in @strimz/shared-types
(statsSummarySchema, statsVolumeSchema, statsMrrSchema, statsLtvSchema,
statsForecastSchema).
Summary
Dashboard totals for the key's mode, computed on the server over every row:
volumecounts confirmed inbound transactions (one-off payments, subscription charges, invoice and storefront payments; refunds excluded), timed by block. The 7 and 30 day windows roll back from now.invoices.outstandingissentplusoverdue;paidLast30dispaidwith a paid time in the last 30 days.- Every
byStatuslists every status, zero included. customers.totalis not split by mode; customers are shared by both modes.
Volume
Daily confirmed inbound volume, one row per UTC day and currency that had volume, ordered
by day then USDC before EURC. from and to are ISO timestamps; they default to the
last 30 days and may be at most 366 days apart. Empty days are omitted.
MRR
Only active subscriptions count. Each subscription is interval-normalised on its own:
daily × 30, weekly × 30/7, monthly, quarterly / 3, yearly / 12, then summed
within its currency. Returns gross MRR; for net subtract your tier's per-transaction fee.
LTV
Top customers by lifetime spend in one currency. currency is required (USDC or
EURC); without it the API answers 400 invalid_request. Spend is the gross amount of
confirmed inbound transactions. A payment is attributed to the customer on the
transaction, or else to the customer of its payment session or subscription.
Pass nextCursor back as cursor for the next page. limit is 1 to 100, default 25.
Forecast
One linear regression per currency over that currency's daily net revenue for the last
90 days. Days with no revenue count as zero, from the first day with revenue up to
yesterday. nextN is the sum of the projected daily values over the next N days, never
below zero.
Confidence per currency: low below 30 days with revenue, medium from 30, high from 60. Fewer than 7 days with revenue gives low and zero projections.
last90DayRevenue is always the real 90-day total.

