Trepo · Lifecycle Messaging

Notification Calendar

A four-week push schedule built on the segments that actually exist in the app today. Every send is targeted at a real, measured audience — no blast-to-everyone. Run it manually first, then hand the templates to the app agent.

9,285Total signups
4,094Ever opened app
2,434Push opt-in
2,155Have a kitchen
31Sends over 4 weeks

The audiences that matter

Measured from the full TrepoAnalyticsEvents table (290,862 events, 4,094 real users, founder/backend rows excluded). Percentages are of users who have opened the app at least once. Only ~59.5% granted push, so multiply any audience by ~0.6 for actual reach.

The weekly rhythm

Same skeleton every week so behaviour becomes habit, different content each week so it never feels like a robot. Thursday plans, Friday rescues, Saturday shops, Sunday resets, Monday inspires, Tuesday teaches, Wednesday saves dinner.

Thu · Plan ahead

Weekend meal plan + shopping list, ~4:00pm — right before the Friday/Saturday shop.

Fri · Use it up

1–3 named items about to turn. The flagship send. 4:30pm, when "what's for dinner" is live.

Sat · Shop & capture

List in the morning, receipt scan in the evening. The only day we send twice to nearby audiences.

Sun · Reset

Clean Kitchen sweep late morning, week plan late afternoon.

Mon · Inspire

Recipe → list bridge. The single biggest broken funnel in the app.

Tue · Teach

One underused feature per week: Thyme, voice, household, recall check, health.

Wed · Rescue

"What can I make with what's left" — midweek is when the fridge gets sad.

Four-week calendar

Tap any card for the full spec: exact copy, audience, deep link, merge tags, and what you're trying to move. Filter by category below.

Template library

Reusable patterns for whoever wires the agent. Each one is a rule, not a one-off — it fires when the condition is true, not on a date.

Guardrails

Frequency cap

Max 3 pushes per user per week, hard stop. Never two in one calendar day. The calendar looks busy because audiences are disjoint — an individual user sees 2–3.

Quiet hours

Nothing before 9:00am or after 8:30pm in the user's local time. Registration ZIP gives you the timezone; don't send everything on PT.

Suppression

Skip anyone who opened the app in the last 4 hours, and anyone who ignored 3 consecutive pushes — move them to weekly-only.

No empty payloads

If the merge tag has no data, don't send. "Use up your and " is worse than silence. Every item-specific push needs a fallback audience check.

One measurable goal

Each send has one target event. If a send doesn't move its event in 48h, kill it — don't tune the emoji.

Deep link or don't bother

Every push lands on the screen that completes the action. Dropping someone on the home tab wastes the open.

Read this before the first send

Deep links are proposed, not confirmed. The trepo:// routes below are what the destinations should be. Whoever wires this needs to map them to the app's real router — I read the analytics table, not the iOS source.

Push reach is ~2,434, not 9,285. About 5,200 signups from the July spike never emitted a single event. They're on the list but they're not in the app. Don't judge push performance against the signup number.

The recall check is the one to be careful with. It's the highest-trust notification in the set and the easiest to get wrong. Only fire on a verified FDA/USDA recall matched to a real item in that user's kitchen. A false positive here costs more than every other push combined earns.

Baseline first. push_received is 817 and notification_tapped is 363 lifetime. Log both per-campaign from day one or you'll have no idea which of these worked.