Attribution · 18 June 2026

From campaign reports to lifecycle maps

You do not need a new vendor to stop last-touch theatre. You need a worksheet that admits when two channels were merely both present.

Laptop displaying a bar chart

Campaign reports are organised around sends. Lifecycle maps are organised around a person’s next thirty days. The first format will always make every channel look busy. The second format sometimes shows that SMS was standing next to a push that already did the work.

The Journey Ledger worksheet

In the Journey Ledger workshop we print one path: eligible → dispatched → rendered → acted → returned (or not). Each channel gets a column. Each day gets a row. You are not allowed to write “attributed” unless a holdout, or a very clean natural experiment, supports it. “Present” is an allowed word. It is underused.

A grocery e-commerce client used this after sitting the workshop. Weekly SMS had a loyal recap because last-touch always found it. The ledger showed SMS arriving after push and in-app had already explained the same promotion. They retired the SMS. Revenue did not fall. The recap got quieter. That was the point.

You can start without a CDP

Identity resolution helps, but it is not the blocker. The blocker is usually political: channel owners do not want a map that can call their send “present.” Faculty cannot fix that in a week. We can give you language that survives a sceptical analytics lead. The Lifecycle Atlas is the wall version of the same idea.

What not to do

Do not replace last-touch with a multi-touch black box and call it maturity. If you cannot explain a weight to a PM, you have changed the theatre, not the map. Signal Path Studio’s reporting module is deliberately boring: one page, one caveat, one ask.

Back to field notes