Start with a layered definition of source
Enterprise B2B pipeline reports become unreliable when “source” is treated as one field with one truth. At minimum, separate four layers:
- Origin: where the person or account first became known.
- Interaction: the campaign, page, event, partner or conversation that created the recorded response.
- Qualification: the evidence and owner that accepted the record for a defined next step.
- Pipeline contribution: the interaction or set of interactions the company uses to explain opportunity creation or progression.
These layers can be related without being identical. A first-touch origin may be unknown, a recent interaction may be a partner referral, qualification may happen offline, and pipeline contribution may use a multi-touch policy. A defensible report shows which layer it is reporting and which records remain unresolved.
Freeze the report contract
Before diagnosing a number, write its definition: population, stage, cohort entry date, maturity window, currency or value scope, included costs, excluded records, source priority, unknown handling and refresh time. Name the decision the report should change and the owner who can change it.
The NIST Information Quality Standards are a useful context for recording provenance, utility, objectivity, integrity and limitations; they do not certify a revenue or attribution report.
Use a source dictionary with the exact field name, allowed values, system of record, write rule, correction owner, effective date and version. Keep raw source values alongside normalized values. If a rule changes, report the version rather than restating all historical records under the new interpretation.
Google Ads distinguishes qualified leads and converted leads using offline CRM or internal-system evidence. That distinction is a helpful diagnostic boundary: a platform conversion is not automatically an accepted lead, an opportunity, or a closed deal.
Symptom: platform conversions rise but accepted pipeline falls
Possible causes include a change in conversion action, duplicate events, broader targeting, slower sales response, a broken CRM import, a new form route, or a mismatch between platform “lead” and the company’s acceptance rule.
Request evidence in this order:
- conversion action definition and change history;
- event IDs, timestamps and deduplication logs;
- raw form or call records matched to CRM IDs;
- acceptance, rejection and no-contact reasons;
- response time and queue capacity by cohort;
- opportunity maturity and source completeness.
Run a false-positive test: take a sample of platform conversions and trace each to a unique CRM record and an owner decision. If the sample cannot be matched, do not explain the fall as “lead quality” until the identity or integration break is separated from audience quality.
Corrective actions may include restoring a narrower conversion event, repairing the deduplication key, adding a failed-import queue, changing the acceptance field, or lowering release volume until response capacity recovers. Do not delete the historical platform events to make the trend look consistent.
Symptom: most pipeline is “unknown” or “direct”
Unknown can mean the source was never captured, was overwritten, could not be matched, or was deliberately withheld. Direct can mean typed URL, untagged link, privacy protection, a referrer loss, a sales-created record, or a normalization rule that collapsed several values.
Test the path from first known interaction to opportunity:
- was the source parameter present at entry?
- did the landing page or form preserve it?
- did the CRM create one record or several?
- did a merge or conversion overwrite the original value?
- did a manual owner change the source without a reason?
- did an offline event arrive after the reporting window?
Do not assign a missing source from the opportunity owner, account industry or page title. Mark it unresolved and show a confidence or evidence state. The report should help the team repair capture, not manufacture a complete pie chart.
Symptom: one channel appears to win every quarter
Investigate source priority, last-touch overwrites, account-level versus contact-level joins, campaign naming, opportunity creation rules, and cohort maturity. A channel that receives credit late in the path may be valuable, but the report should not imply that it created demand if the contract does not support that conclusion.
If campaign parameters are used, apply one governed naming scheme. Google Analytics’ campaign URL guidance explains why inconsistent values fragment reporting. Compare raw and normalized values, then inspect the share of unknown and changed records after each normalization release.
Run a holdout or comparison where possible: compare a cohort exposed to the reporting rule with a cohort that can be reconstructed independently from CRM history. If the two views disagree, preserve both and document the difference until the source contract is repaired.
Symptom: account and contact reports disagree
Enterprise deals often involve multiple contacts and long-lived accounts. A contact source, account origin, opportunity source and influenced interaction can answer different questions. A report that joins them on an email address may duplicate pipeline or assign a contact’s channel to an account without evidence.
Use stable identifiers and a reconciliation register. For every opportunity, record the account ID, opportunity ID, related contacts, source records, merge history, owner decision and last verified time. Test new, converted, duplicate, partner-referred and no-contact records. Reconcile counts at each join and show where one-to-many relationships are intentionally aggregated.
Salesforce’s lead tracking guidance illustrates that a lead record can carry activities and later become an opportunity. It is product guidance, not a universal data model. The diagnostic requirement is to preserve the company’s own identity and conversion rules.
Symptom: late cohorts look worse than old cohorts
Check maturity before changing source allocation. An enterprise cohort may have many open or uncontacted records while a mature cohort has completed qualification and opportunity stages. Compare entry date, stage age, response time, opportunity age, closed outcomes and unknown states.
Use labels such as immature, partially mature, mature, and not comparable. Do not call a young source inefficient because revenue has not had time to appear. Conversely, do not call an old source efficient if it excludes response work, delivery effort, partner fees or unresolved refunds.
Build the evidence-to-action matrix
For each symptom, record the first boundary to test, the false-positive check, the accountable owner and the smallest reversible action. Examples:
- Missing source at form entry: inspect parameters and server capture; test a tagged submission; repair the field contract.
- Source present but absent in CRM: inspect mapping and retries; replay one controlled record; restore the prior mapping or quarantine new records.
- High platform leads, low acceptance: inspect conversion definition and acceptance reasons; trace a sample; change the optimization event or response capacity.
- Duplicated pipeline: inspect identity joins and merge history; reconcile a sample; fix the key and rebuild the report version.
- Channel credit changes after a release: compare raw and normalized values; run the old and new rule side by side; publish both versions with a change note.
- Young cohort underperforms: compare maturity and stage age; wait for the defined window or label the cohort immature; do not reallocate on a false comparison.
The action should change one rule or boundary at a time. Keep a baseline report and a rollback version so a correction can be checked without losing the prior view.
Use the Pipeline Source Diagnostic Tree
Maintain one record per issue with:
- Symptom and metric: exact number, population and time window.
- Layer: origin, interaction, qualification or pipeline contribution.
- First broken boundary: where evidence stops matching the contract.
- Evidence requested: logs, IDs, records, definitions and change history.
- False-positive test: the sample or comparison that could disprove the first theory.
- Owner and severity: data, marketing, sales, RevOps, vendor or shared.
- Corrective action: smallest reversible change and guardrail.
- Maturity rule: when the result can be judged.
- Version and rollback: prior report, mapping, event or source policy.
The diagnostic is complete when the report states what is known, what is not, which boundary is being repaired, and what evidence would change the conclusion. Keep indexable: false until editorial, overlap, source, privacy, specialist and canonical reviews are complete. Attribution becomes more useful when it is honest about uncertainty and precise about the next repair.
How did this article land?
Choose one reaction. You can change it anytime.