Derived recurring-obligation state only. No bank sync, automatic cancellation, money movement, or legal authority.
Fixture demo only. Connector strategy and email/CSV prototypes use embedded fixture data only. No Gmail OAuth, no mailbox access, no token storage, no bank connection, no persistence, and no money movement. Governance defines consent, scope, custody, and deletion rules for a future connector only.
BKI-SUB-027 · Session-only progress
SubShield guided tour
In-app guide for testers and operators. Explains each dashboard area, what is demo/local vs dev-preview vs decision-only vs blocked. Viewed steps are tracked in this browser session only — no accounts, analytics, or persistent onboarding.
Tutorial steps17
Demo features10
Dev preview1
Decision only5
Blocked / future1
Viewed this session0
Welcome to SubShield
Demo / local
SubShield helps you spot recurring charges, renewal risk, and post-cancel repeat billing using derived obligation state — not live banking or automatic cancellation.
Use this guided tour to jump to each dashboard section.
Mark steps viewed in this browser session only.
Not available yet
No accounts, analytics, or persistent onboarding tracking.
No production onboarding or “you are fully protected” claims.
Safety boundary
Fixture/local demo posture — not a production financial product yet.
No money movement, legal advice, or refund/dispute automation.
BKI-SUB-022 · Reconciled dashboard IA polish
Protection command center
9 obligations reconciled · 11 renewal alerts · 2 proof items. Reference date 2026-05-30. This groups fixture/local derived outputs into the three queues a user would review first.
Renewal queue
Cursor Pro
URGENT
Cursor Pro renewal due in 2 day(s) (2026-06-01). Due 2026-06-01.
Next step: Confirm you still want the subscription or cancel before renewal.
Fixture/local preview only; no live bank sync or money movement.
Derived recurring-obligation and proof metadata only; no raw mailbox, CSV, or Gmail payload retention.
Cancellation guidance stays user-directed; no automatic cancellation, refund filing, dispute filing, or legal authority.
Manual import design spike
Connector-first is the long-term source path (email receipts first). CSV remains a fallback/manual audit lane (fixture prototype below). PDF and screenshots remain designed but blocked.
Designed input lanes3
MVP candidate1
OCR-required lanes1
Raw files stored by default0
CSV statement export
MVP candidate
User exports a statement as CSV for the audit.
Input: CSV export
Parser now: Fixture prototype only
OCR: No
PDF statement
Designed, not enabled
User provides a PDF only after retention copy exists.
Input: PDF statement
Parser now: No
OCR: No
Screenshot of statement lines
Designed, not enabled
User supplies a narrow screenshot of relevant statement rows.
Input: Screenshot
Parser now: No
OCR: Required later
Connector-first source strategy
SubShield becomes a recurring-obligation intelligence layer over user-controlled sources. Email receipts are the preferred first live connector lane; bank/card access is high-risk and blocked until explicit approval.
Detects: PDF statement tables; Screenshot statement lines
Blocked until: PDF parser; OCR scope
Email connector governance
SubShield can review subscription-related receipts, renewal notices, and cancellation confirmations to detect recurring obligations and proof signals. In this version, connector access is not live. Future connector access will require explicit consent and can be disconnected.
Gmail dev/preview OAuth only when explicitly enabled (not production)
No mailbox access yet
No token storage yet
No persistence yet
Production persistent custody requires separate approval
Decision options5
Fixture approved1
Dev/preview eligible2
Production custody blocked2
Broad mailbox blocked1
Recommended nextgmail
Current state — fixture-only email receipt prototype
Approved — fixture only
Access: no mailbox access
Custody: none fixture only
Current state — fixture prototype only
Recommended next — Gmail dev/preview session-only
Approved — dev/preview only
Access: receipt search only
Custody: session only no persistence
Recommended next implementation path
Future option — Outlook dev/preview session-only
Approved — dev/preview only
Access: user selected messages
Custody: session only no persistence
Blocked — production persistent token custody
Blocked — pending decision
Access: receipt search only
Custody: encrypted server custody
Blocked: production persistent tokens
Blocked — broad mailbox read (not allowed for MVP)
Blocked for MVP
Access: broad mailbox read
Custody: not allowed
Blocked: production persistent tokens
Blocked: broad mailbox read for MVP
Gmail dev/preview connector
Operator testing path only. Session-only access token in an encrypted HTTP-only cookie (~15 minutes). Receipt/search-limited scan. Parse then discard. Public production Gmail launch remains blocked.
Operator evidence: PASS (docs/evidence/gmail-dev-preview-20260531-0100.md). Limited internal alpha = test users only, session-only Gmail, no public launch. See docs/GMAIL_INTERNAL_ALPHA_DECISION.md.
Review each change between fixture before/after snapshots. Mark rows reviewed in this session only — nothing is saved. Use filters to focus on urgent changes first; toggle unchanged rows when confirming stable merchants.
Fixture/local only
Derived obligation diff — not a budgeting ledger
No file upload or saved import history
Review marks are session-only — refresh clears them
Before count6
After count7
Changes10
New2
Removed1
Amount changes1
Urgent2
Watch1
Unchanged (total)1
Reviewed (visible)0
10 visible changes still need review in this session.
1 unchanged merchant hidden — enable the toggle to include them.
Reviewed
Merchant
Change
Severity
Before amount
After amount
Before next charge
After next charge
Message
Recommended action
Evidence labels
Cursor Pro
Amount changed
urgent
$32.00
$42.00
2026-06-01
2026-07-01
Cursor Pro amount changed from 32 to 42.
Investigate the price jump; compare to prior receipts or merchant notice.
Demo card statement — May 2026 · Demo card statement — June 2026 re-import
Kids Game Pass trial
New obligation
urgent
—
$6.99
—
2026-07-01
Kids Game Pass trial appears as a new derived recurring obligation.
Review the new recurring charge; confirm whether it should stay on your card.
Fixture email receipt connector prototype
Adobe Creative Cloud
Cancellation state changed
watch
$71.99
$71.99
—
—
Adobe Creative Cloud cancellation state changed from watching_for_repeat_charge to repeat_charge_detected.
Repeat charge detected after cancellation — compare to proof metadata.
Demo charge after cancel letter · Demo card statement — June 2026 re-import
Adobe Creative Cloud
Risk flags changed
warning
$71.99
$71.99
—
—
Adobe Creative Cloud risk flags changed between re-import snapshots.
Review new risk flags and watch for trial conversion or repeat charges.
Demo charge after cancel letter · Demo card statement — June 2026 re-import
Cursor Pro
Risk flags changed
warning
$32.00
$42.00
2026-06-01
2026-07-01
Cursor Pro risk flags changed between re-import snapshots.
Review new risk flags and watch for trial conversion or repeat charges.
Demo card statement — May 2026 · Demo card statement — June 2026 re-import
Google One Storage
Next charge changed
warning
$29.99
$29.99
2026-06-12
2026-05-20
Google One Storage next expected charge moved from 2026-06-12 to 2026-05-20.
Renewal or charge date moved earlier — review before the new date.
Spotify Premium appears as a new derived recurring obligation.
Review the new recurring charge; confirm whether it should stay on your card.
Demo card statement — June 2026 re-import
Cursor Pro
Next charge changed
info
$32.00
$42.00
2026-06-01
2026-07-01
Cursor Pro next expected charge moved from 2026-06-01 to 2026-07-01.
Note the later charge date; adjust renewal reminders if needed.
Demo card statement — May 2026 · Demo card statement — June 2026 re-import
Dropbox Plus
Removed obligation
info
$15.99
—
2026-06-10
—
Dropbox Plus is no longer present in the re-imported derived set.
Confirm the charge truly stopped; keep proof if you recently cancelled.
Demo card statement — May 2026
Netflix
Next charge changed
info
$18.99
$18.99
2026-06-02
2026-07-02
Netflix next expected charge moved from 2026-06-02 to 2026-07-02.
Note the later charge date; adjust renewal reminders if needed.
Demo card statement — May 2026 · Demo card statement — June 2026 re-import
Renewal Shield preview
Local preview only. No notifications yet. No background scan. No production connector required.
Total alerts11
Urgent2
Warnings7
Watchlist2
Next 7 days5
Next 30 days11
Merchant
Severity
Kind
Due
Days until
Message
Recommended action
Cursor Pro
urgent
renewal due soon
2026-06-01
2
Cursor Pro renewal due in 2 day(s) (2026-06-01).
Confirm you still want the subscription or cancel before renewal.
Netflix
urgent
renewal due soon
2026-06-02
3
Netflix renewal due in 3 day(s) (2026-06-02).
Confirm you still want the subscription or cancel before renewal.
Apple Services
warning
renewal due soon
2026-06-08
9
Apple Services renewal due in 9 day(s) (2026-06-08).
Confirm you still want the subscription or cancel before renewal.
Cursor Pro
warning
price increase
2026-06-01
2
Price increase detected for Cursor Pro.
Review the new amount before the next charge posts.
Dropbox Plus
warning
renewal due soon
2026-06-10
11
Dropbox Plus renewal due in 11 day(s) (2026-06-10).
Confirm you still want the subscription or cancel before renewal.
Google One Storage
warning
annual renewal
2026-06-12
13
Google One Storage renewal due in 13 day(s) (2026-06-12).
Confirm you still want the subscription or cancel before renewal.
Kids Game Pass trial
warning
trial conversion
2026-06-15
16
Trial conversion risk for Kids Game Pass trial — charge expected 2026-06-15.
Cancel before the trial ends if you do not want to be charged.
Kids Game Pass trial
warning
renewal due soon
2026-06-15
16
Kids Game Pass trial renewal due in 16 day(s) (2026-06-15).
Confirm you still want the subscription or cancel before renewal.
Neighbor Cafe repeat
warning
renewal due soon
2026-06-22
23
Neighbor Cafe repeat renewal due in 23 day(s) (2026-06-22).
Confirm you still want the subscription or cancel before renewal.
Adobe Creative Cloud
watch
cancelled watch repeat charge
2026-04-01
-59
Adobe Creative Cloud was cancelled — watch for repeat charges on your card.
Compare upcoming card activity to cancellation proof; dispute unexpected charges with your bank.
GoodLife Fitness
watch
cancelled watch repeat charge
2026-06-05
6
GoodLife Fitness was cancelled — watch for repeat charges on your card.
Compare upcoming card activity to cancellation proof; dispute unexpected charges with your bank.
BKI-SUB-023 · Local notification design (preview only)
Renewal notification design
Local design preview only. These rows show copy, timing, and user action intent for future reminders. No push, email, SMS, background scheduler, persistence, or delivery channel is enabled.
Design items11
Local previews11
Future channels0
Delivery enabled0
Schedulers enabled0
Raw payloads retained0
Merchant
Urgency
Title
Preview copy
Target date
Channel
Delivery
Cursor Pro
Needs review now
Renewal review: Cursor Pro
Cursor Pro renewal due in 2 day(s) (2026-06-01). Target date: 2026-06-01. This is a local preview only; no notification was sent.
2026-06-01
in app local only
Disabled preview
Netflix
Needs review now
Renewal review: Netflix
Netflix renewal due in 3 day(s) (2026-06-02). Target date: 2026-06-02. This is a local preview only; no notification was sent.
2026-06-02
in app local only
Disabled preview
Apple Services
Review soon
Renewal review: Apple Services
Apple Services renewal due in 9 day(s) (2026-06-08). Target date: 2026-06-08. This is a local preview only; no notification was sent.
2026-06-08
in app local only
Disabled preview
Cursor Pro
Review soon
Price change review: Cursor Pro
Price increase detected for Cursor Pro. Target date: 2026-06-01. This is a local preview only; no notification was sent.
2026-06-01
in app local only
Disabled preview
Dropbox Plus
Review soon
Renewal review: Dropbox Plus
Dropbox Plus renewal due in 11 day(s) (2026-06-10). Target date: 2026-06-10. This is a local preview only; no notification was sent.
2026-06-10
in app local only
Disabled preview
Google One Storage
Review soon
Annual renewal review: Google One Storage
Google One Storage renewal due in 13 day(s) (2026-06-12). Target date: 2026-06-12. This is a local preview only; no notification was sent.
2026-06-12
in app local only
Disabled preview
Kids Game Pass trial
Review soon
Trial review: Kids Game Pass trial
Trial conversion risk for Kids Game Pass trial — charge expected 2026-06-15. Target date: 2026-06-15. This is a local preview only; no notification was sent.
2026-06-15
in app local only
Disabled preview
Kids Game Pass trial
Review soon
Renewal review: Kids Game Pass trial
Kids Game Pass trial renewal due in 16 day(s) (2026-06-15). Target date: 2026-06-15. This is a local preview only; no notification was sent.
2026-06-15
in app local only
Disabled preview
Neighbor Cafe repeat
Review soon
Renewal review: Neighbor Cafe repeat
Neighbor Cafe repeat renewal due in 23 day(s) (2026-06-22). Target date: 2026-06-22. This is a local preview only; no notification was sent.
2026-06-22
in app local only
Disabled preview
Adobe Creative Cloud
Watch cancelled merchant
Cancellation watch: Adobe Creative Cloud
Adobe Creative Cloud was cancelled — watch for repeat charges on your card. Target date: 2026-04-01. This is a local preview only; no notification was sent.
2026-04-01
in app local only
Disabled preview
GoodLife Fitness
Watch cancelled merchant
Cancellation watch: GoodLife Fitness
GoodLife Fitness was cancelled — watch for repeat charges on your card. Target date: 2026-06-05. This is a local preview only; no notification was sent.
2026-06-05
in app local only
Disabled preview
Cancellation proof workspace
Derived proof metadata only. No uploads yet. No raw artifact retention. No legal/refund/dispute automation. Watch after cancellation.
Total proof items2
Confirmation-ready0
Watchlisted2
Repeat charge detected0
Needs review0
Merchant
Status
Confirmation #
Effective date
Watch until
Source
Recommended action
Adobe Creative Cloud
watching for repeat charge
—
—
—
gmail dev preview
Watch card activity until watch-until date; flag unexpected charges in SubShield.
GoodLife Fitness
watching for repeat charge
—
—
—
gmail dev preview
Watch card activity until watch-until date; flag unexpected charges in SubShield.
BKI-SUB-026 · Demo/local only
Manual cancellation confirmation
Typed confirmation metadata only. No file upload, screenshot/PDF storage, or legal/refund/dispute automation. Preview builds a derived proof workspace item in local React state only.
Local/demo only — nothing is saved or sent to an API
Confirmation number and dates are user-entered proof metadata
Cancellation proof helps users show they cancelled a subscription and watch for repeat charges. SubShield stores derived proof metadata only today. Any future upload lane must define redaction, retention, and deletion before implementation.
No upload endpoint in this build
Default posture: derived metadata only
Parse-then-discard required for any future file lane
No legal/refund/dispute automation from proof artifacts
Decision options6
Current state1
Design approved1
Blocked pending policy2
Blocked for MVP2
Recommended nextmanual confirmation fields
Current state — derived metadata only
Approved — current state
Proof comes from fixture email/Gmail-derived signals and workspace metadata. No file upload.
Retention: derived metadata only
Redaction: not applicable
Current state — derived metadata only
Recommended next — manual confirmation fields only
Approved for design only
User types confirmation number and effective date after cancelling. No file bytes stored.
Retention: derived metadata only
Redaction: not applicable
Recommended next design path
Future option — screenshot parse-then-discard
Blocked pending redaction policy
User uploads a narrow cancellation screenshot; OCR extracts confirmation metadata; image discarded.
Retention: parse then discard
Redaction: auto crop confirmation region
Future option — PDF confirmation parse-then-discard
General proof document vault with search and sync. Out of product scope.
Retention: not allowed
Redaction: no redaction assumption blocked
Blocked: Explicit product scope expansion; Not planned for SubShield MVP
Fixture email receipt connector prototype
Fixture data only. No Gmail OAuth, no mailbox access, no token storage, no persistence, and no real email ingestion. Only derived recurring obligations and cancellation-proof candidates are shown.
Fixture receipts only
No Gmail OAuth
No mailbox access
No token storage
No persistence
CSV prototype boundary
Fixture CSV only. Raw CSV is parsed in prototype code and discarded — not retained, not uploaded, and not persisted. This does not parse live user data.
Fixture CSV source only
No upload endpoint
No live import
No persistence
No bank connector
Product boundary
We do
Detect recurring charges from imported statements or receipts
Estimate monthly and annual subscription cost
Flag renewal and price-change risk
Guide cancellation and preserve proof
Watch for charges after cancellation
We do not
Connect to banks in this version
Move money
Cancel subscriptions automatically
Store full bank histories
Provide legal, tax, or investment advice
Become a budgeting app or password vault
Demo wiring complete · Next BKI gates
What is wired vs what needs approval
The demo now runs end-to-end across reconciliation, renewal alerts, proof workspace, re-import diff review, manual confirmation preview, and optional Gmail dev/preview — all fixture/local or session-only.
Wired now (demo): command center, reconciled audit board, Gmail dev/preview, re-import diff review.
Production finish (BKI-SUB-030): Supabase auth + persist Gmail-derived obligations — connector-only, no CSV upload.
Blocked without gate: public production Gmail, bank connectors, notification delivery.
First wedge MVP
Subscription Leak Audit
Import statement or receipt
Detect recurring charges
Generate risk board
Guide cancellation
Save proof
Re-check future statements
Privacy stance
Source data stays external by default.
Connector-first strategy prioritizes email receipts before bank/card access.
CSV remains a fallback/manual audit path (fixture prototype only today).
Only derived recurring-obligation state should be stored long term.
Raw email bodies and CSV are not retained by fixture prototypes.
No live connector, OAuth, or token storage in this build.
No provider credentials stored in SubShield.
Cancellation proof is user-controlled evidence, not legal advice.