Courses and teaching
For test prep: which practice pages turn worried test-takers into buyers.
Test prep sells to people with a date on the calendar: they search for practice questions, take a free diagnostic, and buy a course or question bank for the months before the exam. Tally ties each purchase and extension to the visit behind it, so you can see which pages and channels sell ahead of each test date.
14 days free, no card needed.
01How they sell
- One-offCourse or question-bank access for a fixed period, such as three or six months, with paid extensions for those who move their exam date.
- SubscriptionMonthly access that test-takers cancel after the exam, so renewals end on their own once the date passes.
- FreemiumA free diagnostic test or a set of free practice questions, with the full bank behind a purchase.
02Payments it reads
- StripeAccess passes, extensions and monthly plans through Stripe Checkout; refunds before the access starts are read with them.
- PaddlePrep companies selling to test-takers in many countries use Paddle as merchant of record for the tax; transactions and adjustments are read.
What Tally can't read
- Exam registration fees go to the testing body, not to you, so they aren't read.
- Sales of prep apps through the App Store or Google Play aren't read.
- Books sold through retailers aren't read.
- Group licences paid by schools by bank transfer outside your provider aren't read.
03Where buyers come from
- SearchSearches for a question type or a score target bring test-takers to practice pages; the page breakdown shows which pages' visitors buy.
- Reddit and forumsStudy communities for each exam send readers who compare prep options and often buy within days of their decision.
- YouTubeStrategy videos start long paths that end in a purchase as the exam date approaches.
- AI assistantsPeople asking an assistant how to prepare follow its links into a channel of their own, apart from search.
04What Tally answers
Do sales rise before each test date?
Peak hours shows sales or revenue by weekday and hour over the period you choose; set it to the weeks before a test date and compare it with a quiet month.
Peak hoursDo people who take the diagnostic buy?
Call tally('diagnostic_done') when the free test ends and the goals view counts completions, converting visitors and their revenue, with a funnel from diagnostic to pricing to checkout.
Goals and funnelsWhich practice pages do buyers spend time on?
What they read compares engaged time and scroll depth per page for buyers and other visitors, so practice pages that buyers work through can be told from ones people skim.
What they readWhich source brings buyers who extend their access?
Lifetime value counts every purchase, extensions included, under the buyer's first source, with repeat rate, so you can see which channel's test-takers come back for more time.
Lifetime value
05Numbers worth watching
- Goal conversion
- The share of visitors who finish the free diagnostic, by source: the moment a test-taker sees how far they have to go.
- Median time to buy
- The median time from first visit to purchase, which shrinks as the exam date nears.
- Refunds and chargebacks
- Refunds by source, such as from buyers who postponed the exam or bought in a panic.
- Visitors from AI assistants
- Visits from AI assistants and the revenue behind them, as more test-takers ask an assistant how to prepare.
06An example
Busiest on Mondays, 14:00–17:00
2.1× the visits of an average three hours. Post around Mon 13:00 to be there as they arrive.
Shades are each hour's average over the times this period holds it, so a weekday that comes round five times doesn't outshine one that comes round four. The totals beside and below are the period's actual sums, not averages.
07Setting up
- React and ViteIf the practice tool is a React app built with Vite, add the tag to index.html; history-based route changes count as pageviews.
- StripePass the visitor's id in the Checkout Session's metadata from the pricing page, so passes and extensions link with high confidence.
- Send the diagnostic's completion as a goal with a property for the exam, such as tally('diagnostic_done', { exam: 'gmat' }).
08Questions
Can Tally tell me students' scores?
No. It counts visits, goals and payments. If your tool sends a goal when a practice test ends, that completion is counted, but no score is.
A buyer extends their access twice. How does that show?
Each extension is a payment of its own, credited to the visit that led to it, and appears on the customer's row with the original purchase.
Can I see which exam a buyer is preparing for?
If each exam has its own pricing or checkout page, the page breakdown puts revenue beside each one, so exams can be compared by what their buyers paid.