Start by defining what counts as a conversion—form fills, purchases, phone calls, or qualified leads. Load at least 90 days of historical data showing every touchpoint a user hit before converting: organic landing page, paid click, email open, social referral, direct visit. You need UTM parameters on all campaigns and server-side tracking for accuracy; client-side alone misses 15–30% of events due to ad blockers and iOS restrictions. Next, choose your credit distribution rule. Last-click gives 100% to the final touchpoint and is simple but ignores awareness channels like organic content. First-click credits the entry point, rewarding top-of-funnel but ignoring closers. Linear splits credit evenly across all touches. Time-decay weights recent interactions more heavily. Data-driven models use machine learning to assign credit based on actual conversion patterns, but you need thousands of conversions monthly for statistical significance—most small businesses don't qualify yet. Implement the model in GA4 under Advertising > Attribution, or build a custom solution in your CRM by tagging every interaction with timestamp and source. Export conversion paths and apply your weighting formula in a spreadsheet or BI tool like Looker Studio. Cross-reference attributed revenue against actual closed deals in your sales system; if SEO shows 40% attribution but only 10% of revenue has organic as the lead source in your CRM, your tracking or model is broken. Ottawa SEO runs position-based models (40% first touch, 40% last touch, 20% split among middle touches) for most clients because they balance awareness and conversion credit without needing massive data volume. We validate monthly by comparing attributed pipeline to CRM opportunity sources and adjust weights if paid channels systematically under- or over-report. Expect to iterate for 60–90 days before the model stabilizes and informs budget decisions reliably.