Data + the actual page, one pass

See what your numbers mean — on your actual pages

Polaris reads your GA4 and BigQuery data, then walks your site the way a customer does — screenshots, clicks, forms and all. You get one prioritized list of what's costing you money, with the amount attached.

No install for this part — just GA4 Viewer access.

From a real audit, not a demo
client withheld · funnel
-80.7% 100% Viewed a product 19.3% Added to cart

5.1x

desktop add-to-cart collapse vs. mobile

$0→$2.11

same platform, two campaigns

See what's inside a full report →

What the page looks like

yourstore.com/checkout

Apple Pay button renders below the fold on iOS Safari at 390px. Circled because it's where the numbers say people leave.

What the numbers say

analytics.google.com
iOS checkout drop

Mobile checkout conversion is down 18% week over week — the dashboard alone doesn't say why.

Same drop-off. Two views. One report.
Already know your numbers?

Drop them in — we'll calibrate your free report before you even touch GA4

Rough monthly figures are enough. This is its own one-step request — separate from the audit form below, no GA4 access needed here.

Monthly visits (approx.)

Product page views/mo

Add-to-carts/mo

Purchases/mo

Numbers beyond website + email are optional — reviewed by hand, same as every request.

Got it — thanks!

We'll follow up by email with next steps for your free report.

The problem

Your data and your site never talk to each other

Your analytics tells you what happened. Your website shows you why. Usually two different people look at them, weeks apart — an analyst reading a dashboard, a designer looking at a page, neither one looking at the other's screen.

Analytics says what

Conversion dropped 18% on mobile checkout last week. The dashboard is confident about the number and silent about the reason.

Your site says why

The Apple Pay button moved below the fold on a template update three weeks ago. Nobody connected the two events.

Polaris says both, together

One pass, one output: the number, the page, and the line that connects them — plus what it's worth to fix.

The core loop

One loop, not five subscriptions

Everything below runs on the same dataset. No syncing exports between an analytics tool, a heatmap tool, a survey tool and a testing tool that have never seen each other's data. Click a step.

01 02 03 04 05 ONE DATASET

STEP Where you are

"What's actually happening on my site?"

Polaris reads GA4 and BigQuery and walks your top pages the way a visitor would. You get numbers and a screenshot of the exact spot they describe — not a dashboard you have to translate yourself.

ARTIFACT YOU SEE

Report slide: the metric, plus a screenshot with the problem circled.

  • 01Where you are
  • 02What's blocking them
  • 03What to fix first
  • 04Did it work
  • 05Stay on course — closes back to step 1
See the actual output

Here's a full report. Nothing blurred.

The same underlying analysis, told five different ways depending on who's reading it. Switch audiences below — it's the same report, not five different products.

5-step plain-language summary

"Here's what's costing you money, in order."

Written for someone who runs the business, not the analytics stack. No ARPU, no PDP, no jargon that needs a glossary.

P0

Checkout button hides below the fold on iPhone — costing roughly 4% of mobile sessions.

P1

Shipping cost only appears at the last step — a top exit-survey answer this month.

3 findings, each with a number

"Here's what it's worth, ranked."

Three findings, each tied to a dollar or percentage figure — built for a five-minute read before a budget conversation.

≈4%

mobile sessions hitting the checkout issue

-18%

week-over-week mobile conversion

P0

priority — fixable this sprint

10 cuts, no interpretation

"Here's the data, cut ten ways."

Device × channel × landing page × new/returning and more — cross-tabbed, not editorialized. You draw your own conclusions.

# segment: mobile · paid social · new visitors sessions 18,402 (-6.1% WoW) add_to_cart 22.4% (-3.1pp) checkout_start 9.8% (-2.4pp) purchase 2.1% (-0.9pp) # segment: desktop · organic · returning visitors sessions 11,930 (+1.2% WoW) purchase 5.7% (+0.2pp)
Ad spend, diagnosed

"Here's where the ad budget leaks."

Campaign, ad group and creative performance as seen through GA4 — landing page fit, not bid strategy. Full ceiling of what this can and can't show on the Ads page.

Campaign "Spring-Retarget" sends 61% of clicks to a page with the same checkout issue flagged above.

Creative set B converts at 2.4x creative set A on the same landing page — worth a budget shift.

Full deck — 18 slides

"Here's the whole case, presentation-ready."

Every mode above, combined into one deck built for defending a CRO budget line to people who weren't in the room for the analysis.

Executive summary Methodology Findings + evidence Roadmap Appendix
What we usually find

From 149 reports — three real, two typical

Client identities are withheld, but the numbers on the "real audit" cards are quoted exactly as they appeared in the delivered report — not smoothed into a round, illustrative figure.

Ads · real audit

Same paid campaign, two landing pages: £2.19 vs. £0.03 revenue per session — a 73x gap routing ~77,000 sessions/month to the losing one.

Search · real audit

The site's #1 and #2 searched terms have zero presence in navigation → the matching page converts at 27x the RPS of the category-browse path visitors get instead.

Geography · real audit

Revenue per user spans 30x across markets — the city carrying most sessions earns below the site average per user; ad budget still follows volume, not yield.

Pricing page

Annual-plan toggle defaults to monthly → estimated $40k/yr left on the table.

Popups

Exit-intent popup fires before the page has scrolled once → survey shows visitors find it "premature," not "annoying."

Why you can trust what it says

Built to be checked, not just believed

"AI wrote it" is a fair reason to be skeptical. Here's what stands between a raw model output and a report with your name on the send list.

Two agents, not one

One agent generates the analysis. A separate verification pass checks every claim against the source data before it ships.

Wilson confidence intervals

Rate comparisons use a Wilson interval, not a raw percentage — so a 2-of-9 sample doesn't get reported like a 200-of-900 one.

100-session floor

A segment under the session threshold doesn't get a confident-sounding claim attached to it. Small samples get labeled small.

Human review before send

A person reads every report before it reaches you. Not a rubber stamp — an actual pass by someone with CRO background.

Every number traces back

Findings are generated from a query against your actual data, not paraphrased from a general impression of "typical" sites.

35 built scenarios

Not a single generic prompt — a library of scenario-specific analysis paths refined against real reports, not a demo.

Not a mockup

brand blurred
Real click-density heatmap from a live client's product page, brand name blurred
One real heatmap, untouched

A real click-density map, from a live account

Brand blurred, numbers untouched — 490 sessions, 2,925 clicks, from a single-hero-product DTC accessories brand.

  • 1The product photo alone drew 20.1% of all clicks — visitors trying to zoom into a gallery that wasn't there.
  • 2An out-of-stock swatch still pulled 109 clicks (3.7%) — pure friction, no way to convert it.
  • 3Average scroll depth: 31.6%. Past the halfway point, engagement is close to zero.
See the full heatmap tool →
One tag, three tools

One snippet. Tests, surveys and heatmaps.

Most sites run three vendors for this — one for A/B tests, one for surveys, one for heatmaps — because those are usually three separate companies with three separate tags. Polaris ships all of it from a single script tag, on the same data as everything else here.

Experiments Surveys Heatmaps
<!-- add once, in <head> --> <script type="text/javascript" src="https://compass-optimizer.com/survey/3.js"></script>
Your data stays yours

Read-only access. Your account, not ours.

Polaris asks for Viewer access to your own GA4 and BigQuery — nothing more. The connection runs on your data, in your account. Full detail on the Security page.

Viewer access only

We request read access, never the ability to change your GA4 or BigQuery settings.

Never used for training

Your data produces your report. It doesn't get folded into any model training set.

Revoke anytime

One click in your own Google Account permissions ends the connection completely.

How to start

Five minutes, nothing to install

The first report needs no snippet on your site — only read access to data you already collect.

01

Give us Viewer access

Add our service account to your GA4 property as a Viewer. Five minutes, done by you, revocable anytime.

02

We run the full pipeline

Data pull, site walkthrough, analysis, generation, verification pass, human review — no self-serve black box.

03

Your report lands by email

Within a few business days, reviewed by a person — not "instantly," and we'd rather say that upfront.

Who's behind this

People, not a GPT wrapper

The analysis is grounded in CRO methodology that predates the AI layer entirely — evidence tiers, hypothesis frameworks, funnel and usability checklists refined across real audits. The model applies that methodology to your data; it didn't invent it.

35

built analysis scenarios

149

reports generated to date

7

report modes per analysis

Artem, Strategy & Client Relations at Polaris

Artem

Strategy & client relations

Konstantin, Engineering at Polaris

Konstantin

Engineering — the pipeline, the code, the leads

Viktoria, Content at Polaris

Viktoria

Content — video, voice, the blog

Honesty over polish

What Polaris won't do

Signals won't hand you a recommendation

When a GA4 metric crosses the threshold you set, or a page stops responding the way it should, Signals tells you exactly that — and stops there. That's a deliberate choice, not a missing feature: a monitoring system that always has an opinion is one you eventually stop trusting.

It won't guess without enough data

Below the session threshold, a segment gets labeled "not enough data yet" instead of a confident-sounding number. No claim ships without a query behind it.

It won't touch your site

Polaris reports what it finds. It doesn't auto-implement changes, push code, or edit your pages — every fix is a decision your team makes.

It won't claim data it doesn't have

Today that's GA4, BigQuery and Google Ads via GA4. If a question needs a source we're not connected to, the honest answer is "we can't see that yet" — not a guess dressed up as an answer.

Get started

See what your numbers mean — on your actual pages

One free audit. No snippet required. Viewer access to your GA4, five minutes of your time.

Reviewed by hand — expect your report within a few business days, not instantly.

Request received

We'll follow up by email with the Viewer-access steps and a timeline for your report.

Optional — skips the back-and-forth

Connect Google Analytics now

Give our service account read-only Viewer access to your GA4 property and we start on the analysis right away. Prefer not to? Skip it — we'll email you the manual access steps instead.

Where do I find these IDs?

Account ID

  1. In Google Analytics, click Admin (the gear icon, bottom left).
  2. In the Account column, click Account Settings.
  3. Copy the Account ID — a number like 123456789. It's also in the page URL, right after /#/a.

Property ID

  1. Same Admin page, in the Property column, click Property details (or Property Settings).
  2. Copy the Property ID — a number like 987654321.

Not the same as the G-XXXXXXX Measurement ID — that one's for the tracking snippet, we don't need it here.

Connected — we'll start on the analysis right away.

No problem — we'll email you the manual access steps instead.