# Break-map record. One record per incident. Copy, fill, keep with the evidence.
# Verdicts: pass, fail, not_checked, not_applicable. A verdict without evidence is not_checked.
# Never paste personal data, credentials or tokens into this file.

incident: ""                       # short name, e.g. "GA4 sign_up drop after signup form rebuild"
opened: ""                         # YYYY-MM-DD
owner: ""                          # person running the investigation

question:
  complaint_as_stated: ""          # what the person said, word for word
  report: ""                       # report, exploration, dashboard tile or query
  metric: ""                       # e.g. "event count, sign_up"
  scope: ""                        # user, session or event scope; key event or not
  date_range: ""                   # completed days only
  timezone: ""                     # of the report and of the independent source
  filters: ""                      # report filters, segments, comparisons
  independent_source: ""           # system that commits the outcome, and its query or export
  expected_ratio: ""               # baseline band of analytics / independent, previous 28 comparable days (same weekday type, holidays left out)
  observed_ratio: ""               # same ratio for the incident days
  first_change_date: ""            # first of 2 consecutive completed days outside the band, or of 3 out of 5; a single day is "watch"

sizing:
  direction: ""                    # under or over (above the band, or above 100% for a once-per-outcome event)
  expected_from_baseline: ""       # independent count x baseline ratio, per day
  observed: ""                     # analytics count per day
  gap: ""                          # absolute gap per day: expected minus observed (under), observed minus expected (over)
  unique_id_coverage: ""           # events with an outcome ID: distinct analytics IDs found in the backend / backend count, baseline and incident
  events_per_id: ""                # analytics events / distinct IDs found, baseline and incident; above baseline or coverage down with the ratio steady = offsetting errors
  segments_checked: []             # e.g. ["method", "page_path", "browser", "consent state", "region", "channel"]
  where_the_gap_sits: ""           # the segment(s) holding the gap, with numbers
  guards: ""                       # mix shift, independent-source definition, volume per bucket, recent days still processing (GA4 48 hours, Google Ads conversion lag)

containment:                       # drafted when the gap is outside the band for 2+ completed days and the conversion feeds bidding, audiences or budget rules; not a fix
  proposed_on: ""                  # YYYY-MM-DD, usually the day of sizing, before the proof
  actions: []                      # e.g. data exclusion (click dates, account time zone, start covering conversion delay, fixed end), provisional annotations, automations to pause
  approved_by: ""                  # owner of each action; nothing is applied by the agent

test_traffic:
  test_identities: ""              # pattern with a backend test flag, e.g. qa-signup-NN@example.com, one fresh identity per run, excluded from both sides
  ad_hosts_blocked: ""             # ad conversion hosts blocked in the test browser, unless the ad platform is the layer under test
  developer_filter_state: ""       # Active, Testing, Inactive or none, read before the first test
  test_event_log: []               # time (with timezone), journey and test identity of each run; required if the filter is not Active

changes_in_window: []              # releases, web and server container versions with publish times, container upgrades, CMP and vendor scripts, CDN and gateway routes, ads, GA4 property change history, export, model, GTM and GA4 release notes

journey_tested: ""                 # one journey, one event, one destination
comparison_journey: ""             # a journey that should pass at the suspected layer

layers:
  - layer: link_and_redirect
    verdict: ""
    evidence: ""
  - layer: consent
    verdict: ""
    evidence: ""
  - layer: tag_manager
    verdict: ""
    evidence: ""
  - layer: browser_request
    verdict: ""
    evidence: ""
  - layer: server_container
    verdict: ""
    evidence: ""
  - layer: platform_processing
    verdict: ""
    evidence: ""
  - layer: export
    verdict: ""
    evidence: ""
  - layer: warehouse_model
    verdict: ""
    evidence: ""
  - layer: report
    verdict: ""
    evidence: ""

first_failing_layer:
  layer: ""
  layers_above_all_pass: ""        # yes or no, with the evidence references
  comparison_journey_passes: ""    # yes or no, with evidence
  share_of_gap_explained: ""       # at least 80% of the absolute gap, otherwise keep walking; "not measurable" with no independent count
  repeated_runs: ""                # with no independent count: failing journey fails 3 of 3 across two browsers, comparison passes 3 of 3
  cause: ""                        # the mechanism, in one sentence

fix:
  owner: ""
  change_draft: ""                 # link to the diff, change list or version note
  approved_by: ""
  approved_on: ""
  downstream_changes_avoided: ""   # what was proposed downstream and not done

retest:
  journey_rerun_on: ""
  layer_results: ""                # pass at every layer to the report
  ratio_after: ""                  # at least 2 completed days after the processing window
  inside_baseline_band: ""         # yes or no

gap_statement:
  untracked_window: ""             # from and to, with timezone
  estimated_missing: ""            # analytics events, not customers
  affected_destinations: []        # reports, audiences, ad platforms bidding on imported conversions
  backfill_decision: ""            # usually none for analytics; Google advises against ad conversion backfill, and any approved one waits 5+ days after the exclusion
  ad_data_exclusion_proposed: ""   # campaigns, click-date window in the account time zone, applied date; see containment
  annotations_proposed: []
  context_updates_proposed: []     # martech-context/ entries proposed, not written: decisions.md, tracking-plan/, baseline band
