Skip to content
Owner: @lop • live

Signal Registry

This is the canonical list of metrics we publish every cycle. Log a new signal or Run the Cloudflare analytics export. Exit metric: registry stays at ≤8 signals and every entry refreshes within the 30-day SLA.

Signals Table

All active signals share the same SLA: refresh every 30 days or raise an exception. The cap stays at eight.

idNameSourceOwner (@handle)Refresh after daysDirectionThreshold / stop ruleKill criteria
m-nav-openNavigation open rateCloudflare analytics export (nav_open event via scripts/cloudflare-analytics.mjs)@lop30Up good>= baseline + show 10% lift in pilot tagsRemove if nav instrumentation drops for >1 cycle
m-time-to-answerTime to answerCloudflare analytics export (time-to-answer event)@lop30Down good<= 60 seconds for 80% of tracked sessionsDrop if CTA instrumentation is disabled
m-lab-passAnnex lab pass ratereports/labs.json (Quick-Run + Proof Run)@lop30Up good>= 0.9, freeze if < 0.8Remove when Verify-in-10 labs retire
m-defect-rate-changed-pagesDefects per changed pageLink Drift + QA follow-ups recorded in reports/labs.json@lop30Down good<= 0.05; investigate if > 0.08Drop if defect tracking moves to another source
m-dashboard-freshness-daysDashboard freshnessManual value in reports/cloudflare-export.json > dashboard_freshness@lop30Down good<= 30 days; exception at 35+Remove if dashboards merge with State
m-decision-hit-rateDecision hit rateGovernance receipts + decision ledger@lop30Up good>= 60% by second tagRetire if decision receipts move to tooling
m-time-to-freezeTime to freezeExceptions log + freeze manager@lop30Down good<= 24 hours to activate a freeze triggerRemove if mitigations move to another platform
m-time-to-recoveryTime to recoveryExceptions log + Quick-Run receipts@lop30Down good<= 7 days to exit freezeRemove if recovery tracking automates elsewhere

How to add a signal

  1. Gather the source and ensure it meets the privacy/ROI guardrails.
  2. Add a new row to the table above with:
    • id: machine-readable key.
    • Name: human label.
    • Source: document the export or script.
    • Owner: GitHub handle of the steward.
    • Refresh after days: SLA for updating it.
    • Direction: “Up good” or “Down good.”
    • Threshold: When to raise a flag.
    • Kill criteria: When to stop collecting the signal.
  3. Update any automation (scripts, workflows) that emits the signal.
  4. Reference the new signal from Receipts or the relevant decision entry.

Text © CC BY-NC 4.0 • Code samples MIT • Views are my own.