X sends 5 times the traffic of Hacker News. Hacker News converts at 3 times the rate.
Sales divided by sessions from the same source, and what each session was worth after refunds. Beside every source, on the dashboard you already open.
Every plan, free for 14 days. Card required, charged when the trial ends, cancel any time before it and you pay nothing.
Reddit brought 890 visits and no sales. Hacker News brought half that and $890.
AI is 9% of this month and climbing. In Google Analytics it is filed under “referral”, mixed in with everything else.
Two thirds of this month is desktop. The mobile share is where the bounce rate lives.
Each arrow is a hop from one page to the next, thicker the more often it happened. The indigo route is the most walked one; point at a page to see what leads to it and where it goes. A number with a + comes only from longer walks, so the hop happened at least that often.
A real dashboard, with a made-up company's numbers. Same components you get on day one.
Visits tell you where people came from. These three tell you what to do about it. Every figure here is worked out from the acme.inc demo above.
Sales divided by sessions from the same source, and what each session was worth after refunds. Beside every source, on the dashboard you already open.
A sponsorship, an ad, a listing: weighed against the net revenue from the same source or campaign.
Paste an incoming-webhook URL. Only new sales are posted, never your history.
New sale on acme.inc: $149.00 from Hacker News (campaign: launch).
Every visit is checked against several independent signals before we name a source, and they disagree often. That is the whole job, and it is why these two reports describe the same week.
And when nothing resolves, we say so. A visit we can tell arrived from somewhere, but cannot name, is reported as a shared link, not quietly filed under “direct” as though we knew.
A refund comes off the source that brought the sale, on the day it happens. A channel that sells well and refunds a third of it stops looking like your best one.
ChatGPT, Perplexity, Claude, Gemini and Copilot, separated instead of buried in “referral”. It is the fastest-growing source most dashboards cannot show you.
Crawlers, uptime monitors, browser prefetch and Slack link previews never counted. Nor are your own visits, once you switch yourself off.
One script tag, no cookie, nothing to profile anyone with, and nothing that blocks your page from rendering. Proxy it from your own domain and ad blockers stop mattering.
The open-stats page founders like to show, on its own clean URL, without exposing anything else in your account.
Put data-goal="Signup" on any button. That is the whole integration: no API to call, no events to name in a config file.
Every plan has everything. What changes is how many events and how many sites.
Every plan starts with the same 14-day trial, on the full plan, not a cut-down version of it. A card is required and it is charged when the trial ends; cancel before then and you pay nothing. For scale: Plausible charges $99/mo for a million pageviews. Here $49.99 buys ten million.
Almost certainly not for us, but the honest answer is that it depends on where you are and we are not your lawyers. We set no cookie, we never store an address, and the identifier that tells one visitor from another is rebuilt every midnight, so it cannot follow anyone into tomorrow, let alone across sites. There is no profile here to disclose.
What the script does keep is a little bookkeeping in your own site’s storage, so it can tell one session from the next and credit a sale to the campaign that started it. It stays on your domain, holds no identity, and is not a cookie, but it is still something written to a device, and a few jurisdictions read their rules broadly enough to want that mentioned. Our privacy page describes it exactly, so you can say the same thing in your own notice.
A pageview or a custom event. Requests we discard as known bots, as browser prefetch, or from anyone who has excluded themselves do not count. We would rather say that here than argue about it on your invoice.
We keep counting. At 100% you get an email and a banner, and not a single data point is lost. Between 100% and 150% you get a full grace period. Only well past that, for two months running, do we move you up a plan, with seven days’ notice and the option to say no.
We never stop measuring. Cutting your history off in the month things went well for you is the worst possible moment to do it.
That is why every site can have its own cap. The allowance is a single pool across your sites because that is simpler to reason about, but you can tell any one site not to spend more than a set number of events a month, so a side project cannot blind the site that pays your bills.
The first time someone lands on your site we remember what brought them. Weeks later, when they buy, the order reaches us from your payment provider (Polar, Stripe, Lemon Squeezy, Paddle or Dodo, through a read-only key or a webhook) and we match the two, so the sale is credited to the source that started it. Attribution is first touch.
Setting it up is one attribute on the link to your checkout. Skip it and your revenue is still counted, it just cannot be split by source.
Any script served from an analytics domain eventually lands on a block list, and for a technical audience that can be a large share of your traffic. Proxy our script from a path on your own domain and it stops being blockable. We document it for Cloudflare, Vercel and Netlify, and it takes about five minutes.
Yes, with one switch. You get a clean public page you can link from your own site, the open-stats page a lot of founders like to show, without exposing anything else in your account.
Cancel during the trial and your card is never charged at all. Cancel later and the plan runs to the end of the period you already paid for.
After that the tag stops counting and nothing is deleted: your dashboard and every event already recorded stay readable, with no export deadline and no thirty-day deletion clock. Put a plan back on and it picks up from that day.
Paste this in your <head> and the dashboard starts filling in as the first visitor lands.
<script defer data-site="…" src="https://originstat.com/o.js"></script>Start a 14-day trial