Overview
Billing and Usage are two related, admin-only settings pages:Plan
Your Stripe-backed subscription — payment method, event plan tier, and billing history. Only visible if your agency is on pay-per-event billing.
Usage
A request-volume dashboard broken down by day, client, and origin. Visible to every admin, regardless of billing setup.
Plan
Go to Settings → Plan. This page only appears if your agency has pay-per-event billing enabled; otherwise it redirects to the main Settings page.Payment method
The top card shows the card on file (brand, last four digits, expiration) or, if none is on file, a prompt to add one. Add/Update Payment Method starts a Stripe Checkout session insetup mode — you’re redirected to Stripe to enter card details, then back to this page with a confirmation.
Plan overview
Two cards summarize your current billing period:- Monthly Event Limit — your plan’s event cap, this month’s usage against it, percentage used, and projected overage cost. If you’re at least 3 days into the billing period and your daily usage rate projects past your cap by month end, a warning banner appears showing your projected total and daily rate.
- Pay-Per-Event Billing Rate — your current overage rate (dollars per 25,000 events), current overage event count, and an expandable How overages work explainer (see below).
What counts as an event?
What counts as an event?
Each of the following counts as one event: sending an email, receiving a reply, an API request, and a data enrichment request. For example, sending 10,000 emails and receiving 200 replies is 10,200 events.
Changing plans
Click Update Plan to open the plan tier selector. The dialog shows your last month’s usage with a recommended tier, your projected usage for the current month (once enough data exists), and the full tier list:
Each tier step above 1M adds 500,000 events for $90/month.
- Upgrading
- Downgrading
Moving to a higher tier applies immediately: your Stripe subscription is modified with proration, so you’re charged (or credited) for the partial month right away.
How overage billing works
Overage billing begins once you exceed your monthly plan limit, and is billed in blocks of 25,000 events at your agency’s configured per-block rate (shown as “Pay-Per-Event Billing Rate” on this page; the UI’s example figures below use $5/block, but your actual rate depends on your agreement with RevyOps).- A daily job (03:00 UTC) counts your agency’s total requests for the current calendar month directly from the request log warehouse, and compares that count against your monthly cap.
- If the overage has crossed into a new 25,000-event block since the last run, an invoice is created and finalized in Stripe for just the new block(s) — not the whole month’s overage again. This is tracked per-agency, per-billing-period, so re-running the job doesn’t double-bill.
- If a block isn’t fully used in one day, the remaining events roll over to the next day within the same billing period. Unused overage events do not carry into the next billing cycle.
Billing history
The table at the bottom of the page lists your last 12 billing periods:Usage
Go to Settings → Usage. Unlike Plan, this page is visible to every admin regardless of billing configuration.Event sources
A legend at the top explains the three request origins tracked throughout the page:Summary and chart
Three tiles show request totals for Today, This Month, and Last Month. Below them, a time-series chart plots total requests per day across the currently selected date range.Table and filters
The table lists one row per day/client/origin combination, with columns for Date, Client, Origin, and Requests. It’s paginated 25 rows at a time. Filter it with:- Day range — 7 / 15 / 30 / 60 days. A range is disabled if you don’t have that much usage history yet; the page auto-selects the largest available range on load.
- Client search — filters by client name (case-insensitive, substring match).
- Origin — filter to a single origin (Dashboard, Public API, or Internal).
Data freshness
Usage data is synced from the request log warehouse into a Firestore cache once per day (a 24-hour cache TTL) rather than queried live on every page load. A Last updated timestamp under the summary tiles shows when that sync last ran.Usage vs. Plan: why the numbers can differ
Both pages ultimately count requests against your agency, but they’re built on different pipelines and can diverge:- Plan’s overage billing counts every request logged for your agency in the current calendar month, queried directly from the request log warehouse at billing time.
- Usage (and Plan’s own usage tiles) read from the Firestore
daily_usagecache, which is built by a daily sync that drops any request with noclient_id, or aclient_idthat isn’t one of the agency’s currently active clients.
Access & Permissions
Both pages are restricted to users with theadmin role. Plan is additionally gated by an agency-level pay-per-event billing entitlement — agencies not on that billing model are redirected away from /dashboard/billing and don’t see Plan in the Settings sidebar. Usage has no such gate; any admin can see it.