The payoff

Six questions Polar cannot answer

Polar owns everything from the charge onwards. These live in the week before it, and they are the ones that change what you do next.

Polar answers this
MRR
$4,280
Churn
2.1%
Next payout
Friday

Polar is a merchant of record: it takes the payment, handles VAT and sales tax, and pays you out. Its dashboard is the right place for orders, benefits and entitlements.

Nothing downstream of the sale can
  1. 8 days agoFound a launch tweet
  2. 8 days agoRead /pricing, left
  3. 2 days agoCame back from a Google search
  4. TodayRead /pricing again, then paid $99

It has no view of the referrer, the campaign or the pages read before the checkout opened. That information never leaves the browser, so nothing downstream of the sale can recover it.

  • Which source brought the revenue in Polar this month, not just the visits

    X / Twitter$1,240
    Organic Search$380
    Reddit$0
  • What a visitor from each channel is worth, so ad spend has a number to beat

    X / Twitter$1.90 each
    Reddit$0.04 each
    Organic Search$0.71 each
  • Whether AI assistants send people who pay, or only people who read

    ChatGPT$212
    Perplexity$49
    Claude$0
  • Which campaign’s customers churn, by following the subscription back to its source

    launch-tweet12% churn
    newsletter-423% churn
    paid-search21% churn
  • Revenue net of refunds per channel, rather than a gross number that flatters it

    Gross$4,280
    Refunded−$219
    Net$4,061
  • How long a buyer takes to decide, so you stop judging a post by the same afternoon

    Median time to pay6 days
    Visits before paying3
    Longest this month41 days
How it works

Polar revenue, traced back in three steps

Ten minutes to set up, and you never touch it again.

  1. 1<script defer
    2 data-website-id="a7f3c1"
    3 src="https://geckostats.com/js/script.js">
    4</script>

    1. Add the script

    One tag in your <head>, under 2 kB. It is cookieless, so it needs no consent banner anywhere in the EU.

  2. API

    2. Connect Polar

    One webhook endpoint in Polar, and nothing else in your account changes. Every payment then arrives knowing which visit produced it.

  3. order_4f8c21b9e70a$99.00
    succeeded in Polar
    came from
    launch-tweet
    X / Twitter · first visit 8 days before

    3. Open any payment

    Every Polar payment carries the post, search or AI answer behind it, and how long the buyer took to decide. Nothing lands under Direct any more.

Everything you need, nothing you don’t

Six screens answer the question you actually have: what did I do that worked?

Traffic and revenue in one view

Blue shows visitors and orange shows revenue. See how they move together, then drill into the channels and sources behind each spike.

NNimbus/OverviewLast 30 days⌄
Visitors
5,283
603% ↑
Revenue
$6,888
698% ↑
Conversion rate
0.98%
6% ↑
Visitors and revenueVisitorsRevenue
+$49 payment
ChannelReferrerCampaign
Visitors ↕
Organic Social2,436
Direct1,086
Organic Search729
Payment attributed to X / Twitter
Campaignsutm_campaign
launch-tweet612$497
newsletter-42388$245
ig-reel1,120$98
podcast-ep1294—

Know exactly which post worked

A tagged link per tweet, article or newsletter. It shows up by name, with the visitors and the revenue it brought, even when they buy two weeks later.

Every customer’s full journey

Who paid, where they came from, how long it took. Open anyone and read every page and click from first visit to payment.

Visitor profile✕
Jane Cooper
jane@acme.com
🇺🇸 Austin, United StatesDesktop Desktop💻 macOS Chrome
First source
X / Twitter
Visits
3
Total spent
$49
Time to first payment
8 days
Oct 11, 7:31 PM Direct/None4m 12s
  1. 7:31 PM/pricing
  2. 7:33 PMcheckout_click on /pricing
  3. 7:35 PMPaid $49
Oct 9, 9:02 AM Direct/None48s
  1. 9:02 AM/blog/ship-faster
Oct 3, 2:14 PM X / Twittercampaign: launch-tweet2m 40s
  1. 2:14 PM/
  2. 2:15 PM/pricing
Payments
Oct 11, 7:35 PM · Payment$49

Watch it happen live

A real-time globe with everyone on your site right now, and a feed of pages, goals and payments as they land. Turn the sound on and hear every sale.

Live12 online
  • Payment $49 · credited tolaunch-tweet
  • Pageview /pricing ·🇵🇱 Warsaw
  • Goal checkout_click · came fromChatGPT
  • Pageview /blog/ship-faster ·🇺🇸 Austin
Queries, by what they earnSearch Console · ≈ apportioned
QueryClicksPos.Revenue
stripe revenue analytics1424.2≈ $486
plausible alternative966.8≈ $312
utm tracking for indie hackers713.1≈ $198
self hosted analytics cloudflare5411.4≈ $0

What Google sends you, and what it is worth

Connect Search Console once. Every query, page and country you rank for, with the money beside it, ranked by what it earns rather than by how loud it is.

AI reads your site. See what it took and what it sent back.

ChatGPT, Claude, Perplexity and Gemini crawl you whether you watch or not. Every agent by name, against the visitors and the revenue they sent back.

AI crawlersRead vs. sent back
AgentPages readSentRevenue
ChatGPT23061$212
Claude14228$98
Perplexity8819—
Gemini647—

And 9 more, on every plan

Starter and Growth both include every one of these, at every size.
  • Revenue attributionStripe, Dodo Payments, Polar and Creem out of the box. Anything else with one API call.
  • Goals and funnelsButton clicks and signups as goals, then step-by-step drop-off between them.
  • One-click filtersClick any row, a source, a country, a campaign, and the whole dashboard follows.
  • Subscriptions and MRRMRR, churn and lifetime value by source: which channel brings customers who stay.
  • AlertsTracking stopped, revenue down, organic clicks down, a page deindexed, a query dropped five places.
  • Release markersOne curl at the end of your deploy puts a tag on the chart, so a drop can be read against what you shipped.
  • RetentionWho came back, week by week, and what the returners were worth.
  • Share as an imageYour period rendered to a PNG, ready to post, drawn from the numbers rather than screenshotted.
  • No cookies, no bannerA visitor is a salted hash that rotates every day and the IP is never stored. Nothing to consent to.

Works with your AI tool

Add the GeckoStats MCP server and Claude, Cursor or ChatGPT can read your Polar revenue the same way the dashboard does.

  • Via ChatGPT

    Connect over MCP and let it explain last week.

    ChatGPT
    • New chat
    • Search chats
    • Library
    Chats
    ChatGPT 5
    Ask anything
  • Claude
    • New chat
    • Chats
    • Projects
    • Artifacts
    Recents
    Claude Sonnet 4.5
    Reply to Claude…Sonnet 4.5

    Via Claude

    Add the server as a custom connector and ask about your own numbers.

  • Via Claude Code

    One command in the terminal, then it reads traffic, revenue and funnels.

    Claude Code~/sites/nimbus
    ✻ Welcome to Claude Code!
    /help for help, /status for your current setup
    cwd: ~/sites/nimbus
    >
    ? for shortcuts
  • Grok
    • New chat
    • History
    • Tasks
    Today
    Grok 4
    Ask anythingGrok 4

    Via Grok

    The same server, the same answers, from Grok.

  • Via Cursor

    The same 26 tools, from the editor you write your site in.

    nimbus
    app
    components
    lib
    pricing.tsx
    layout.tsx
    pricing.tsx
    Agent
    Plan, search, build anythingSonnet 4.5
  • Gemini CLI~/sites/nimbus
     ██████  ███████ ███    ███ ██ ███    ██ ██
    ██       ██      ████  ████ ██ ████   ██ ██
    ██   ███ █████   ██ ████ ██ ██ ██ ██  ██ ██
     ██████  ███████ ██      ██ ██ ██   ████ ██
    Tips: /mcp lists connected servers · geckostats (26 tools)
    >

    Via Gemini CLI

    Point it at the server and ask which page is worth another post.

terminal
claude mcp add --transport http geckostats \
  https://your-stats.com/api/mcp \
  --header "Authorization: Bearer ml_…"
  • 26 tools: overview, sources, pages, goals, funnels, customers, search queries, live view
  • Ask it which channel brought this month's Polar revenue and it answers from your own data
  • One key per website, rotate it whenever you like

Selling through something else as well?

Connect as many as you like. One dashboard, one revenue number.

Simple pricing, seven days free

Every size includes Polar, every other provider, Search Console, the AI assistant and the MCP server.

How many events a month?Up to 100K events

Starter

For one site and one person.

$17/mo

Billed monthly · up to 100K events

Start 7-day free trial

No commitment. Cancel anytime.

Events a month100K
Sites1
Team seatsJust you
Charged$17 / mo
Included
  • Realtime dashboard
  • Live Globe
  • User Profiles
  • Funnels
  • Revenue tracking
  • Core Web Vitals
  • and 9 more, on every plan

Growth

Recommended

For several sites and the people who work on them.

$35/mo

Billed monthly · up to 100K events

Start 7-day free trial

No commitment. Cancel anytime.

Events a month100K
SitesUp to 30
Team seatsUp to 30
Charged$35 / mo
Included
  • Realtime dashboard
  • Live Globe
  • User Profiles
  • Funnels
  • Revenue tracking
  • Core Web Vitals
  • and 9 more, on every plan

Every plan starts with 7 days free. No commitment, cancel anytime. Prices exclude VAT, which may apply at checkout.

Polar questions

Polar is a merchant of record. Does that change the attribution?

Not for your side of it. The visit happened on your domain and the order carries the id you put on it, so the chain holds whether Polar or you are the seller of record.

Does the webhook need a particular payload format?

Yes, set it to Raw. The signature is checked over the exact bytes Polar sent, and a re-encoded payload will not verify.

What happens when somebody upgrades a plan?

subscription.updated carries the new amount, so MRR per source moves with it instead of being frozen at whatever the customer first signed up for.

How long does this take to set up?

Under ten minutes: the script on your site and one webhook in Polar, with the payload format set to Raw. Selling through Polar Checkout Links needs no code at all, because the tracker puts the visitor in the link's reference_id and Polar copies it onto the order.

Will it slow my site down?

The tracker is under 2 kB, deferred, and fetches nothing at runtime. It also reports Core Web Vitals from real visits so the claim is checkable.

Do I need a cookie banner?

No. Tracking is cookieless by default, nothing is stored on the visitor's device, the IP is never kept, and Do Not Track and Global Privacy Control are honoured.

Polar already shows me my orders. What does this add?

Which post, search or AI answer produced each of them. Polar's dashboard begins at the checkout; everything that decided whether the checkout opened happened on your site, before Polar was involved.

What if a customer takes weeks to decide?

The join happens when the order arrives, not inside a session window, so a customer who first read something in March and bought in May still credits March.

Connect Polar and see what paid.

Add the script, add one webhook, and every Polar payment arrives with the visit that produced it.

7 days free · no commitment · cancel anytime