Listing Analytics
Staff-only Analytics tab on a register listing — impressions, revenue, registrations, refunds, and per-option breakdowns.
This guide is for organization staff. Analytics live on the staff listing detail view in the Register app.
Where it lives
https://register.paddlesup.io/listings/<id> → Analytics tabThe Analytics tab is staff-only — it does not appear on the public
/l/<org>/<event> landing.
What you'll see
| Metric | Source |
|---|---|
| Impressions | PostHog — counted from the register_listing_impression event fired on every public listing page view |
| Expected revenue | Sum of priced options × confirmed registrations (gross, before refunds) |
| Collected revenue | Sum of successful Stripe charges, minus refunds |
| Registrations | Total confirmed registrations on the listing |
| Cancellations | Total cancelled registrations (soft-deleted rows preserved — see Registrations) |
| Refunds | Total refund amount across all registrations |
A per-option breakdown repeats the same metrics for each option so staff can see which divisions are converting and which are bleeding cancellations.
How impressions are counted
Every public visit to https://register.paddlesup.io/l/<org>/<event> fires a
register_listing_impression PostHog event with listing and org metadata.
Impressions reflect public landing page views — they do not include staff
visits to /listings/<id>.
Impressions require the PostHog query credentials to be configured. If your environment is missing them, the Impressions card surfaces an empty state rather than failing the whole tab.
Reconciling Analytics with Stripe
- Expected vs collected — a gap typically means pending payments, registrations created without a successful charge, or refunds that haven't yet been deducted (refund state lags Stripe webhooks by 1–5 seconds; see Refunds and cancellations).
- Refund totals include both staff-issued refunds and any issued directly from your Stripe Dashboard.
What's not in Analytics today
- Funnel (impression → registration → paid) is not surfaced as a separate step today; you can derive it by dividing Registrations by Impressions per option.
- Time-series charts are not part of v1 — totals only.
- Notifications / alerts are not wired up. Use Analytics as a manual reporting surface.