Establishing Your Traffic Noise Floor
Organic traffic moves week to week for reasons nobody controls: day-of-week mix, bank holidays, a slow crawl, a reporting tool revising its own numbers. A team that has never measured its own variance investigates every dip, which burns days and teaches everyone to ignore alerts, including the one that matters. Characterise normal variation once per segment and set thresholds from that rather than from a round number somebody liked the sound of.
CATEGORY
Analytics & reporting
FORMAT
organic-traffic-noise-floor.md
WHEN TO REACH FOR THIS
Use when a weekly dip triggers an investigation and nobody can say whether the move is outside normal variance.
The skill file
organic-traffic-noise-floor.md
---
name: organic-traffic-noise-floor
description: Use when a weekly dip triggers an investigation and nobody can say whether the move is outside normal variance.
---
# Establishing Your Traffic Noise Floor
Organic traffic moves week to week for reasons nobody controls: day-of-week mix, bank holidays, a slow crawl, a reporting tool revising its own numbers. A team that has never measured its own variance investigates every dip, which burns days and teaches everyone to ignore alerts, including the one that matters. Characterise normal variation once per segment and set thresholds from that rather than from a round number somebody liked the sound of.
## What you need first
- 13 months of daily clicks or sessions per reporting segment
- a change log of known one-off events so they can be excluded from the baseline
- the reporting delay and revision behaviour of your data source
## Method
1. Work in whole weeks from a fixed weekday. Day-of-week effects are routinely larger than the movements people escalate, and daily comparisons will keep manufacturing them.
2. Strip known one-off events out of the history first, using the change log. Leaving a migration week in the baseline widens the floor and hides real problems for a year afterwards.
3. Compute week-on-week percentage change across the cleaned history per segment and take a high percentile of the absolute change, the 90th being a reasonable starting point, as that segment threshold.
4. Repeat the calculation year on year for the same week so seasonality is carried rather than fought. A December fall that repeats every December is not a finding.
5. Set thresholds per segment rather than sitewide. Small segments are noisier by construction, so a single shared threshold either floods you with alerts from the small ones or stays silent through a real fall in the large one.
6. Add a persistence rule: two consecutive weeks past the threshold, or one week past a much larger one. Single-week spikes are usually artefacts, particularly in data that revises after the fact.
7. Recompute the floor every six months and after any tracking or segmentation change, then write the current thresholds into the report itself so nobody has to remember them.
## What this produces
A per-segment table of alert thresholds with the percentile used, the events excluded from the baseline and the persistence rule, refreshed twice a year.
## Where this goes wrong
- Setting one sitewide threshold, so the small segments cry wolf and the large one stays quiet through a genuine decline
- Including the last two or three days of Search Console data, which are incomplete and always look like a fall
- Treating the threshold as a significance test, when it is a triage rule for where to look and not evidence that anything caused anything
- Rebuilding the baseline over a period that already contained a sustained decline, which normalises the decline into the definition of normal
---
From the QuQi skill library - https://www.quqi.io/skills/organic-traffic-noise-floor
Free to download · no account, no email
What you need first
-
13 months of daily clicks or sessions per reporting segment
-
a change log of known one-off events so they can be excluded from the baseline
-
the reporting delay and revision behaviour of your data source
Method
-
01
Work in whole weeks from a fixed weekday. Day-of-week effects are routinely larger than the movements people escalate, and daily comparisons will keep manufacturing them.
-
02
Strip known one-off events out of the history first, using the change log. Leaving a migration week in the baseline widens the floor and hides real problems for a year afterwards.
-
03
Compute week-on-week percentage change across the cleaned history per segment and take a high percentile of the absolute change, the 90th being a reasonable starting point, as that segment threshold.
-
04
Repeat the calculation year on year for the same week so seasonality is carried rather than fought. A December fall that repeats every December is not a finding.
-
05
Set thresholds per segment rather than sitewide. Small segments are noisier by construction, so a single shared threshold either floods you with alerts from the small ones or stays silent through a real fall in the large one.
-
06
Add a persistence rule: two consecutive weeks past the threshold, or one week past a much larger one. Single-week spikes are usually artefacts, particularly in data that revises after the fact.
-
07
Recompute the floor every six months and after any tracking or segmentation change, then write the current thresholds into the report itself so nobody has to remember them.
What this produces
A per-segment table of alert thresholds with the percentile used, the events excluded from the baseline and the persistence rule, refreshed twice a year.
Where this goes wrong
-
Setting one sitewide threshold, so the small segments cry wolf and the large one stays quiet through a genuine decline
-
Including the last two or three days of Search Console data, which are incomplete and always look like a fall
-
Treating the threshold as a significance test, when it is a triage rule for where to look and not evidence that anything caused anything
-
Rebuilding the baseline over a period that already contained a sustained decline, which normalises the decline into the definition of normal
Use this skill in your own AI
The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.
Claude Code
Save it as ~/.claude/skills/organic-traffic-noise-floor/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude
Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT
There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else
Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.
Questions about this skill
When should I set a noise floor rather than investigate each dip or use a round threshold?
When weekly dips keep triggering investigations and nobody can say whether a move is outside normal variance. Investigating everything burns days and teaches the team to ignore alerts, including the one that matters. Picking ten per cent because it sounds reasonable fails differently, since it has no relationship to how much your segments actually move week to week.
What do I need in hand before starting, and what happens if I start without it?
Thirteen months of daily clicks or sessions per reporting segment, a change log so known one-off events can be stripped out, and the reporting delay and revision behaviour of your data source. This also assumes segments already exist. Leave a migration week in the baseline and the floor widens enough to hide real problems for a year afterwards.
What do I end up with, and which part of it actually gets used?
A per-segment table of thresholds with the percentile used, the events excluded from the baseline, and a persistence rule. The persistence rule does the filtering: two consecutive weeks past the threshold, or one week past a much larger one. Print the current thresholds in the report so nobody has to remember them, and recompute twice a year.
What is the mistake that most often ruins this, and what does it cost?
Building the baseline over a stretch that already contained a sustained decline, which writes that decline into the definition of normal and silences the alert permanently. Two cheaper errors sit beside it: including the last two or three days of Search Console data, which are incomplete and always look like a fall, and treating a triage threshold as a significance test.
More in Analytics & reporting