Billing5 min read
What counts toward your quota
Your quota is measured in pageviews, and nothing else. Every other thing Mrkr can ingest is stored, charted, and queryable without touching your bill.
Until 2 September 2026 the meter summed pageviews plus a second event_count counter, which meant scroll thresholds, engaged-time reports and your own track() calls all consumed quota. They no longer do. If you sized a plan under the old rules, your usage number is now smaller than it was for identical traffic.
The full table
| What Mrkr ingests | Counts toward quota? |
|---|---|
Pageview (including SPA route changes and mrkr.pageview()) | Yes |
Custom event (mrkr.track() or data-mrkr-event) | No |
Goal / signup conversion event | No |
Revenue / purchase event (mrkr.revenue()) | No |
| Outbound link click | No |
| File download click | No |
| Scroll-depth milestone | No |
| Engaged time and page duration | No |
| Web vital (LCP, CLS, INP, FCP, TTFB) | No |
| Session replay recording | No |
| AI crawler hit reported to the crawler endpoint | No |
Why only pageviews
Two reasons, and the first is comparability. Every analytics tool in this category prices per pageview, so "100K events" read like "100K pageviews" to anyone comparing plans while actually being worth a fraction of that. The old meter measured a billable unit worth roughly two pageviews on average, and over four on the busiest site measured, almost all of it automatic capture the customer never asked for.
The second is that it should agree with your dashboard. Pageviews are the counter whose rollup total matches the authoritative per-session record almost exactly, so the number on your invoice is the number on your Overview page rather than an internal counter you cannot see.
The practical consequence is that instrumenting your product is free. Adding a tenth track() call, marking three more conversions, or turning on session replay changes nothing about what you pay.
Session replay is free too
Replay recordings are written straight to object storage and a dedicated replay index table: the replay ingest endpoint never touches the rollup table that billing sums, so recordings cannot appear in your pageview count even indirectly. Recording a session costs nothing beyond the pageviews that session already generated. Retention on recordings is capped at 90 days on every plan; see Data and exports.
What never counts because it's never stored
Three categories of traffic are discarded before they reach billing, storage, or any rollup at all:
- Bot-filtered requests: anything the layered bot gate catches (see Excluding traffic) is dropped before any write, aside from an aggregate bot-blocked counter.
- Rate-limited requests: beyond the per-IP rate limit, extra requests in the same minute are dropped.
- Excluded-path pageviews: a pageview matching one of your excluded-path patterns is dropped before it's stored, and before it's counted.
A fourth category is stored-but-blocked rather than discarded, and it applies only to workspaces grandfathered onto the retired free plan: once such a workspace is over its hard allowance, new events return success to the tracker (so it doesn't retry) but are silently not recorded. They were never billed, because they were never written. Every currently-offered plan meters overage instead of blocking.