For indie hackers, SaaS founders, app builders and growth-minded technical operators.
Understand what actually drives growth.
Analytics best practices for acquisition, revenue, retention and traffic quality, explained through real data implementations, not toy examples.
- See how real products model acquisition, revenue, engagement and retention.
- Learn the metrics, assumptions and mistakes that change the answer.
- Go as deep as you want, from a five-minute explanation to the SQL behind it.
Questions these guides answer
How do you calculate order revenue without double-counting it?Avoiding revenue fanout when joining orders to order itemsRevenueAre new visitors actually coming back?How this LookML project separates new and returning visitorsRetentionAcquisitionHow can you spot suspicious or low-quality traffic?Using user agents to flag non-browser ad impressionsAcquisitionWhy do totals go up after a join?Preventing join fanout by declaring every relationshipBest practicesRevenueWhich acquisition channels bring engaged visitors?How this LookML project measures acquisition qualityAcquisitionWhy do two reports disagree on the same metric?Filters that quietly change what a metric meansBest practicesAcquisitionRetention
Browse by topic
Acquisition and traffic quality 7 guidesWhich channels bring people who stay, and how much of your traffic is real. These guides show how real products measure engagement by channel and flag low-quality traffic.
- Are new visitors actually coming back?
- How can you spot suspicious or low-quality traffic?
- Which acquisition channels bring engaged visitors?
- How do you calculate order revenue without double-counting it?
- Why do totals go up after a join?
- How should upgrades, downgrades and renewals be modeled?
- Are new visitors actually coming back?
- Why do two reports disagree on the same metric?
- How should upgrades, downgrades and renewals be modeled?
- Why do totals go up after a join?
- Why do two reports disagree on the same metric?
- Can you divide clicks by impressions from different tables?
Best practices for any stack
- Preventing join fanout by declaring every relationshipWhy do totals go up after a join?
- Filters that quietly change what a metric meansWhy do two reports disagree on the same metric?
- Calculating CTR from separate impression and click tablesCan you divide clicks by impressions from different tables?
- Checking the primary key before you trust a countWhat is this count actually counting?
- Why parsing ids out of strings at query time is riskyCan you trust an id extracted from a string?
- Catching missing tables and stale references before a dashboard breaksWhy does a model look fine until someone runs it?
Where the examples come from
Two real analytics projects, decoded file by file. Every guide links to the lines it is based on.
Common tools around these models
Tools that models like these are commonly built on, read from or replaced by. Not clients, partners or endorsements. Logos are trademarks of their owners.
Snowflake DB
AWS
Looker
Heap Analytics
Mode Analytics
Get dbt
Google Cloud
Metabase
Talend
Google BigQuery
Tableau
Fastly
Amplitude
Panoply.io
