Core Principles
Core Principles
Section titled “Core Principles”Note: These are fundamental truths and rules. For step-by-step investigation processes, see Thinking Flows.
Monitoring & Observability
Section titled “Monitoring & Observability”Principle: Self-Sufficient Monitoring
Section titled “Principle: Self-Sufficient Monitoring”Don’t wait for notifications or alerts to tell you what changed. Observe and investigate proactively.
- You should never be asking “what landing pages should I track?” - the system should show you ALL landing pages automatically
- If something changes in user behavior or new pages get traffic, you should discover it yourself through observation
- Being self-sufficient in data analysis is critical - don’t depend on others to tell you what to look at
Principle: Self-Service Event Discovery
Section titled “Principle: Self-Service Event Discovery”Never ask developers “what events do we have?” - explore and discover them yourself.
- The tool should let you see all events by exploring user activity
- You don’t need documentation of every event - just look at real user sessions
- Understanding the funnel comes from observing actual event sequences, not from spec documents
- If you need to ask what data exists, your analytics tool is failing you
Principle: Comprehensive Data Collection
Section titled “Principle: Comprehensive Data Collection”Track everything by default, not just what you think matters.
- Don’t pre-filter what you think is important - capture all user entry points
- This ensures you catch unexpected patterns and changes
- Example: Tracking landing pages by path name should include not just designed landing pages, but any page users land on (/terms, /about-us, /how-it-works, etc.)
Data Analysis
Section titled “Data Analysis”Principle: Discover, Don’t Define
Section titled “Principle: Discover, Don’t Define”Let the data show you what’s happening rather than only looking at predefined metrics.
- Systems that auto-discover patterns (like all landing pages) are superior to systems where you manually define what to track
- You’ll catch marketing changes, new campaigns, or unexpected traffic patterns without manual setup
- This reduces blind spots in your monitoring
Principle: Common Sense Over Complexity
Section titled “Principle: Common Sense Over Complexity”Marketing analytics is not rocket science. Apply common sense.
- Don’t overcomplicate analysis with complex frameworks or methodologies
- If something seems logical to check, check it
- Trust your intuition about what data would be useful
- The best insights often come from asking obvious questions that others overlook
Principle: Trust Your Expectations, Then Verify
Section titled “Principle: Trust Your Expectations, Then Verify”You know what data should exist based on your domain knowledge. Check if it’s there.
- If you’re running Facebook ads, you expect to see ad IDs, campaign IDs, referrer data
- If users interact with landing pages, you expect CTA click events
- Use your expectations to validate data quality - if expected data is missing, something’s wrong
- Finding what you expect confirms the system is working; finding what you don’t expect reveals gaps or opportunities
Learning & Exploration
Section titled “Learning & Exploration”Principle: Exploration-Driven Learning
Section titled “Principle: Exploration-Driven Learning”Discover features by clicking around and exploring, not by studying documentation.
- You don’t need YouTube tutorials or manuals to start analyzing data
- Start with a need (“I want to see what users are doing”) and explore the tool to find how
- Good tools enable natural discovery through intuitive UI
- Learning by doing > learning by reading
- The tool should support your curiosity, not require training
Principle: Follow the Natural Workflow
Section titled “Principle: Follow the Natural Workflow”Start broad, then drill down into specifics based on what you find.
- Begin with high-level views (all landing pages)
- Identify patterns or interesting data points
- Click through to drill down (individual users, sessions, recordings)
- Each layer reveals more detail naturally
- The workflow should feel obvious, not learned
Principle: Events → Funnel → Questions
Section titled “Principle: Events → Funnel → Questions”After discovering events, immediately build funnels to understand the flow and spot problems.
- Once you see what events exist, create funnels with them
- Don’t wait for someone to tell you “we have a drop-off problem”
- The funnel visualization will scream the problems at you
- Start simple: landing page → first key event → next event, etc.
- Anomalies are obvious when visualized (90% drop-off? That’s a massive red flag)
Principle: Let Anomalies Jump Out
Section titled “Principle: Let Anomalies Jump Out”Don’t hunt for problems. Build dashboards and let problems reveal themselves.
- When you see 90% drop-off between landing page and first screen, that’s not subtle - it’s screaming
- Trust your instincts: if a number looks wrong, it probably is
- Don’t need statistical analysis for obvious issues
- The data will tell you where to dig deeper
- Your job is to set up visibility, then observe
Principle: Never Accept Numbers as Abstract - Drill Down to People
Section titled “Principle: Never Accept Numbers as Abstract - Drill Down to People”Numbers aren’t mysteries. Every aggregate metric represents real users you can investigate.
- See 55,000 landing page views dropping to 5,000? Don’t just theorize - click through and see WHO those 50,000 people are
- Every person in the drop-off has:
- Session recordings you can watch
- UTM parameters showing their traffic source
- Campaign IDs showing which ad they came from
- Full property data to understand context
- Aggregate metrics are starting points, not conclusions
- The richness is in the individual-level detail
- Don’t accept “we have a bounce problem” - understand which campaigns, which sources, which user segments are bouncing
Principle: Context is Everything
Section titled “Principle: Context is Everything”Raw numbers mean nothing without context. Every data point should have rich metadata.
- Not just “user bounced” - but which campaign, which landing page variant, which UTM term, which ad set
- This context lets you pattern-match across segments
- You can discover “all traffic from campaign X bounces” or “users with UTM term Y convert better”
- Without this context, you’re just guessing
- The tool should make context easily accessible, not buried
Principle: Traffic Quality Persists Through the Funnel
Section titled “Principle: Traffic Quality Persists Through the Funnel”Good traffic converts well at every step. Bad traffic struggles everywhere.
- If a campaign drives good traffic, it will outperform at step 1, step 2, step 3, etc.
- If a campaign drives bad traffic, it will underperform at every stage
- This is an audience quality issue, not a page/UX issue
- When different traffic sources show different conversion rates on the SAME page, it’s about who you’re targeting, not what you built
Principle: Isolate Variables to Find Root Cause
Section titled “Principle: Isolate Variables to Find Root Cause”When investigating problems, test one variable at a time.
- Is it the landing page or the traffic? Compare different campaigns on SAME landing page, then same campaign on DIFFERENT landing pages
- If bad traffic performs poorly everywhere (all landing pages), it’s a targeting/audience problem
- If traffic performs well on page A but poorly on page B, it’s a page problem
- If performance differs on the same page based on traffic source, it’s definitely an audience issue
- Most problems are “usually both” - but you need to isolate to know which to fix first
Attribution & Tracking
Section titled “Attribution & Tracking”Principle: End-to-End Attribution is Non-Negotiable
Section titled “Principle: End-to-End Attribution is Non-Negotiable”Every sale must trace back to the initial landing UTM parameters. Period. No excuses.
- Sales are not mysterious - behind every sale is a user who landed with specific UTM parameters
- You MUST persist UTM parameters from landing through the entire funnel to conversion
- This is tool-agnostic: PostHog, Google Analytics, Mixpanel, whatever - they all can do this
- This is trivial to implement: one day of developer work, maximum
- There is no technical excuse for not having this
- Without this, you’re flying blind on what’s working
Principle: The Attribution Chain is Sacred
Section titled “Principle: The Attribution Chain is Sacred”Landing UTM → Funnel Journey → Lead Capture (Email/Phone) → Sale
- Step 1: User lands with UTM parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content, campaign_id, ad_id, etc.)
- Step 2: User goes through funnel (could be 1 technology or 10 technologies - doesn’t matter)
- Step 3: User provides PII (email/phone) - becomes a lead
- Step 4: Lead converts to sale/customer
At Step 3, you have:
- A specific person (email/phone)
- Their initial landing UTM parameters (from Step 1)
- This creates the attribution: “This lead came from campaign X, ad Y, landing page Z”
This attribution must be maintained through to sale.
Principle: PII is the Attribution Anchor
Section titled “Principle: PII is the Attribution Anchor”Once you have email/phone, you can connect everything before and after.
- Before PII: Anonymous user with session tracking and UTM parameters
- After PII: Known lead/customer with identifiable behavior
- PII (email/phone) is the bridge that connects anonymous → identified
- Once connected, you know: “Customer john@example.com came from Facebook campaign 12023, landing page discount-01, converted in 3 days, LTV $500”
Principle: No System Limitations Excuse
Section titled “Principle: No System Limitations Excuse”Every modern analytics/CRM system can do end-to-end attribution.
- If your system can’t do this, the system is inadequate
- If your team says “we can’t track this,” they’re wrong or lazy
- This is not a complex technical problem - it’s basic tracking
- One day of setup, then it works forever
- The data exists - you just need to connect the dots
Principle: First-Touch Attribution is Sacred
Section titled “Principle: First-Touch Attribution is Sacred”Always attribute sales to the original traffic source, not the last click.
- User lands from Facebook ad → provide email → that’s first-touch
- Days/weeks later they’re retargeted via SMS/email → these are nurture touches
- Final conversion might be from email click, SMS click, or direct visit
- Attribution goes to original Facebook campaign (first-touch)
- Without the original ad, they wouldn’t be in your retargeting list
- Retargeting is amplification, not acquisition
Principle: Know What You Want to Check
Section titled “Principle: Know What You Want to Check”Having data isn’t magical. Knowing what to check is the skill.
- Tools (PostHog, Moon, GA, etc.) store all the connections
- The “magic” is knowing to check: Sales → Leads (via email) → Original UTM parameters
- Not about advanced tools, but about understanding the data structure
- When you know what you want to check, the answer is instant (if data is properly connected)
- Most people don’t struggle with tools - they struggle with knowing what questions to ask
Principle: Understand Your Event Footprints (Schema)
Section titled “Principle: Understand Your Event Footprints (Schema)”Every marketing event has a schema with parameters. These are your attribution Bible.
- If you don’t understand the footprints in your data, you’re a bad hunter
- Every event has parameters: utm_source, campaign_id, affid, ad_id, etc.
- These parameters are the ONLY way you see things
- Without reading parameters, you’ll misattribute (thinking SMS sale = Google Ads sale)
- Learn your schema once: Notice what IDs exist (PostHog distinct_id), what parameters you capture (affid, campaign_id), then use them
- No meetings needed: See PostHog tracking exists → Use it. See affid exists → Segment by it. Simple.
Principle: Parameters Reveal the Truth
Section titled “Principle: Parameters Reveal the Truth”Surface-level source labels lie. Parameters tell the real story.
- Source says “Google Ads” but parameters show SMS tracking codes → It’s SMS retargeting
- Source says “Direct” but parameters show original Facebook campaign → It’s retargeting
- Source says “Email” but parameters show campaign_id from paid ad → Attribute to the paid ad
- Always read the parameters, not just the source label
- Parameters are the definitive record of how user arrived
Principle: Never Trust Charts Without Checking Raw Events
Section titled “Principle: Never Trust Charts Without Checking Raw Events”Charts are abstractions. Raw events are reality.
- Never look at charts without knowing which raw events formed those charts
- Always check a few events manually to see what’s actually happening
- Go through the funnel yourself, trigger events, see how they appear in the system
- Understand how each event comes through: which parameters, from where, in what shape
- Only after understanding raw events can you trust the aggregated charts
Principle: Parameter Schemas Evolve - Track the Changes
Section titled “Principle: Parameter Schemas Evolve - Track the Changes”Your event schema changes over time. This evolution tells a story.
- Change the funnel → Parameters change
- Change landing pages → New tracking codes appear
- Change payment system → Content IDs format changes
- Parameters shift shape: Arrays become numbers, fields disappear, new ones appear
- Evolution of schema = history of system changes
- Track these patterns over time to understand what changed when
- The better you understand schema evolution, the better hunter you are
Principle: Raw Data is Not “Developer Shit” - It’s Your Job
Section titled “Principle: Raw Data is Not “Developer Shit” - It’s Your Job”Understanding ugly formatted data is core marketing analytics work, not technical work.
- Those “ugly spreadsheets” with IDs, affids, UTMs are THE CORE
- Everything else (charts, dashboards, reports) is just a consequence
- If you understand the raw parameters, you don’t need anything else
- This is not rocket science, not developer territory - this is marketing analytics
- Being comfortable with JSON, parameters, raw event data is fundamental
- Don’t delegate this to developers - own it yourself
Principle: Use ChatGPT/Google for Unknown Parameters (1 Minute Research)
Section titled “Principle: Use ChatGPT/Google for Unknown Parameters (1 Minute Research)”Don’t know what a parameter means? Look it up. Takes 1 minute.
- See
gtm-msr.appspot.com/render? Google it → Google Tag Manager checking traffic - See
_glparameter? ChatGPT it → Google linker parameter for cross-domain tracking - See
fbclid? Look it up → Facebook Click ID - Every day you’ll encounter unknown parameters - just research them
- Build your parameter vocabulary over time
- No shame in not knowing - shame is in not looking it up
Data Validation & Cross-Comparison
Section titled “Data Validation & Cross-Comparison”Principle: Never Trust a Single System - Always Cross-Validate
Section titled “Principle: Never Trust a Single System - Always Cross-Validate”Never make decisions based on one chart, one system, one source. Always cross-compare.
- This is not marketing-specific - it’s how data works, period
- Single system view = blind spots, biases, tracking limitations
- Always compare: System A vs System B vs System C
- Discrepancies tell you about system limitations, not necessarily about reality
- Cross-validation is mandatory, not optional
Principle: Your Attribution System is Source of Truth, Not Ad Platforms
Section titled “Principle: Your Attribution System is Source of Truth, Not Ad Platforms”Ad platforms (Facebook, Google) undercount due to consent/tracking limitations. Your system sees more.
- Facebook Ads dashboard shows X conversions
- Your system (PostHog, Moon, billing) shows Y conversions (Y > X)
- Your system is more accurate because:
- No consent tracking limitations (first-party data)
- No ad blocker issues
- Server-side tracking persists longer
- You have the actual transaction data
- Use your system as source of truth for decision-making
- Use ad platform data to understand the tracking gap
Principle: Billing is the Ultimate Source of Truth
Section titled “Principle: Billing is the Ultimate Source of Truth”When systems disagree, billing system wins. Money doesn’t lie.
- Marketing system says 100 sales
- Ad platform says 80 sales
- Billing system says 95 sales
- Billing is correct - these are actual transactions with money exchanged
- If marketing system shows more than billing → Overcounting (duplicate events, test transactions)
- If marketing system shows less than billing → Undercounting (tracking broken)
- Always reconcile marketing data with billing data
Principle: Understand and Adjust for Tracking Limitations
Section titled “Principle: Understand and Adjust for Tracking Limitations”Ad platforms have consent limitations. Factor this into your decisions.
- Facebook requires user consent for tracking (GDPR, iOS privacy)
- Your system doesn’t require consent (first-party tracking)
- Facebook might show 20% fewer conversions than reality
- Don’t panic and stop campaigns when Facebook shows low conversions
- Check your attribution system first
- Adjust/scale campaigns based on real data, with awareness of platform undercounting
Principle: Unattributed Sales Are Normal (5-20%)
Section titled “Principle: Unattributed Sales Are Normal (5-20%)”Not all sales will have marketing attribution. This is expected.
- Marketing shows 100 sales, Billing shows 120 sales → 20 unattributed (16.7%)
- Unattributed sales happen: Direct calls, cookie clearing, device switching, tracking failures
- 5-20% unattributed is normal and acceptable
- 20-30% is high but manageable
-
30% means tracking is significantly broken
- Create “no-affid” / “unattributed” category for these sales
- Adjust marketing ROAS calculations for unattributed percentage
- Track this percentage over time - if it spikes, investigate
Principle: Balance Micro and Macro Analysis
Section titled “Principle: Balance Micro and Macro Analysis”You need both detailed event analysis and high-level system comparisons.
- Micro: Individual event footprints, parameters, user journeys
- Macro: System totals (100 vs 110 vs 120), gap percentages, trend lines
- Micro without macro = Missing big picture (50% of sales untracked and you don’t know)
- Macro without micro = Can’t fix problems (know there’s a gap, don’t know why)
- Daily: Check both levels (macro totals + spot check 5-10 events)
- Weekly: Full reconciliation + deep dive if gaps changed
- Always be cautious about both perspectives
Meta-Organization
Section titled “Meta-Organization”As we document insights:
- New Principle: Create a new section
- Addition to Existing: Add subsections or bullets under existing principle
- Example: Add to the examples section with reference back to the principle