nudgey.
Product · 03

How Nudgey
feels in the hand.

Two surfaces and a living Money Map. Your daily is the home you open every day. Talk to Nudgey is the conversation that shows up when you want context. The Money Map is the picture of your money that fills in over time. The signature flows are the surfaces that make Nudgey distinctly Nudgey.

The two surfaces

95% daily, 5% conversational.

YOUR DAILY

The daily glance

Swipe-based · template-rendered · fast

The home you open every day. Template-rendered — no cloud round-trip on the swipe path, no cost, no latency. Voice-checked at compile time so every line passes brand voice before it ships.

  • Headroom hero — what you can spend without trouble, with an honest ~N% sure confidence figure
  • Card stack — insights, patterns, transactions, and gentle asks; swipe right to engage, left to defer, pull down for 30-day history
  • Pre-spend pause — appears when an outgoing payment doesn't fit your week
  • Streaks — gold marks for sacco contribution streaks, savings rhythms
~95% of all interactions
TALK TO NUDGEY

The conversation

Persistent chat · cloud LLM · low temperature

Talk to Nudgey when the daily isn't enough. On-device memory; cloud calls are stateless. The same voice as your daily — system prompt and runtime voice-lint enforce it.

  • Persistent thread — full history stored locally in Drift
  • Stateless cloud calls — context bundled per-call from device
  • 5 turns/day on free tier after a 30-day full-access trial
  • Premium — unlimited turns, unlimited Drop archive
For when daily isn't enough
The Money Map

A living map of how your
money actually moves.

Nudgey learns how your money moves from your phone, on-device — nothing leaves it. The Money Map is the artifact that learning builds: a persistent home in the app that fills in over time and is honest about what it's still figuring out (~78% complete · still building). It starts the moment you install and keeps deepening over days.

MOVEMENT
By volume
A provider→provider money-flow graph — KCB → M-Pesa → merchants, M-Pesa → Equity / Fuliza repay. The shape of where money travels.
IN · OUT
Ranked both ways
Money in, high→low — where it comes from. Money out, ranked — the counterparties and merchants it goes to.
BILLS
Recurring, with cadence
KPLC, DSTV, Netflix, rent — surfaced with the day and rhythm they repeat on.
FEES · HEADLINE
Per provider + grand total
The always-tracked headline metric — what every provider quietly charges you, and the total across all of them.
DEPOSITS
Inferred for silent providers
Some providers (e.g. KCB) don't text on money-in. Those deposits are inferred from balance gaps, never dropped.
HONEST
Progressive completeness
Incomplete is fine and stated plainly. The map builds and its confidence rises over time — never fake, never placeholder.

Day-one truth

Agentic levels

V1 commits to Levels 0–3.

The "AI feel" comes from when Nudgey decides to surface things and how it orders journeys — not from generating components or markup. Levels 4–5 are explicitly forbidden in V1 and V1.5. Brand consistency, accessibility, and predictability are protected values.

LEVEL 0

Deterministic screens

The shell — fixed layout, fixed components, fixed states.

LEVEL 1

Dynamic content

Same screen structure; content reflects the user's data.

LEVEL 2

Dynamic ordering

Same screens, ordered by what matters most this week.

LEVEL 3

Dynamic journeys + generative copy in fixed slots

Different paths through the same screens. Copy is LLM-rendered inside known structures.

LEVEL 4

Generative components

Forbidden. Breaks brand consistency and accessibility.

LEVEL 5

Generative UI markup

Forbidden. The screen is not a model output.

.
The signature flows

Anchored.

These flows define how Nudgey feels. Anything outside this list lives in its sub-project's spec, not here. Sunday Drop is canonical — the others imitate its shape.

F-01
Onboarding + Reveal
Trigger: first open
Owner: SB9 + SB18 · landed
F-02 · CANONICAL
Sunday Drop
Trigger: Sun 09:00
Owner: SB6 + SB11 · landed
F-03
Your daily
Trigger: every open
Owner: SB10 · landed
F-04
Talk to Nudgey
Trigger: Talk-to-Nudgey tap
Owner: SB8 · landed
F-05
Period story
Trigger: last day of period
Owner: SB11 · landed
F-06
Premium upsell
Trigger: free-tier limit hit
Owner: SB11 · landed
F-07
Pre-spend pause
Trigger: outgoing payment
Owner: SB10 · landed
Canonical · F-02 Sunday Drop

The shape every
flow imitates.

Five blocks: header, frames, narrative, state graph, invariants. Other flows lift this exact structure with different content.

app-flow-design.md § 5 CANONICAL

F-02 · The Sunday Drop

Sun 09:00 local · weekly · mobile · SB6 InsightScheduler + SB11 Home surface

Frames

FRAME 01
Notification
"Your Sunday Drop is here."
Push, 9 AM Sunday
FRAME 02
Sunday Drop
Week of May 5
tap to open
Hero card on Home
FRAME 03
The insight
38% less on transport this week.
Detail screen
FRAME 04
React
Save · Share · Talk to Nudgey
Reaction options
FRAME 05
Free-tier limit
"One per week. Premium = unlimited."
Upsell (free tier only)

Narrative

  1. 01Trigger. InsightScheduler fires Sun 09:00 local. Composes one push via NotificationService.
  2. 02Tap → Home. JourneyOrchestrator routes to Home and pins the Drop card top.
  3. 03Detail. Inter Bold headline, gold accent on the lead figure, nudgey-drop top-right.
  4. 04React. Save / Share / Talk to Nudgey opens the conversation with the insight as opening context.
  5. 05Free-tier exit. Same-week opens show upsell; premium shows full archive.

State graph

flow.mermaid · stateDiagram-v2
Trigger Push Idle Hero Detail React (free) React (premium)

Invariants

  • Privacy. Drop fires from InsightScheduler only — never from a remote push. Bundle is AnonymizedInsight-class only.
  • Tier. Week 1 of every month is always free; weeks 2+ on free tier show the upsell. Premium sees no upsell.
  • Voice. Drop copy rendered by TemplateNudgeGenerator for both tiers in V1. LLM not invoked on the Drop generation path.
  • Cadence. Exactly one push per week per user. Offline-accumulated Drops collapse to most recent.
  • Orchestration. InsightScheduler is the sole owner of when. No other interface schedules a Drop.
The other flows

Synopses.

Each carries enough to anchor identity. Full structure (header, frames, narrative, state graph, invariants) lives in the owner sub-project's spec.

F-01

Onboarding + Reveal

First open. Phone auth → email capture + OTP-verify → Nudgey starts learning how your money moves, on-device → a real day-one reveal painted from the backfill it just read. The viral moment. Honest while it's still building — never fake data; if real insights aren't ready yet, an honest holding card instead. The Money Map is the privacy explainer.

OWNER SB9 + SB18 · landed
F-03

Your daily

Every-open mechanic. Headroom hero · card stack · pre-spend pause if pending. ~95% of all interactions. Template-rendered, no cloud round-trip on the swipe path. Voice-lint at compile time.

OWNER SB10 · landed
F-04

Talk to Nudgey

Persistent thread with Nudgey. Cloud LLM, low temperature, voice-lint at runtime. On-device memory; cloud calls stateless. 5 turns/day free after a 30-day full trial; premium unlimited. No sample-and-audit retention.

OWNER SB8 · landed
F-05

Period story

Monthly recap. Premium: LLM narrative from AnonymizedInsight + first name. Free: templated. Routing in PeriodStoryBuilder via PremiumStatus. nudgey-period-story on the title surface.

OWNER SB11 · landed
F-06

Premium upsell

The single monetization gate. Triggered by the 6th conversation turn or the 2nd same-week Drop. ZED-driven M-Pesa STK push for payment (orderId-idempotent, recovery on launch). Never blocks the daily. Decline returns to surface, not home.

OWNER SB11 · landed
F-07

Pre-spend pause

The live agentic moment. Outgoing payment detected → 5-second pause card with amount, category projection, headroom impact. Never auto-cancels. nudgey-pause coral. On-device only — latency-fatal otherwise.

OWNER SB10 · landed