Appearance
Multi-Touch Attribution Simulation Project
This is the main page for the human-readable project record. It separates confirmed evidence from interpretation and proposals so future contributors do not have to reconstruct decisions from memory.
Documentation map
| Page | Purpose | Read when |
|---|---|---|
| Baseline Dataset Creation | Generation formulas, parameter examples, regional economic inputs, confidence ratings, and commands. | You need to understand or review how synthetic rows are produced. |
| Definitions | Short explanations of advertising, statistics, causal reasoning, and data terms. | A term is unfamiliar or ambiguous. |
| Repository Analysis | Verified behavior of the current and legacy generators, context directories, and schema limitations. | You need to know what actually exists. |
| Model Conjectures | Candidate methods, examples, data requirements, limitations, and meeting questions. | The team is choosing the modeling direction. |
| Prompt Record | Compact task goals, constraints, decisions, and completion status. | You need to recover why a change was requested. |
Status labels
Every important section should use one of these labels in its heading or opening callout.
| Label | Meaning | Reader action |
|---|---|---|
| [Verified Repository Fact] | Checked directly against a file, generated output, or passing test in this repository. | Treat as current repository state until the code changes. |
| [External Fact] | Supported by a linked primary paper or official source. | Check the source date and applicability before implementation. |
| [Inference] | Not stated directly, but supported by available evidence and explicit assumptions. | Challenge the reasoning if new context appears. |
| [Recommendation] | Proposed design choice or next step; not an implemented feature. | Confirm with the data-modeling team before adoption. |
[Verified Repository Fact] What exists today
- A deterministic Python 3.11-or-newer simulation pipeline.
- Baseline version 0.2.0 under
ZheyuanWu/simulations/baseline/. - Source-dated Europe, Japan, and North America economic scenario configurations.
- A finalized 9-column Amazon Marketing Cloud path table.
- A finalized 16-column Amazon Ads daily touchpoint performance table.
- A simulation-only ground-truth table.
- Comma-Separated Values and SQLite storage adapters.
- Validation and reproducibility tests.
- No trained attribution or strategy-optimization model.
See Repository Analysis for evidence and file-level detail. See Baseline Dataset Creation for formulas, parameter meanings, sources, and confidence ratings.
[External Fact] What the industry reference suggests
Amazon's published Multi-Touch Attribution system combines randomized experiments, machine learning, and multiple attribution estimates. This is stronger than treating an observational Markov removal effect as causal truth.
Source
Amazon Ads Multi-Touch Attribution: https://arxiv.org/abs/2508.08209
[Inference] Current project interpretation
The two Amazon-like tables are best treated as observational model inputs. They can test parsing, conservation, baseline allocations, Shapley values, and predictive models.
They cannot by themselves prove advertising incrementality. The synthetic truth table allows honest simulator tests, but synthetic success does not establish real-world causal validity.
[Recommendation] Decisions requiring team review
The immediate discussion should determine:
- whether the goal is attribution reporting, conversion prediction, causal lift, or budget optimization;
- whether timestamps, interaction types, non-converting paths, and experiments can be obtained;
- which baseline every advanced model must beat;
- how model ownership will survive team turnover.
Candidate methods and concrete examples are in Model Conjectures.
Project rules that protect continuity
- Define every specialized term or link it to Definitions.
- Put facts, external evidence, inferences, and recommendations under explicit status labels.
- Keep model proposals in
CONJECTURE.mduntil the team accepts them. - Record rejected ideas and the reason for rejection instead of silently deleting them.
- Never represent synthetic data as Amazon-provided data.
- Never use simulation ground truth as a training feature.
- Add source dates when an external feature or service may change.
- Add a compact task summary to Prompt Record when each task ends.
Context and recording log
Use this section as an index when adding meeting notes, transcripts, or recordings. Store sensitive material only in a location approved by the repository owner.
Suggested entry template
markdown
### YYYY-MM-DD — Topic
- Participants:
- Source or recording:
- Status label:
- New verified facts:
- Assumptions corrected:
- Decisions made:
- Open questions:
- Files or models affected:No recordings are currently stored under ZheyuanWu/docs/.
Running this documentation site
The site root is this docs directory. Both scripts derive this directory from their own location, so they can be launched from any working directory without an absolute repository path.
Prerequisite
Install the current Node.js Long-Term Support release from https://nodejs.org/. Node.js normally includes the npm package manager. The scripts check the runtime before installing or starting anything and provide a corrective message when a requirement is missing.
Windows:
bat
run-doc-site.bat
run-doc-site.bat build
run-doc-site.bat preview
run-doc-site.bat dev pnpmLinux or macOS:
sh
sh run-doc-site.sh
sh run-doc-site.sh build
sh run-doc-site.sh preview
sh run-doc-site.sh dev pnpmWith no arguments, each launcher:
- resolves and enters its own directory;
- checks for Node.js 18 or newer;
- selects npm when available, otherwise pnpm;
- installs missing dependencies from the project definition;
- runs
npm run devor the pnpm equivalent.
The build mode creates the static site, and preview serves the most recent production build. To choose pnpm explicitly, put pnpm after the mode or use it as the only argument for development mode. The DOCS_PACKAGE_MANAGER environment variable can set npm or pnpm as the local default. Run either script with --help for the complete syntax.