Migrating to Fathom Analytics

By Lucas Brandao ยท Sรฃo Paulo ยท verified 2026-05-04 ยท edit on GitHub

Fathom is the destination for content sites, indie founders, and one-person teams who want a working tracker before lunch and a dashboard that fits on a phone screen. Cloud-only by design, six auto-events out of the box, EU data residency included on every plan, and annual billing that gives you two months free. This page is the cross-source map: where you are coming from determines which migration guide to follow, which auto-event mapper to use, and which reconciliation gotchas to expect. Read the source map first, then click into the matching pair page for the install.

From which source โ€” pick your starting line

Five common origin points and their dedicated pair pages.

Live ยท Pair page

Coming from GA4

The main path. Auto-event mapping covers around 6 of GA4's 120 typical events โ€” Fathom's six built-in events (pageview, outbound link, file download, scroll, form, button) are a deliberate subset, not a coverage gap. The events you "lose" are events that did not produce decisions on the GA4 dashboard either.

GA4 โ†’ Fathom โ†’
In queue

Coming from Universal Analytics

UA data processing stopped 2023-07-01 and access to reports was closed 2024-07-01. Historical-data export route, not a live cutover. Pull your UA export from BigQuery, shape it into Fathom's CSV import schema, and load. The live tracker step is a fresh install.

UA โ†’ Fathom (stub) โ†’
In queue

Coming from Mixpanel

The hardest case for Fathom. Mixpanel is event-first with rich property schemas; Fathom is page-first with six fixed events. Most teams keep Mixpanel for product analytics and add Fathom for marketing-page analytics in parallel.

Mixpanel โ†’ Fathom (stub) โ†’
In queue

Coming from Plausible

A common cross-cookieless move. Goals translate one-to-one. Behavioral differences are small; teams move for pricing (Fathom annual is comparable to Plausible annual at sub-100 K pageviews) or for the EU Isolation routing, which is included by default on all Fathom plans.

Plausible โ†’ Fathom (stub) โ†’
In queue

Coming from Simple Analytics

Niche but real. Simple Analytics and Fathom are positionally similar โ€” cookieless, content-site-focused, simple dashboard โ€” and the migration is mostly a tag swap. The reasons to move are price (Fathom annual billing is competitive) or Fathom's EU Isolation routing, included by default.

Simple Analytics โ†’ Fathom (stub) โ†’

If your source is none of those โ€” Adobe, Heap, Amplitude, Snowplow โ€” file an issue on GitHub. The pair page roster is built by request.

Fathom's structural choices

Three architectural commitments that define what Fathom is and is not. None are roadmap items; they are commitments the company has restated publicly multiple times.

Cloud-only, by design. Fathom does not ship a self-host edition. There has never been one, there is no plan to add one, and the founders have written about the decision in public โ€” the trade-off is operational simplicity for the customer and revenue predictability for the company. If your DPO requires self-host, this is the wrong destination; go to Plausible Community Edition or self-hosted Matomo.

No self-host, ever. This is worth stating twice. There is no community edition, no enterprise on-prem, no air-gapped variant. The cloud-only commitment is the product. A team evaluating Fathom against open-source alternatives should treat "we might self-host later" as out-of-scope; the answer to "can we self-host Fathom in 2027" is no.

EU Isolation included by default. Fathom is a Canadian company (Canada has an adequacy decision from the European Commission). All plans include EU Isolation โ€” EU-only data centers, EU data residency โ€” at no extra charge. There is no add-on tier to unlock it. If your DPO requires strict EU data residency, Fathom's default setup satisfies that requirement on every paid plan.

If those three constraints (no self-host, cloud-only, no self-hosted fallback) are deal-breakers, the rest of this page does not apply. Go to Plausible or Matomo instead.

Cloud tiers and annual billing

Fathom prices by pageview band with three tiers, EU data residency included on all plans. Annual billing gives 2 months free (~17% off monthly).

PlanMonthlyAnnualEU Isolation
Starter (100 K pageviews)$15/mo$150/year (~$12.50/mo)Included
Growth (1 M pageviews)$60/mo$600/year (~$50/mo)Included
Business (10 M pageviews)$200/mo$2,000/year (~$167/mo)Included

The annual discount is approximately 17% (2 months free) โ€” comparable to Plausible's annual offer. The pricing is flat-rate within each tier; there is no per-event overage above your tier limit until you cross into the next tier, at which point you are bumped automatically.

The math vs Plausible at 100 K pageviews. Fathom annual $150/year vs Plausible annual approximately $192/year ($16/mo ร— 12, or check current Plausible rates โ€” their 100 K tier is around $19/mo). Both include EU data residency. Fathom is modestly cheaper at this tier on an annual basis; the decision is on workflow fit rather than price.

The math vs Matomo Cloud. At 50 K visits, Matomo Starter is โ‚ฌ22/mo = roughly โ‚ฌ264/year. Fathom annual at the Starter tier is $150/year โ€” substantially cheaper, but Matomo includes plugins Fathom does not have (heatmaps, A/B testing, funnels). The price difference reflects the feature difference; pick on which features you actually use.

Annual billing is the right choice if you have run a successful parallel period and are confident committing to the tracker for a year. Monthly is appropriate during evaluation.

Standard migration playbook to Fathom

The five steps generalize across source trackers. Pair pages cover source-specific traps.

  1. Pick a tier. Tier choice is by pageview count (Starter โ‰ค100 K, Growth โ‰ค1 M, Business โ‰ค10 M). EU data residency is included on every plan โ€” no extra step required. Set the timezone on first dashboard load โ€” changing it later does not migrate historical buckets.
  2. Install the JS tag. One line: <script src="https://cdn.usefathom.com/script.js" data-site="ABCDEFGH" defer></script>. The site code is generated when you create the property. The defer is non-negotiable. Subdomain tracking is opt-in via a data-spa attribute for SPAs and a separate domain entry in the dashboard for sibling domains.
  3. Map the six auto-events to your existing event taxonomy. The Fathom JS API exposes fathom.trackEvent('Event Name') for custom Goals beyond the six auto-events. The Event Mapping Wizard outputs the Goal-name list directly from a GA4 events export. Most teams reduce 30+ GA4 events to 6-10 Fathom Goals during this step, and the reduction is healthy โ€” the unmapped events were not driving decisions.
  4. CSV import for historical data. Fathom has a CSV importer that takes daily-aggregated pageview, referrer, and country data and writes it into the destination dashboard's history. Pull a daily aggregation from your source (GA4 BigQuery, UA archive, Plausible API export) and load it. The granularity is day-level, not session-level โ€” you will not get user-journey reports out of imported history, only volume trends.
  5. Run a two-week parallel period and cut over. Tolerance bands: pageviews ยฑ2% green, cookieless inflation in the 5โ€“12% range on bannered GA4 sources is yellow and expected (observed estimate โ€” varies by banner acceptance rate). The methodology page documents the protocol. Cutover is one commit (remove source tracker), Wednesday morning. Annual-prepay billing kicks in on the first day after the parallel period if you committed at signup.

Engineering hours: 6-10 from a GA4 source, 4-8 from a Plausible source, 12-18 from a Mixpanel source. Calendar time: two weeks of parallel run regardless of starting point.

If Fathom's profile (cloud-only, no self-host ever, EU data residency included on all plans) fits your requirements, this is the right destination. If you need self-host, look at Plausible or Matomo; if you need GA4 feature parity, only Matomo qualifies.

Who should look at a different destination

Fathom is built for a specific use case: content sites, portfolios, SaaS marketing pages, and indie founder projects where you want a trustworthy number without a cookie banner or a maintenance contract. Outside that profile, the trade-offs stop working in your favor.

If you need thisFathom verdictBetter target
Content site, simple dashboard, no cookie bannerFathom's exact use caseโ€”
Annual billing (2 months free)~17% off monthly; comparable to Plausible annualโ€”
EU data residency (German DPO compliance)EU Isolation included on all plans, no add-onโ€”
Self-hostNever available, by designPlausible CE or Matomo
Funnel analysis, multi-touch attributionNot availableMatomo
Session replay or A/B testingNot availableMatomo
EU residency without extra tiersEU Isolation included by default on all plansโ€”

The pricing comparison at 100 K pageviews: Fathom annual is $150/year, EU Isolation included. Plausible Cloud annual is approximately $192/year at 100 K (check current Plausible rates). Both include EU data residency. The difference is modest; the real decision is feature fit โ€” Fathom's six built-in events vs Plausible's Goals API and the depth of reporting each gives you. Use the Migration Effort Estimator to compare total migration cost across both paths before deciding.

FAQ

No self-host, ever โ€” really?
Yes. The founders have written about it in public; the cloud-only commitment is part of the product positioning, not a near-term gap. If self-host is a hard requirement, Fathom is not on your shortlist. Go to Plausible CE or self-hosted Matomo.
Does Fathom include EU data residency?
Yes, on every plan. EU Isolation โ€” all traffic routed through EU-only data centers, all data stored in the EU โ€” is included by default, not a paid add-on. Fathom is a Canadian company (Canada has an EU adequacy decision), but the EU Isolation routing is the default infrastructure for all customers. If your DPO requires strict "data stored in the EU" compliance, the default Fathom plan satisfies that without any tier upgrade.
Annual vs monthly billing?
Annual billing gives approximately 2 months free (~17% off monthly) across every tier. If you are confident enough to use the tracker for a year, take the annual option; the tracker has been stable for several years and the company is profitable. If you are evaluating against alternatives, take monthly for the parallel-run period and switch to annual at cutover.
Can I switch to other tools later?
Yes, mechanically. Export your data via the Fathom API to CSV, install the new tracker, and run a parallel period. Fathom does not lock you in โ€” there is no proprietary export format, no opaque dashboard data, no contractual lock. The most common switch-out path is Fathom โ†’ Plausible (cheaper at scale) or Fathom โ†’ Matomo (more features); both are smooth.
LB
Written by
Lucas Brandao
Analytics engineer ยท Sรฃo Paulo ยท 11 years in data
Two Berlin SaaS migrations behind me. I write migrateanalytics.com as a public utility โ€” no product, no affiliate, no consulting. All measurements are reproducible; raw data lives on GitHub.
v1 ยท 2026-05-04 ยท first publication. v2 ยท 2026-06-12 ยท added destination fit table, fixed title. ยท edit on GitHub โ†’