Attribution

Revenue per visitor, the metric that beats traffic

Ownlytics team · · 6 min read

Revenue per visitor (RPV) is total revenue divided by the number of visitors in the same group, whether that group is a page, a source or a campaign. It beats raw traffic because it tells you what each unit of attention is worth, so you can compare a loud channel with a quiet one on equal terms.

yourapp.comToday7d30d9 online
PageVisitorsSalesRevenue
G/blog/setup-guide1,8005$245
G/blog/pricing-compared6403$147
Y/blog/show-hn-notes2,1001$49
X/blog/launch-recap3,2001$49
N/blog/weekly-changelog9000$0

Fig.Revenue by post. Rank by revenue per visitor, not by visitors. Sample data, not a real site.

The formula

RPV = revenue from a group / visitors in that group

Use the same period and the same grouping for both numbers. Revenue per visitor from "x.com in March" is revenue credited to x.com in March, divided by x.com visitors in March.

It is not the same as conversion rate. Conversion rate asks how many visitors bought. RPV asks how much money they brought. A source that sends few buyers who each pay a lot can beat a source that sends many buyers paying little, and conversion rate alone hides that.

Example (made-up numbers for illustration)

Imagine three sources for a $49 product and a $199 product over one month.

SourceVisitorsSalesRevenueConversionRPV
Social platform5,00010$4900.20%$0.10
Search1,2008$5420.67%$0.45
Newsletter3004$4961.33%$1.65

Traffic ranks them social, search, newsletter. RPV ranks them in the opposite order. If you chose where to spend next week by traffic, you would double down on the weakest earner.

The newsletter number also deserves suspicion. Three hundred visitors and four sales is a small sample, and one extra sale moves RPV a lot. Treat small groups as leads to watch, not conclusions.

Why traffic misleads

Traffic is easy to count and easy to celebrate. It also responds to things unrelated to buying intent: a viral post, a trending topic, a link from a roundup. Visitors who arrive curious and leave are counted exactly like visitors who arrive ready to pay.

RPV does not fix intent, but it measures the outcome of intent. Over several months it shows which channels attract people who pay, which is the thing you are trying to buy with your effort.

What you need to measure it

You need visitors by source, and revenue by the same source. The second part is the hard one, because payments happen at a processor, not on your site. Revenue has to be credited back to the visit that produced it. How that works is in how to know which blog post made a sale, and the setup is in the revenue docs.

Ownlytics shows revenue per visitor on the main dashboard and lets you filter by referrer, so you can read it per source without a spreadsheet. If you already export both numbers elsewhere, the formula works anywhere.

Four ways RPV misleads

  1. Tiny samples. Under a few hundred visitors, one sale swings the number. Wait, or widen the date range.
  2. Refunds. Gross revenue overstates sources whose buyers ask for money back. Compare net revenue where you can. See our post on refunds and attribution.
  3. Unattributed sales. If part of your revenue has no source, every source's RPV is understated. Check how large the unattributed share is before comparing.
  4. Direct traffic. A large Direct bucket can hold buyers who really came from chats, email or apps that hide the referrer. Read direct traffic explained before concluding that Direct is your best channel.
yourapp.comToday7d30d9 online
Visitors3,619+42.1%
Revenue$2,226+67.0%
Conversion0.41%+8.4%
Revenue/visitor$0.11+17.6%
1.4k7000
SourceVisitorsSalesRevenue
Xx.com6,2479$441
Ggoogle.com4,43314$686
@newsletter1,1307$343
Ynews.ycombinator.com2,0153$147
Cchatgpt.com1,4114$196
↗Direct · typed or bookmark1,2092$98

Fig.The dashboard with revenue per visitor alongside traffic. Sample data, not a real site.

First touch or last touch changes RPV

RPV depends on which visit gets credit for a sale. Under first touch, a blog post that introduced the buyer gets the money. Under last touch, the visit right before payment does, which is often Direct or Search. The default in Ownlytics is last non-direct, the most recent visit with a real source, and you can switch it per website in settings, as described in sources and attribution.

Pick a model, keep it fixed for a quarter, and compare periods against themselves. Switching models mid-quarter makes every trend meaningless.

A short routine

  1. Choose a window of at least 30 days.
  2. List your top sources by visitors.
  3. Add revenue and compute RPV for each.
  4. Mark any group under about 300 visitors as "too small to call".
  5. For the highest RPV, ask whether it can scale. Small, focused audiences can earn well per head but may cap out. Large audiences may scale but earn less per head.
  6. Re-check next month before changing your plan.

When RPV is the wrong metric

If you sell mostly through sales calls, or your purchase cycle runs for months, a 30-day window will undercount sources that start long journeys. If your goal is signups for a free product, revenue per visitor is zero by design and you should measure signups or activations instead. And for a brand-new site, there is simply not enough data yet.

RPV also says nothing about customers who stay. A source with low first-purchase RPV may send people who renew for years. Ownlytics groups customers by the source of their first payment and adds later renewals, which gives a longer-run view than a single month.

Rank your sources by revenue per visitor, but only trust groups large enough that one sale doesn't move the answer.

Seeing it on your own site

If you want to see revenue per visitor by source on a sample dashboard, open the live demo.

FAQ

What is a good revenue per visitor?

There is no universal number. It depends on your price, your market and your traffic mix. Compare your sources against each other and your own past months rather than against someone else's figure.

Is revenue per visitor the same as average order value?

No. Average order value is revenue divided by orders. RPV is revenue divided by visitors, so it includes everyone who did not buy.

Should I count repeat visitors once or every visit?

Count unique visitors for the denominator if you want per-person value. Be consistent, since mixing unique visitors and sessions breaks comparisons.

Can I measure RPV for a single blog post?

Yes, if your setup ties each sale to the visit and landing page that produced it. Treat posts with few visitors cautiously, and see the path to purchase docs to understand how long buyers take before a post "pays".

See the live demo · View pricing

Keep reading