Metrics / routstr / cumulative_revenue

cumulative_revenue

Cumulative observed Routstr revenue in millisats - the running total of everything included providers have reported earning, the Overview tab's 'Cumulative observed revenue' line; the final row equals the page's all-time revenue headline. A running total, so values are NOT additive across rows.

unit

msats

grain

day (UTC)

series

sparse, full history

key

routstr.cumulative_revenue@day

Parameters

paramaccepted values
grainday - default day (omit to get the default)
fromoptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for the series start
tooptional inclusive ISO UTC calendar day (YYYY-MM-DD); omit for today UTC (that day still in progress)
formatcsv | markdown

Query it

MCP tool call against https://dev.nostrolo.gy/mcp (connect your agent):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "cumulative_revenue",
    "domain": "routstr",
    "grain": "day"
  }
}

Windowed (inclusive UTC days; both optional):

{
  "name": "nostrology_query_metric",
  "arguments": {
    "metric": "cumulative_revenue",
    "domain": "routstr",
    "grain": "day",
    "from": "2026-07-01",
    "to": "2026-07-31"
  }
}

Response: a plain-text envelope (window, freshness, column contract, this page's caveats) followed by the data table (csv, or format: "markdown") at day grain.

Response columns

nametypedescription
utc_daydateUTC calendar day (weekly-era buckets are posted at their week's END day)
cumulative_msatsintegerrunning total of reported revenue up to and including that day, integer millisats

What is counted

Network aggregates cover INCLUDED providers only: test/staging-marked nodes and private-endpoint-only nodes are excluded (still listed, with the reason, by routstr.provider_leaderboard and the routstr.provider_profile record), and kind-38421 (routstr-provider-announcements) squatters are never providers.

Caveats

  • Every usage number is SELF-REPORTED by each provider's own node in kind-38422 (routstr-analytics-snapshots) events and is unverifiable by construction (RIP-01 payments travel as Cashu tokens in HTTP headers, invisible on Nostr): a node can overstate, understate or stay silent, so read these as what the network says about itself.
  • This is the one series that includes the WEEKLY pre-daily era (back to 2025-08-13 as of 2026-08-24): weekly buckets are added at their week's end day, daily buckets at their day, so it is not derivable from routstr.network_activity alone.
  • Daily figures come from a ledger reconstructed by merging the UTC-grid buckets of EVERY archived snapshot's trailing windows (full-coverage-only, newest-wins); observed history is a FLOOR - a day a node later omits is kept, a gap longer than the windows' reach stays a gap - and today is never a ledger day.
  • Revenue is integer MILLI-satoshis (divide by 1000 for sats; sum msats first, convert once).
  • Series is sparse: only days on which the total moved are present; a flat stretch means no provider reported activity, not necessarily that none happened.

Freshness in every response is data-derived: the newest routstr refresh's generation instant (nightly 02:45 UTC; the newest ledger day is the previous UTC day).