# Tracking audit: <site or app>, <YYYY-MM-DD>

## Verdict

- Verdict: <Fail: privacy | Grade capped at D: bidding integrity | Insufficient evidence | Graded | Graded (provisional)>
- Grade: <A to F, or withheld>. Score: <n, or withheld>. Evidence coverage: <n percent> (<graded | provisional | insufficient evidence>)
- Open S1 FAIL: <check IDs or none>. Open S2 FAIL: <check IDs or none>
- For the business owner, in one sentence: <what is wrong, what it affects, what happens next>
- score-audit output, pasted unchanged: <output>

## Scope and baseline

- Hosts and journeys: <list>
- Regions, egress and consent model: <region: model, decision owner and date>
- Access level reached: <L1 | L2 | L3>, and what blocked a higher level
- Expected destinations: <IDs from stack.md>
- Read period for platform reports: <completed days; last 2 days skipped for GA4 reports, last 4 for BigQuery export tables, conversion lag skipped for Google Ads>
- Approvals used: <from the scope sheet, E-00>

## Scorecard

- <domain>: health <n>, coverage <n percent>, <PASS, WARN, FAIL, NOT_CHECKED and NA counts>

## P1 and P2 findings

- <check ID> <finding in one sentence>. Evidence: <E-nn and the file entry or read>. Affects: <conversion, share of volume, used for bidding yes or no>. Status: <confirmed | unconfirmed>. Owner: <role>

## Findings by domain

### <domain>

- FAIL <check ID>: <finding>. Evidence: <E-nn>
- WARN <check ID>: <finding>. Decision needed from: <owner>
- PASS <check ID>: <what was checked and found correct>

## Tag and pixel inventory

- <vendor> <ID>: pages <list>, loaded by <GTM | page source | plugin | server route>, consent category <category>, status <expected | unexpected | retired>, owner <role>
- Unclassified third-party hosts and own-host collector candidates from har-audit: <host>: <what it is once classified, purpose, consent category, owner | open question for its owner>
- Embedded frames: <host> on <page>: <scheduler | form | media>, markers reach it <yes | no | not checked>, outcome taken from <the vendor's success message | not tracked>

## Journeys and markers

- <landing route>: landing <kept | lost at hop n>, storage after grant <cookie names>, form submission <exact | changed>, CRM field <exact | changed>, offline import <accepted | rejected | not checked>

## Evidence ledger

- E-nn: <HAR | request list | script output | Tag Assistant record | MCP read | export | screenshot>, <file name or tool call>, scenario <no-choice | reject | accept | journey | read>, <page or journey>, run <n>, <UTC time>, captured by <role>, supports <check IDs>

## Not checked

- <check ID>: <reason>. Closes when: <the access, approval or evidence that would settle it>

## Expected limits

- Safari and iOS link and storage protections, ad blockers, refused consent and cross-device journeys reduce what any tag can observe. They are reported as limits, never routed around.
- <site-specific limits, for example an untaggable hosted checkout, a server container behind a third-party CNAME whose cookies Safari caps to 7 days, or click IDs not captured for visitors who refused consent where the decision forbids it>

## Fix list

- <P1 to P4 counts>. Full list: <link to the fix list>

## Hand-offs

- <skill or tool>: <what it should examine, with check IDs>

## Test records created

- <system>: <record ID or order reference>, created <date>, cleanup owner <role>, excluded from <reports, audiences, bidding>

## Proposed martech-context updates

- <file>: <change>. Nothing is written until the user approves.

## Re-audit trigger

- <an event, not a date: the next release that touches tags, consent, checkout or forms; a CMP change; a server route change>
