# Marketing attribution software: what decides the choice

Compare attribution models, journey data and export limits before choosing marketing attribution software.

Canonical page: https://quillwell.com/guides/marketing-attribution-software/
Updated 2026-10-31
Publisher: Quillwell Guides (https://quillwell.com/guides/about/). Editorial standards: https://quillwell.com/guides/editorial/

## The short answer

- Choose credit allocation when you need a consistent rule for dividing a recorded outcome among touches.
- If you need to reconstruct a journey, test identity matching and missing events before relying on the model.
- If you need incremental lift, plan a causal test; attribution credit alone cannot answer that question.
- Archive closed-period reports and test the export before disconnecting a source.

## Choose the question before the model

Start with the decision the report must support. We compare documentation from Dreamdata, HockeyStack and Ruler Analytics. Their tools enter the decision at different points; the right workflow depends on the question and the data you can supply.

Credit allocation applies a rule to an outcome already in the data. [Dreamdata’s model overview](https://docs.dreamdata.io/article/tycc6odb2v-attribution-model) describes different allocation rules, including custom models for Enterprise. Choose a rule your team can explain, then keep it consistent when comparing periods.

Journey reconstruction asks which events belong to the same buying process. You need to inspect the events and the identity links behind the report before deciding whether a channel appears in the journey. A model cannot allocate credit to a touch that never entered the record.

Incrementality asks what changed because of an intervention. A credit allocation alone cannot show that lift. Design a causal test for the decision you need to make, and treat the attribution report as a description of recorded activity.

For example, suppose a lead has touches from two campaigns. [Dreamdata’s explanation of influence](https://docs.dreamdata.io/article/hgzsb56i8k-influenced-vs-attributable-leads-and-value) allows that lead to appear in both campaigns’ influenced totals, while attributed credit is divided by the chosen model. Adding the influence totals would count that lead twice; neither total shows causal lift.

## Test what reaches the journey

Inspect how a touch becomes an event and how an event becomes part of an account journey. Keep observed events separate from inferred or aggregated engagement when you review a report.

[HockeyStack’s tracking guide](https://docs.hockeystack.com/technical-details/tracking/how-does-tracking-work) says its script collects interactions and form emails, along with device data. Its default identifiers do not use cookies, yet its consent section says declining cookies disables website tracking. Include both consent outcomes in your trial and record what reaches the report.

[Dreamdata’s LinkedIn Ads guide](https://docs.dreamdata.io/article/dx494qbfte-linked-in-ads-integration) describes company engagement in aggregated rolling windows. Low-volume metrics can be suppressed, and historic event dates may be approximated across the retrieval period. Treat that company-level record as different from a precise observation of a named person’s exposure.

Offline calls need their own handoff test. Trace a call from the source record to the intended CRM stage, then check what the attribution report receives. The [call tracking buying guide](https://quillwell.com/guides/call-tracking-software/) covers number routing and protecting call history.

A visible event and a finished report can arrive at different times. [Dreamdata’s modelling schedule](https://docs.dreamdata.io/article/rnkjup6a7v-data-modelling-schedule) says debugger events can appear within minutes, while reports may take up to 24 hours. Warehouse updates follow modelling, so agree on a reporting cutoff before comparing snapshots.

## Keep a record of the closed month

Save the report and its settings at close, then compare later changes against that snapshot. Otherwise a refreshed report can answer a different question from the one your team reviewed.

[Dreamdata’s history guide](https://docs.dreamdata.io/article/22uclfrmon-understanding-changes-in-historic-reporting-of-attribution) says historic attribution can change when anonymous events become identified or event configuration changes. For example, an anonymous visit in last month’s journey may later be tied to a known identity. A refreshed report can consequently assign the earlier journey differently.

Record the model, date range and CRM stage with the exported result. Save the underlying events where the contract permits, so a later change can be investigated rather than merely overwritten. Assign an owner to explain differences before the report is circulated again.

## Compare the contract and the exit

Price the workload you will run and make export access part of the quote. The published material supports different levels of detail, so a common all-in price is unavailable.

Documented buying and history differences

| Vendor | Billing basis | Limit that matters | Control or export |
| --- | --- | --- | --- |
| Dreamdata | Confirm plan and add-on quote | Disconnected source data deleted after 30 days | BigQuery V2 is an add-on for Team, Business and Enterprise |
| HockeyStack | Order terms and MTU true-ups | Public MSA uses trailing three-month average for excess MTUs | Configured Snowflake export can contain raw actions or stage data |
| Ruler Analytics | Monthly visits and requirements for the product and its data connections | Small tier covers up to 10k visits | Export and retention terms need confirmation |

Source: [Dreamdata: Data retention and deletion](https://docs.dreamdata.io/article/daz3uwwaiu-data-retention), [Dreamdata: Google BigQuery V2](https://docs.dreamdata.io/article/igio0e36f0-bigquery-nev), [HockeyStack: Master Services Agreement](https://www.hockeystack.com/msa-terms), [HockeyStack: Snowflake integration](https://docs.hockeystack.com/integrations/analytics-and-data-warehouse/snowflake), [Ruler Analytics: Pricing](https://www.ruleranalytics.com/pricing)

[Ruler Analytics pricing](https://www.ruleranalytics.com/pricing) is indicative and scales with monthly visits and requirements. Request an interactive quote for your own traffic and integrations rather than comparing the displayed figures as a complete bill.

[HockeyStack’s main pricing page](https://www.hockeystack.com/pricing) routes buyers to a consultation. Its public [master services agreement](https://www.hockeystack.com/msa-terms) describes MTU true-ups using a trailing three-month average and automatic renewal absent 30-day written notice. The actual order governs contracted capacity and term, so inspect that order before forecasting the bill.

[HockeyStack’s Snowflake guide](https://docs.hockeystack.com/integrations/analytics-and-data-warehouse/snowflake) describes a configured outbound export of raw actions or stage data. It starts with a historical backfill and typically continues daily. That export route alone does not guarantee a complete backup or access after termination.

[HockeyStack’s Salesforce Sync guide](https://docs.hockeystack.com/integrations/crms/salesforce/salesforce-sync-hockeystack-to-salesforce-push) says new activation of its touchpoint object was disabled from December 25, 2025. Verify which objects a new deployment can use before promising a Salesforce handoff.

[Dreamdata’s retention policy](https://docs.dreamdata.io/article/daz3uwwaiu-data-retention) says data from a disconnected source is deleted after 30 days. Its [BigQuery V2 guide](https://docs.dreamdata.io/article/igio0e36f0-bigquery-nev) describes an add-on that shares a dataset into a customer project. A shared dataset is not automatically an independent archive; test copying and access before disconnecting.

[Dreamdata’s migration guide](https://docs.dreamdata.io/article/8wspwy9h7o-migration-of-historical-web-tracking-data) describes importing HockeyStack history through exported CSV in storage. A documented route is a starting point: reconcile the exported fields and dates with the destination before closing the old account. Ruler’s export and retention terms need a written answer for your contract.

## Run the same journey and exit test

Use a synthetic journey with known outcomes and keep the inputs identical across trials. A successful chart is only the start: reconcile the underlying records and make the result portable.
