Pattern · multi-brand CPG
Cross-channel attribution that survived two CMO changes.
Three brands sharing a paid media buy. The attribution model had been rebuilt three times in 18 months because nobody could agree on the weights. We wrote the measurement plan first — seven decisions the number had to defend — then built a weighted multi-touch model with per-channel time-decay, calibrated to a Nielsen panel. Versioned channel-calibration dim. The argument moved from ‘which weights’ to ‘which decisions’.
Pattern · healthtech marketplace
Cohort economics on a definition both marketing and finance signed.
Series-B marketplace, blended CAC reporting nobody trusted. Marketing counted bookings, finance counted completed-net revenue, the gap was 28–34% per cohort. A signed one-page metric contract defined what an ‘activated patient’ was. We stitched ad-click → signup → booking → completed appointment → repeat booking into one event spine, then built a cohort-LTV mart at (cohort × channel × month-since-acquisition) against fully-loaded spend. Two channels got cut in week six against the new read.
Pattern · mid-market retail
Promotional spend instrumented for measurable lift, not gut feel.
Multi-banner shopper-marketing program running into the tens of millions on instinct. We instrumented lift at SKU × banner × week. The quarterly status deck became a weekly attributed-lift review. Promotions that didn't earn their lift got cut at the next review. Reporting cycle moved from three days to four hours.
Pattern · fractional analytics lead
A senior pair of hands before a full-time Director hire makes sense.
The shape that fits companies that have outgrown their first analyst but aren't ready for a $200k Director. Two days a week. Standing pre-board slot to pressure-test the numbers the CEO is about to defend. Typical length 12–15 months — usually closes when a Series B or new VP makes the full-time hire the right call, at which point we write the JD and run the technical screens.
Pattern · subscription churn
A churn model that earns its keep at quarterly review — or gets killed.
12+ months of cohort history, predicting 30-day churn. Logistic regression on engagement, billing, and support-ticket features first; XGBoost only if it beat a survival-curve baseline. Predictions ship as a `risk_score` on the customer table, refreshed weekly. Success-management reads the top-decile list each Monday. Retired at quarterly review if lift-on-save-rate against a control falls below the maintenance threshold.