Campaign Calendar Simulator
Marketing wanted to know what next quarter's promo calendar would do to subscriptions — before running it. So they got a calendar they can drag offers onto, with the forecast redrawing as they go.
Growth & data · marketing · products with AI · RCS MediaGroup
Three years of growth experiments on acquisition and retention, at the traffic volumes of two national titles. The lesson that stuck: an analysis is read once, a system keeps working. So I stopped delivering slides and started building the tools that answer the question without me in the room.
Selected work
Built inside RCS MediaGroup. Described by class of problem, never by internal detail — every demo below runs on invented data.
Marketing wanted to know what next quarter's promo calendar would do to subscriptions — before running it. So they got a calendar they can drag offers onto, with the forecast redrawing as they go.
I wrote four skills that teach a coding agent how we work — our dashboard conventions, our repo rules, our analytics setup. The whole team builds from them now, and the BI licences are on their way out.
A ten-tab replacement for a beloved BI workbook that had become too slow to open. Same definitions, same numbers, none of the licence.
Analytics tracking breaks silently — you find out three weeks later when a chart looks odd. This drives a real browser every night, reads the beacons, and complains before anyone else notices.
Twenty-odd behavioural audiences, one config file, and a strict exclusion order so a reader lands in exactly one bucket. Adding a segment is a two-file change that either stays consistent or fails loudly.
Which articles actually sell subscriptions — by section, topic, format, author, and hours spent on the homepage. Editorial asked weekly. Now they don't have to ask.
A Streamlit dashboard people relied on, rebuilt as a proper web app. One rule for the rewrite: the numbers were not allowed to move by a single decimal.
Subscribers who never open the product churn. This shows who is engaged, who is drifting, and how usage intensity is distributed — before the renewal date arrives.
A daily quiz game needs thousands of verified historical events. An LLM drafts, an editor decides, and a state machine makes sure nothing reaches players before a human said yes.
Three words a day, forever, never repeating, and themed for special dates. A five-step wizard turns a dictionary into a publishable calendar — with the LLM bill shown live while it runs.
Nothing under that tag yet.
Approach
The brief is never a spec. I sit with the team that has the question, work out what they actually need to decide, turn that into an analysis and a build plan, then make the thing.
A number in a chat message answers today. A tool that recomputes it answers every day after that, including the days I am on holiday. Same effort, very different half-life.
Infrastructure and deployment belong to our data engineers. Their conventions live in the skills I write, so what I hand over is deploy-ready without me guessing at their job.
When I rewrite something, the numbers must not move. Same definitions, reconciled against the old tool, then the UI gets to be better.