A Toronto logistics-software company paid for traffic that arrived and left. Analytics said the demo form converted at 9%. Sales said they saw four demos a month.
Both teams were right about something, and every meeting started with the argument.
- Find which number is wrongThe conversion event fired when the button was clicked, before validation. Every failed submit counted as a lead.
- Fix the measurement firstEngineers moved the event to the confirmed server response and sent each lead to the CRM with its source, so marketing and sales count the same rows.
- Then fix the pageSession recordings showed visitors hunting for price. The pricing page now shows ranges, and the demo form asks four questions instead of eleven.
- A person calls each testEach change ran as an A/B test with its sample size agreed up front, and the head of marketing called the result.
submitButton.addEventListener("click", () => { track("demo_request");});form.addEventListener("submit", async (event) => { event.preventDefault(); const res = await submitDemo(new FormData(form)); if (res.ok) track("demo_request", { lead_id: res.leadId });});- Analytics auditdemo_request fired 2,712 times in 30 days. The CRM received 118 leads.
- EngineerThe event now fires on a confirmed server response and carries the CRM lead ID, so both systems count the same leads.
- Your head of marketingApproved, and asked for the old figures to be annotated in past reports.