We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Aurora Meter Pro · live preview
Every Pro screen, running on sample data.
The hosted dashboard, Stripe billing sync, quota alerts, rollups, reconciliation and the LiveView components, all ticking below exactly as they do in a Pro install.
Live · simulated · tick 0
Nothing here is real: a seeded simulation of a SaaS with 128 customers so you can see what ships.
01 · Hosted real-time dashboards
The hosted dashboard
Mounted inside your own Phoenix app at a route you choose. Every tile below updates as meter events arrive, with no polling and no separate analytics database.
Usage & billing
Scale plan · billing period Sep 1, 2026 to Sep 30, 2026
Active subscriptions
128
▲ +6
MRR
$19,072
▲ +11%
Metered revenue
$4,210
▲ +23%
Events reported
1,240,318
this period
Metered usage by month
AI generations (thousands)
Included allowances
org_acme
Top customers
AI generations, this period
| Customer | Plan | Usage | Status |
|---|---|---|---|
| Acme Corp | Scale |
|
overage |
| Umbrella | Scale |
|
near limit |
| Stark Industries | Scale |
|
healthy |
| Initech | Pro |
|
healthy |
| Globex | Pro |
|
healthy |
| Wayne Enterprises | Pro |
|
healthy |
| Hooli | Free |
|
near limit |
| Vandelay | Free |
|
healthy |
Live meter events
streaming| Time | Customer | Feature | Qty | Stripe |
|---|---|---|---|---|
| 12:04:28 | Acme Corp | ai_generations | +3 | reported ✓ |
| 12:04:26 | Globex | api_calls | +128 | reported ✓ |
| 12:04:24 | Initech | exports | +1 | reported ✓ |
| 12:04:21 | Umbrella | ai_generations | +7 | reported ✓ |
| 12:04:18 | Hooli | api_calls | +64 | reported ✓ |
| 12:04:16 | Stark Industries | ai_generations | +2 | reported ✓ |
02 · Stripe Checkout + webhook sync
Stripe billing sync
Checkout creates the subscription, a self-contained HMAC webhook verifier keeps the local copy in lockstep, and metered overage is reported to Stripe Billing Meters so it lands on the next invoice by itself.
Upcoming invoice
The overage line follows the meter above: every AI generation past the included 10,000 is a Stripe meter event.
Webhook timeline
- 12:04:29 meter_event reported · mtr_evt_k82jd1 verified ✓
- 12:04:22 invoice.paid · in_1q9x2m $173.00 verified ✓
- 12:04:10 customer.subscription.updated · sub_9dk2la verified ✓
- 12:03:47 meter_event reported · mtr_evt_a01pz7 verified ✓
- 12:02:54 checkout.session.completed · cs_7hd0ql $49.00 verified ✓
Signatures are checked with the webhook secret, events are idempotent by id, and a replayed delivery is a no-op.
03 · Quota alerts
Quota alerts
Threshold alerts fire once per customer, per feature, per period. Pro deduplicates the crossing, so a customer bouncing around 80% gets one email, not forty.
- 80% Email the customer
- 95% Show the upgrade prompt
- 100% Throttle on hard caps, bill overage on metered plans
Alerts feed
Acme Corp passed 100% of AI generations
12:03:5810,850 / 10,000 this period · Scale plan
Overage billed to StripeHooli passed 95% of AI generations
12:01:1296 / 100 this period · Free plan
Upgrade prompt shownUmbrella passed 80% of AI generations
11:58:4041,300 / 50,000 this period · Scale plan
Email sent04 · Historical rollups + CSV export
Historical rollups and CSV export
Live counters are ephemeral by design. Pro persists month and day rollups per customer and
feature, so finance gets a table and you get a one-click usage.csv.
Rollups · org_acme · ai_generations
By month
| Sep 2026 | 120,318 |
| Aug 2026 | 94,000 |
| Jul 2026 | 78,000 |
| Jun 2026 | 61,000 |
| May 2026 | 55,000 |
| Apr 2026 | 42,000 |
By day
| 2026-09-08 | 2,714 |
| 2026-09-07 | 4,050 |
| 2026-09-06 | 4,410 |
| 2026-09-05 | 4,120 |
| 2026-09-04 | 3,980 |
usage.csv
date,org,feature,units
2026-09-04,org_acme,ai_generations,3980
2026-09-05,org_acme,ai_generations,4120
2026-09-06,org_acme,ai_generations,4410
2026-09-07,org_acme,ai_generations,4050
2026-09-08,org_acme,ai_generations,2714
Filter by customer, feature and date range; the export streams straight from the rollup table, so it is the same numbers as the invoice.
05 · Reconciliation
Reconciliation
A background pass compares local counters against what Stripe has and repairs any drift, so invoices never quietly diverge from reality.
128 subscriptions · 1,240,318 events checked · 0 repaired
- Schedule
- hourly
- Drift
- 0 events
- On mismatch
- repair + telemetry
06 · Subscription-aligned billing periods
Subscription-aligned billing periods
Allowances reset on each customer's Stripe billing anchor, not on the first of the month. The period you meter is the period you invoice.
- Anchor
- stripe current_period_start
- Resets in
- 22 days
- Mid-cycle upgrade
- prorated, allowance widens now
- Free plans
- calendar month fallback
07 · LiveView components
LiveView components
Drop a usage panel into your own settings page. The components subscribe over PubSub and update in place as the counters move, the same live values the dashboard shows.
# the whole panel
<AuroraMeter.Components.usage_panel org={@org} title="Usage this period">
<:meter feature=:ai_generations label="AI generations" />
<:meter feature=:api_calls label="API calls" />
<:meter feature=:seats label="Seats" />
<:meter feature=:exports label="Exports" />
</AuroraMeter.Components.usage_panel>
# or one bar at a time
<AuroraMeter.Components.usage_bar org={@org} feature=:ai_generations />
# live values arrive over PubSub
def mount(_params, _session, socket) do
AuroraMeter.subscribe(socket.assigns.org)
{:ok, socket}
end
Usage this period
org_acme · plan :scale
rendered by usage_panel · updating live
Everything in Pro
One licence per application, every screen above included.
$99 a month per application, with a 14-day free trial. The metering core stays free and MIT.
- Stripe Checkout + webhook sync
- Metered usage → Stripe Billing Meters
- Subscription-aligned billing periods
- Historical rollups + CSV export
- Hosted real-time dashboards
- Quota alerts + reconciliation
- Email support, 2 business days