Change attribution: what shifted, not what caused
Change attribution is the section of a weekly report that tells you what likely shifted, ranked by how much your data agrees on the direction. It will not claim causation; it names contributors.
- Attribution names contributors, not causes.
- Confidence escalates only when at least two metrics agree on the direction.
- A directional finding is a hint, not a verdict; an experiment label can promote it to confirmed.
Noticing change is easy. Saying anything useful about it is not.
You can compare any two weeks and see that something moved. Fatigue went up. Productive density went down. The hard part is the next sentence — saying anything useful about *what* shifted.
Change attribution is the layer that tries. It compares this week's session profile against last week's, finds the dimensions that moved most, and emits a structured finding for each one. It will not tell you a single cause. It will rank the most likely contributors and grade its own confidence.
What an attribution finding actually claims
Every finding has the same five pieces: a change type, an observed shift, a list of affected metrics with directions, a confidence band, and a recommended verification.
Change types today are session-duration shift, session start-hour shift, and session-mix shift (deep work vs fragmented vs passive). All three are computed from the same artifact data the rest of the report rests on, so attribution always lines up with the chart and findings above it.
Directional, probable, confirmed
Every finding carries one of three confidence bands. For a normal weekly read, the honest top end is probable. Confirmed requires an explicit experiment label — you told Sarenica you were running a deliberate test.
Directional means the magnitude crossed the detection threshold but the metric agreement is weak. Probable means the magnitude is meaningful and at least two metrics agree on direction. Confirmed adds the experiment label as a third leg.
“Causation is a strong claim. A weekly report should not make strong claims off observational data alone.”
- Directional — a hint. Worth noting, not worth restructuring around.
- Probable — real signal. Worth a one-week experiment to verify.
- Confirmed — experiment-backed. Worth standardizing.
The data that powers it
Attribution does not look at every signal. It rests on three artifact-level distributions: `session_duration_profile`, `session_start_hour_profile`, and `session_type_distribution`. Each gets summarized as a share-of-sessions vector. The L1 distance between this week and last becomes the magnitude.
Per-bucket metrics — fatigue average, productive density, degradation risk — are then compared between the new dominant bucket and the old. If the new dominant bucket is worse, the finding leans negative. If better, positive. That is the whole machinery, and the whole point of keeping it simple is that you can audit it.
Reading a finding
A typical finding reads: *"session-duration shift, probable: 30-45 minute blocks rose from 22% to 48% of sessions; fatigue average rose 0.18 in those buckets; productive density fell 0.07."*
Read it as a signed claim, not a verdict. The shift happened. The metrics moved with it. The finding is graded "probable" because two of the three tracked metrics agreed on direction. It is not telling you longer blocks made you tired. It is telling you the data is consistent with that, and worth a one-week experiment.
How to earn "confirmed"
The cleanest path is to label your experiment up front. Tell Sarenica you are running a "30 minute block week" and let it compare that week against the prior weeks where blocks were longer.
Without the label, attribution stays at probable at best, even if the data is overwhelming. That is intentional. Causation is a strong claim, and a weekly report should not make strong claims off observational data alone.