Trial-to-paid conversion by traffic source, step by step
By Devendra Variya, co-founder of Virling. Published 2026-11-02.
Trial-to-paid conversion by traffic source is the share of free trials from each marketing channel that turn into a paying customer. You get it by recording which channel brought each trial, then crediting each customer's first payment to the visits before the trial began. A channel that sends many trials but few payers looks very different once you divide.
Signups are the number most SaaS dashboards stop at. They flatter channels that bring curious people. Trial-to-paid is where you see which channels bring people who were ready to buy.
The formula
trial-to-paid rate for a channel = customers from that channel who paid / trials from that channel
Use the same group of trials on both sides. If your trial lasts 14 days, the trials from the last 14 days have not had their chance to convert yet, so leave them out or expect a lower number for the most recent weeks.
Why it differs by channel
- Intent. Someone who searched for a tool like yours, or asked an AI assistant for one, arrives closer to buying than someone who clicked a thread out of curiosity.
- The promise before the click. A post that oversold the product brings trials that leave on day two.
- Who the channel reaches. A community full of builders who will copy the idea brings different trials than a newsletter read by people with a budget.
- Time. Some channels convert in a day, others need the whole trial and a reminder email. Cutting a slow channel early can cost you its customers.
- Card up front or not. Trials that ask for a card convert at a higher rate but start less often, so compare channels within one trial type.
The hard part: the first charge has no visit
A paid plan bought through checkout carries the visitor ID, so the payment can be joined to the visit that led to it. A trial that asks for a card is different. Checkout charges nothing, and two weeks later the provider charges the card on its own. That first real charge was never near your website, so on its own it has no visit to be credited to.
Virling handles this for Stripe, Polar and Dodo Payments. It reads the trial start from the $0 checkout (Stripe's checkout.session.completed with a total of 0, Polar's $0 order and Dodo's $0 subscription payment), keeps it apart from payments so it never counts as revenue or a customer, and credits the customer's later charge from the visits before the trial started. Stripe trial starts are read from the time Stripe was connected, so earlier trials are not seen. See renewals and free trials.
A trial with no card is simpler: when the user upgrades, they go through checkout, and checkout carries the visitor ID like any other payment, as long as you pass it. See link checkout to visits.
How to measure it in Virling
1. Send a goal when the trial starts
Fire one goal at the moment the trial exists, on the page after signup or after the trial checkout:
virling("goal", "trial_started");If every signup is a trial, your signup goal is the trial start and you can use that. Goals are stored with the visitor, the session and the page. See goals.
2. Build a trial funnel
Open the Goals tab at the top of the dashboard. The funnel always starts at Visit and ends at Paid, which comes from your payments with no setup. Choose trial_started as the step between them, and save it as a named funnel such as "Trial to paid" so it is one click away next time. Each step counts the visitors who did the step before it, shows the drop between steps, and shows the median time from the trial to the payment.
The channel tabs above the funnel filter it to one channel, and the headline changes to the share of visitors from that channel who became paying customers. Divide the Paid step by the trial step for that channel's trial-to-paid rate.
One caveat: the funnel's Paid step follows the visitor ID on the payment itself. That works for no-card trials, where the user pays through checkout. For card-up-front trials the automatic first charge has no visitor ID of its own, so the funnel undercounts payers. Use step 3 for those.
3. For card-up-front trials, use credited customers
Two numbers, both by channel:
- Trials: in the Goals tab, switch to the Goals list and open
trial_started. It splits the goal by channel, with the count and the share of that channel's visitors. - Payers: open Customers who stay (the Retention page). Customers acquired counts customers whose first payment falls in the range, grouped by the channel credited for that payment, which includes the credit from the trial start.
Divide the second by the first for each channel. The two sides are counted slightly differently: a goal is split by the channel of the session it happened in, while payments follow your attribution model, last non-direct by default. A visitor who found you on Reddit and came back by typing your URL to start the trial counts as Direct on the trial side and Reddit on the payment side. With a big gap between the two in one channel, switch the model to last touch in Site settings and compare; history is recomputed, and you can switch back.
4. Look past the first payment
A channel with a high trial-to-paid rate can still lose if its customers cancel after a month. The same Retention page shows how many customers from each channel still pay, their 30-day churn and their lifetime value. The Time to pay card on the dashboard shows the median time from first visit to first payment per channel, which tells you whether a channel needs the full trial or converts on day one. See retention by channel and how long a visitor takes to become a customer.
A worked example
Made-up numbers to show the method. Over 90 days, leaving out the last 14:
- Organic search: 120 trials, 30 paid, 25%.
- Communities: 200 trials, 16 paid, 8%.
- AI: 25 trials, 9 paid, 36%.
Communities sends the most trials and converts the fewest. AI sends the fewest and converts the best. Before you move effort, check the time to pay and the 30-day churn for each, and wait until a channel has a few dozen trials. With 25 trials, two extra payers move the rate by eight points.
What to check if the numbers look off
- Paid customers show as Unattributed. The visitor ID did not reach checkout, or the trial started before Stripe was connected. The Matched revenue line under the Overview numbers gives the share matched and why the rest was not. See Unattributed revenue.
- No trial starts are credited on a provider other than Stripe, Polar or Dodo Payments. Trial-start credit covers those three. On others, pass the visitor ID when the trial is created if the provider lets you store it on the subscription or customer, or send an identify event with the email after signup so Stripe payments can be matched by email.
- The trial goal fires twice. Fire it once, on the step that creates the trial, not on every visit to the welcome page. The funnel counts visitors, but the Goals list counts completions.
- Big swings week to week. Small numbers. Use a longer range.
For the general setup of joining payments to visits, see how to find which marketing channel pays and how to track Stripe revenue by traffic source.
Frequently asked questions
What is trial-to-paid conversion by traffic source?
It is the share of free trials from each marketing channel that become paying customers. You need the channel of each trial and each customer's first payment credited to the visits before the trial, then divide payers by trials per channel.
How do I track free trial conversions by channel?
Send a goal when the trial starts, so each trial is stored with its visit and channel. Then credit the first payment to the visits before the trial. Virling does the credit for Stripe, Polar and Dodo Payments trials, and shows trials and paying customers per channel.
Why is the first payment after a free trial unattributed?
With a card-up-front trial the provider charges the card automatically when the trial ends, so that charge never passed through your site and carries no visitor ID. A tool has to link it back to the trial start, which did carry the ID.
What is a good trial-to-paid conversion rate?
It depends on whether the trial asks for a card, your price and your market, so a benchmark from another company says little. Compare your own channels with each other and with your average, within one trial type.
Should I judge channels by trial-to-paid rate alone?
No. Also check how long each channel takes to pay and how many of its customers still pay after a month or two. A channel with a high trial-to-paid rate and early cancellations can be worth less than a slower one whose customers stay.
Measure your own trials by channel: start a 14-day free trial at app.virling.com, or self-host Virling free. The live demo has a goals funnel with made-up data.