Who became a new customer?
Define new versus repeat customers, deduplicate records, and compare the same periods. A count of new contacts is not automatically customer growth.
Connect identifiable marketing touchpoints to contact and deal records. Compare model assumptions and keep unattributed outcomes visible instead of forcing every sale into a channel.
Illustrative S$1,200 won deal; synthetic data. The production engine supports five rules-based models. This demonstration is not a live customer report.
Define new versus repeat customers, deduplicate records, and compare the same periods. A count of new contacts is not automatically customer growth.
Separate won deals, billed amounts and collected payments. Refunds, currency, taxes and recurring revenue need explicit treatment. Today’s engine uses recorded deal values.
Credit depends on identifiers, lookback windows, coverage and model choice. It does not establish causation; incremental lift needs a separate experiment.
Consent restrictions, private DMs, anonymous search, offline referrals and missing CRM records leave gaps. Google Search Console data is aggregate; it does not identify an individual searcher. WhatsApp identity does not reveal an earlier campaign unless a reliable link is available.
Deterministic, permissioned identity matching is the intended default. Server-side tracking must respect user choices; it must not bypass consent or privacy protections. Markov and Shapley models are planned and would still allocate credit—not prove “true” contribution.
Bring one client, one campaign and a measurable business outcome. Start with the data you can verify—not another promise of perfect attribution.