Software as a service
For analytics and BI software: which docs and posts bring teams whose usage grows.
Analytics and BI products are evaluated by technical people who read the docs, connect a data source and run a proof of concept before anyone pays. Tally ties each subscription and usage invoice to the visits behind it, so you can see which docs, posts and communities start the evaluations that become revenue.
14 days free, no card needed.
01How they sell
- UsageBilled by events, rows, queries or compute above an allowance; an account's invoices climb as its data grows, with no new sale.
- SubscriptionSeat or tier plans for dashboards and sharing, monthly or annual, often alongside the usage charge.
- FreemiumA free tier or an open-source edition that people self-host or try on sample data before connecting their own.
02Payments it reads
- StripeMetered billing on Stripe subscriptions; each usage invoice is read and keeps the first payment's source.
- PolarDeveloper-first analytics products bill seats and metered usage through Polar, whose subscription cycles, metered ones included, are read.
- PaddlePicked for selling to companies worldwide with tax handled by a merchant of record; transactions and renewals are read.
What Tally can't read
- The warehouse and compute bills your customers pay their cloud provider aren't read; only what they pay you is.
- Teams running the open-source edition on their own servers pay you nothing, so they appear as visitors but never as revenue.
- Enterprise agreements bought through a cloud marketplace are billed there and aren't read.
03Where buyers come from
- Docs searchEngineers search for how to do one thing and land on a docs page, which can be both the first and the last page a buyer sees.
- Hacker News and data communitiesTechnical posts and launches draw careful readers who evaluate later rather than buying on the spot.
- GitHubThe open-source edition's repository sends visitors from its README to the cloud pricing page.
- Conference talksA talk sends people who type the product's name afterwards; Readable Direct counts them as typed rather than unknown.
- AI assistantsEngineers ask assistants how to answer a data question and get pointed at tools; those visits have their own channel.
04What Tally answers
Do docs readers become paying teams?
What they read gives engaged time and scroll depth per page for buyers and for everyone else; docs pages that buyers spend real time on are the ones carrying the evaluation.
What they readHow long does an evaluation take, from first visit to first invoice?
Path to purchase gives the median time and visits from first visit to first payment, with a histogram of the spread; a proof of concept can show as a long, steady middle rather than a spike on day one.
Path to purchaseWhich channel brings accounts whose usage keeps growing?
Lifetime value by first source totals every usage invoice since the first, so a source whose accounts double their data stands above one whose accounts sit at the minimum.
Lifetime valueAre AI assistants sending engineers to us?
Visits from ChatGPT, Claude, Perplexity and other assistants have their own channel in every breakdown, with the revenue behind them and the pages they landed on.
Sources with revenueWhy are some usage invoices unlinked?
Coverage lists each reason a payment isn't linked, such as a subscription your backend created without the visitor's id, and gives the snippet that fixes it; usage invoices then follow whatever the first payment linked to.
Coverage
05Numbers worth watching
- Median time to buy
- The median time from first visit to first payment, which for a product that needs a data connection is the length of the evaluation.
- Lifetime value by first source
- Lifetime revenue by first source; with usage billing, it is the only figure that shows what an account became.
- Visitors from AI assistants
- Visits arriving from AI assistants, which can send engineers straight to a docs page.
- Engaged time
- Time actually spent on docs and guides, counted only while the tab is in view and the reader is active.
06An example
Reading time
38s
median per pageview
Scroll depth
59%
average depth, of 27,216 views measured
Read to the end
27%
of measured views reached 90% or more
What they read
29,264 pageviews · last 30 days
Open a page to see how far down people read it, and how buyers read it before paying.
- /8,756 views52% scrolled on average21s reading time, median
- /pricing5,526 views78% scrolled on average58s reading time, median
58s
reading time, median per view
78%
scrolled, on average
5,526 views · 5,194 with a measured depth
How far down they read
Share of measured views that scrolled at least this far
- 25% — reached a quarter of the page:95%
- 50% — reached half of the page:84%
- 75% — reached three quarters of the page:69%
- 90%+ — reached the end of the page:48%
Buyers before paying vs didn't buy
- Buyers, before paying149 views · 107 buyers96% scrolled on average,1m 41s reading time, median
- Didn't buy5,342 views · 3,815 visitors61% scrolled on average,44s reading time, median
35 views by buyers after paying are left out of both.
Buyers are visitors whose first sale came after viewing this page; only their views before that payment count.
- /docs2,727 views47% scrolled on average1m 12s reading time, median
- /blog/stripe-fees2,237 views64% scrolled on average2m 34s reading time, median
- /compare1,184 views71% scrolled on average49s reading time, median
- /changelog861 views38% scrolled on average33s reading time, median
Reading time runs only while the tab is visible and the visitor is active; it's the median per view. A view with no engagement report counts as 0s of reading. Its scroll depth is unknown, so it's left out of every scroll figure rather than counted as 0%. 27,216 of 29,264 pageviews have a measured depth.
07Setting up
- Next.jsIf the docs and marketing site are one Next.js app, add the tag in the root layout, so a visitor's path runs from a docs page to pricing.
- PolarPass the visitor's id in the Polar checkout's metadata when a team starts a paid plan; metered cycles then keep the source.
- StripeWith Stripe, set the visitor's id in the Checkout Session's metadata and subscription_data, and later usage invoices follow it.
- Call tally('identify', { email }) when someone creates a workspace, so a payment made later with that email links even from another browser.
08Questions
Self-hosters never pay us. Do they skew the numbers?
They count as visitors, which lowers conversion and revenue per visitor on the docs they read. Compare sources by revenue and lifetime value too, which only count people who paid.
Do usage invoices count as renewals?
Each invoice on the subscription after the first takes the first payment's link, so usage growth is credited to the source that won the account.
Can our data team query these numbers directly?
Yes, through the REST API or the command line, and an AI assistant can query them through the MCP server.