Reading Zellify’s dashboard

Home: headline metrics and MRR

A Reporting window

Complete Fastly Home dashboard capture S02, with Reporting window outlined as A
S02-A

The reporting window controls the comparison

Last 30 days selects the period being reported. The selected dates and daily buckets use the organization timezone. The trend badges compare the selected period with the immediately preceding period of the same length.

Trend = 100 × (current − previous) / previous

B Revenue

Complete Fastly Home dashboard capture S02, with Revenue outlined as B
S02-B

How revenue is calculated

Revenue adds the provider totals recorded for your Zellify funnels in the selected period. A transaction is included once it has been completed, using its recorded completion date. Refunds are not subtracted, and a recorded total can differ from the cash collected from the buyer.

These payments can be:

  • One-time purchases and upsells.
  • Initial subscription payments.
  • Paid trials and payments after a free trial.
  • Subscription renewals.
  • Charges from subscription schedule phases, as their invoices are paid.
  • Charges from subscription changes that produce a paid invoice.

Currency: payment amounts are stored in the currency the customer paid, in that currency’s smallest units. They are converted to USD when the report is queried, using the daily exchange rate for the recorded UTC completion date. The rate-refresh job runs every six hours; the rates themselves are daily.

Revenue = sum of included recorded totals converted to USD

C Conversion rate and conversions

Complete Fastly Home dashboard capture S02, with Conversion rate and conversions outlined as C
S02-C

What counts as a conversion

Conversions count completed, funnel-originated payments, deduplicated by session_id within each day. Two payments from the same session on the same day count as one conversion. Automatic subscription renewals do not add conversions.

A refunded payment is still a completed one. Refunding does not remove the conversion, the same way it does not subtract from Revenue.

The Conversions headline is the sum of the daily conversion counts. A session can count again if it completes another funnel-originated payment on a different day.

Daily and period conversion rates

Each point on the chart shows that day’s conversion rate. The headline shows total conversions divided by total visits across the selected period. This gives days with more visits more weight.

Daily rate = daily conversions ÷ daily visits × 100
Period rate = total conversions ÷ total visits × 100

Example: a two-day reporting period.

DayConversionsVisitsDaily rate
Day 111010%
Day 293030%

The period’s conversion rate is (1 + 9) ÷ (10 + 30) × 100 = 25%. Giving both days equal weight would produce 20%.

One session can visit on Monday, then convert on Tuesday and Wednesday. Across those three days, the period has two conversions and one visit, so the rate is 200%. If a selected period has zero visits, the UI shows 0% even when it has conversions.

D MRR

Complete Fastly Home dashboard capture S02, with MRR outlined as D
S02-D

What MRR measures

MRR (monthly recurring revenue) is what all active subscriptions would bring in per month if nothing changed. Each subscription is priced from its product record in Tinybird, which stores the recurring price already converted to a monthly amount, times the subscription's quantity.

Each date on the chart has its own MRR value. The headline shows the value for the last day of the selected period.

Turn each recurring price into a monthly amount

Recurring priceCalculationMonthly amount
$12 every month$12 ÷ 1$12
$120 every year$120 ÷ 12$10
$30 every 3 months$30 ÷ 3$10
$12 every week$12 × 52 ÷ 12$52

One-time products do not contribute to MRR.

Where the saved price comes from

Payment and subscription events supply product details. Zellify saves the price, currency, and billing period in Tinybird, the analytics database. Successful-payment, failed-payment, and subscription events can update this data; refunds and voids do not update it.

Within an organization, the payment provider, product ID, and price ID identify the shared product-price record. Subscriptions referring to that record use the same saved price. There is not a separate product-price record for each customer.

The latest record written by the worker is used. An older event processed later can therefore replace a price saved earlier. For Solidgate, the mapping uses the product ID in place of a distinct price ID. A $15 monthly product can therefore be replaced by a $6 partial-capture or failed-order write using that identity. Stripe and Paddle can likewise save a catalog price instead of the localized price charged, so MRR can be wrong even when the transaction total is right.

E Daily MRR chart

Complete Fastly Home dashboard capture S02, with Daily MRR chart outlined as E
S02-E

The solid line shows MRR for each day in the selected period. The dashed line overlays the same day position from the immediately preceding equal-length period.

Home: breakdowns, subscribers and visits

A Product-price revenue

Complete Fastly Home dashboard capture S01, with Product-price revenue outlined as A
S01-A

Revenue by product and price

Product revenue is Revenue split by product and price. Each row adds the payment lines for one product at one price in the selected period, converted to USD.

One-time payments, upsells, subscription starts, and renewals can all contribute. Refunded sales remain included, and test payments are included too.

B Funnel breakdown

Complete Fastly Home dashboard capture S01, with Funnel breakdown outlined as B
S01-B

Visitors and conversion rate

The Visitors column counts recorded sessions in each funnel that started during the selected period. Reopening the funnel in the same browser does not add a visitor. Opening a different funnel does, because each funnel keeps its own session.

A session is a cookie. When someone opens a funnel, the server issues a session ID and the page stores it in a cookie named _umc_<funnel id> on the address the funnel was opened from. Nothing else remembers the person: no localStorage, no account, no fingerprint. On the next visit the server reads that cookie and hands the same session back.

So "one visitor" means one browser on one device at one address. The same person on their phone and their laptop is two visitors. A different browser, a private window, or cleared cookies is a new visitor. The cookie lasts 400 days, so someone who comes back months later is still the same visitor, and because a visit is dated to the day the session started, that return does not add a visit to the current period at all.

The cookie name carries the funnel ID, so the same browser gets a separate session for every funnel it opens.

% Conversion is the number of sessions with included payments divided by that row's visitors.

A payment counts here under the same rules as the Conversions headline: completed (a refund does not undo it), a web purchase rather than an automatic renewal, dated inside the selected period, attributed to this funnel, and carrying a session ID. It is read from provider notifications; no browser event is needed.

The provider quirks from the Conversions section apply here too: a Paddle card update or a recovered Solidgate renewal can count, and a free trial counts on Stripe and Paddle but not on Inflow or Solidgate.

These three cards can show numbers up to five minutes old. The server reuses its last result for that long, and reloading the page does not bypass it.

C Link breakdown

Complete Fastly Home dashboard capture S01, with Link breakdown outlined as C
S01-C

Visitors and conversion rate

The Visitors column counts sessions that started in the selected period, whose attributed link is this one, and whose funnel is one the link currently points to. A session gets its link from the link it arrived through, and normally keeps it. Every session is counted under exactly one link, or under none.

% Conversion is the number of sessions with included payments credited to this link divided by that row's visitors.

D Active subscribers

Complete Fastly Home dashboard capture S01, with Active subscribers outlined as D
S01-D

How subscribers are counted

Total Active Subscribers is how many subscriptions were live on each day. A subscription is live from its start through the day it was cancelled, that day included. The number above the chart is the count on the last day of the period.

A subscription is identified by its provider and subscription ID. One customer with two subscriptions counts as two; one subscription with a quantity of five counts as one.

It uses the same subscriptions as MRR, under the same rules, including that a subscription cancelled and later reactivated counts for the gap. Unlike MRR it needs no saved price, so a subscription can be counted here and still be missing from MRR.

E Funnel visits

Complete Fastly Home dashboard capture S01, with Funnel visits outlined as E
S01-E

What a funnel visit counts

Total Funnel Visits is how many sessions started on each day across the selected funnels, added up. A session starts with its first recorded event in a funnel. It is the same session described in the Funnel card, and the same count the Conversion Rate above divides by.

Any event the page sends counts: a page view, a page completion, an email capture. Opening a link or loading a page that never sends an event records nothing. Events are timestamped in the browser, so an older event arriving late can move a session's start to an earlier day.

Counts appear once a background job has stored the events, usually within seconds. Requests recognised as bots are skipped.

Links: the list page

This page and the next assume the Home chapters: what a session is (Funnel breakdown), how a session gets its link (Link breakdown), and what counts as a conversion. The captures show organization BDCD and link 55, "Meta | USD_EN", over a year.

A Metrics period

Complete BDCD Links list capture S03, with Metrics period outlined as A
S03-A

Where the list's numbers come from

The Visitors and Revenue columns are not calculated when you open the page. A background job computes them every 15 minutes for four fixed windows and stores the result; Metrics period picks which stored window you see. The windows are the last 1, 7, 30 or 365 days in UTC, today included.

Every 15 minutes a job asks the analytics database for each link's visitors and revenue over each of the four windows and replaces the stored rows. The page reads the rows. There is no "as of" time on the page and no check of how old a row is: if the job stops, the numbers freeze and nothing says so. A link with no stored row shows 0 visitors and $0.

"Last year" is those 365 UTC days. The link page's "Last 12 months" is the same calendar date a year ago through today, in the organization's timezone. The labels differ because the windows are built differently; the difference is a day or two at the edges.

B Visitors and Revenue

Complete BDCD Links list capture S03, with Visitors and Revenue outlined as B
S03-B

What a list visitor and list revenue are

Visitors is the number of sessions that viewed a page through this link at any point in the window. Revenue is the total of web purchases credited to the link in the window, in USD.

The fact is a page view event that carries this link's ID. A session counts once per link for the whole window, whichever day it happened, including a session that started before the window and came back during it. A session that came through two links counts under both. Unlike Home and the link page, the list does not care which funnel the link points to today: traffic to a funnel the link no longer targets still counts.

A completed payment whose recorded link is this one and whose completion date falls in the UTC window. Refunded sales stay in. Test-mode payments count. Automatic renewals do not: the list keeps web purchases only. If any included payment has no exchange rate, the whole cell shows a dash rather than a partial total.

C One link, two pages

Complete BDCD Links list capture S03, with the Meta USD_EN row outlined as C
S03-C

Why the list and the link page disagree

The same link over the same nominal year: 119,759 visitors and $144,578 here, 98.1K visitors and $146.7K on the link's own page. Neither number is wrong by its own definition. They define visitor, day and scope differently, on every axis at once.

What each page means by the same word

Links listLink page
Visitora session that viewed a page through the linka session that started in the period and whose latest link is this one
Countedonce per link for the whole windowonce on the day the session started
Funnel scopenoneonly funnels the link points to today
DaysUTC, exactly 365organization timezone, calendar year
Revenueweb purchases onlyall payments, renewals included
Freshness15-minute snapshot, age not showncomputed when the page loads

Link page: Link Summary

The link page has one date range for everything below it. The Audience Analysis tab and the Link Configuration card are not covered here.

A Reporting window and trend badges

Complete BDCD link detail capture S04, with the Last 12 months selector outlined as A
S04-A

The window and its comparison

Last 12 months selects the period, and every badge compares it with the 12 months before. Days are calendar days in the organization's timezone, the same rule as Home. If the funnel is younger than the period, the query starts at the funnel's creation date.

B Revenue, Conversion Rate, Conversions, ARPU, Total Visitors

Complete BDCD link detail capture S04, with the five summary metrics outlined as B
S04-B

The five numbers

Revenue, Conversions and Total Visitors are the Home numbers restricted to this link. Conversion Rate is conversions divided by visitors, and ARPU is revenue divided by visitors.

Total Visitors: sessions that started in the period, in one of the funnels the link points to today, whose latest link is this one. The same rule as the Home Link card.

Conversions: sessions with a completed web purchase carrying this link, counted once per day, days added up. Renewals are not conversions.

Revenue: every completed payment carrying this link on one of those funnels, purchases and renewals alike, refunds not subtracted, test mode included.

A link that points straight at an experiment also requires the payment to carry that experiment. A link with country rules does not.

C Daily chart

Complete BDCD link detail capture S04, with the daily chart outlined as C
S04-C

The line is the selected card's value for each day, Revenue by default; click another card to switch. The solid line is the selected period and the dashed line the period before it. Over 12 months the chart still holds one point per day; only the axis labels are thinned.

Link page: Page Conversion

A Page conversion bars

Complete BDCD link detail capture S05, with the Page Conversion card outlined as A
S05-A

What a bar means

Each bar is one page of the funnel, in the order the funnel is built today. Its height is the share of sessions that reached the page and then completed it. Under each bar: that share, and the number of sessions that reached the page.

Reached is a page view event from a session, counted once per session. Completed is a page completed event, sent when the visitor moves forward to the next page through the funnel's own button or answer. Pressing back, reloading, closing the tab, or leaving to another site does not complete a page.

If more sessions completed a page than viewed it, which happens when a view was lost in transit, the visitor count is raised to the completion count so the bar never exceeds 100%.

Hovering a bar shows Retained, the completions, and Churned, the sessions that reached the page and never completed it. Churned here is page drop-off; it has nothing to do with subscription churn.

Link page: Conversion Flow

A Conversion flow graph

Complete BDCD link detail capture S08, with the Conversion Flow card outlined as A
S08-A

What the arrows mean

The flow is the funnel's routing as it is built today, with each page's numbers from the bars and, on each arrow, the share of sessions that moved along it.

Every completion event records where the visitor went next. An arrow's percentage is the sessions that completed the source page towards that destination, divided by the sessions that reached the source page. Where a page splits traffic between variants, the arrows show the configured split, not a measurement.

Avg. Time is the average of the recorded time on the page across completions, keeping only durations between one second and one hour, rounded to whole seconds. Sessions that never completed the page contribute no time.

Link page: User Retention

A User retention curve

Complete BDCD link detail capture S06, with the User Retention card outlined as A
S06-A

What the curve claims

User Retention claims to show, for the customers who started the selected product through this link in the period, the share still subscribed N days later. The number above the chart is the share with no recorded cancellation.

The chart does not compute that. It takes every payment in the period, groups the payers by customer, and for each day on the axis counts who has no cancellation dated before that day. Six things go wrong on the way.

What it does, and what it should do

TodayShould be
One-time products are offered, and the first product is selected by default. A one-time purchase cannot be cancelled, so the line is 100% forever; that is the captured chart.Recurring products only.
The date range picks payments in the period, so a renewal in March pulls in a customer who started last year.The date range picks customers by the day they started. Nothing else.
The axis is as long as the date range, and a customer who started yesterday counts as retained at day 365.Day N counts only customers who are at least N days old.
A cancel-at-period-end counts from the day it was requested.From the end of the paid period.
One cancelled subscription marks the customer churned, even on the curve of a different product they still pay for.Retention per subscription of the selected product.
Trials are subscriptions from the trial start, so a free trial that never paid counts as retained until the provider reports a cancellation.Decide whether the cohort starts at trial start or first payment, and say which.

What a retention chart normally looks like

Rows are when customers started, columns are how old they are, and a cell is blank until that cohort has reached that age. The date range chooses the rows.

Started Day 0 Day 30 Day 60 Day 90 Day 120 June July August September 100% 78% 66% 61% 58% 100% 81% 70% 64% 100% 75% 63% 100% 79% not reached yet not reached yet

One line per row gives the curve version; the current widget is that line with every row counted at every age, whether reached or not.

Link page: Purchased Products and Question Answers

A Purchased products

Complete BDCD link detail capture S07, with the Purchased Products card outlined as A
S07-A

What a slice is

Purchased Products splits the link's purchases by product and price, by number of purchases, not by revenue. A $99 yearly plan bought once and a $15 upsell bought once are the same size. Revenue appears only when you hover.

A purchase is one product line on a completed or refunded payment carrying this link on one of the link's current funnels, dated in the period. A payment with two products counts twice. Renewals count as purchases here, and test-mode payments are included. Clicking the legend hides slices but does not recompute the percentages.

B Question answers

Complete BDCD link detail capture S07, with the Question Answers card outlined as B
S07-B

What the donut counts

Question Answers shows, for one question at a time, how the answers split among sessions that came through this link in the period. The percentages are shares of answers given, not of people.

For a question where a session can tick several options, each ticked option counts once, so the percentages are shares of all ticks. A session that answered in two of the link's funnels counts twice. Only each session's latest answer counts, and it counts in the period when it was last changed: a session that answered in March and changed its answer in April shows the April answer only, under April.