# Sift: UX spec ## Users and primary jobs People with several credit cards, often in more than one currency (ex-Mint users, freelancers, small owners). 1. Get statements in with no effort (Gmail fetch, or upload). 2. Trust the numbers (every statement is checked to the cent). 3. Ask questions in plain language, across one or several currencies side by side. ## Information architecture - S01 Profiles (home) · S02 Chat · S03 Statements · S04 Gmail - Left nav: Profiles, Statements, Gmail. Chat opens from a profile. The same analysis also works in MCP clients (Claude Desktop, Cursor); S02 is the built-in version. ## Key flows 1. **First run:** S01 empty → create profile (name + base currency) → S04 Connect Gmail (or S03 Upload) → S03 statements read and validated → S02 suggested questions. 2. **Monthly:** S04/S03 auto-sync finds new statements → S01 badge shows any needing review → S03 fix → S02 ask. 3. **Compare currencies:** S01 tick USD and EUR profiles → Compare in chat → S02 answer in two columns. 4. **Fix a bad statement:** S01 badge or S02 note → S03 expand row → apply suggested fix → re-check. 5. **Export:** S02 Export… → CSV / JSON / Parquet per profile. ## Design system - **Colours:** background #F7F6F2, surface #FFFFFF, border #DAD7CE, text #1B1F23, muted #5A6168, primary #2F5D50 (white text 7:1), primary tint #E3EDE9, success text #1E5A36, warning #7A4E00 on #FFF1D0, error #8E1F1F on #FBE0E0, focus ring #1F4FBF. - **Type:** system sans. 24 page title, 17 card title, 15 body, 13 secondary. Numbers 24–28 bold. Monospace 13 for reconciliation math. - **Spacing:** 4-pt scale; page padding 32/40; card padding 18, radius 10; buttons radius 6. - **Components:** profile card, status tag (icon + text), chat bubbles, per-currency result columns, FX badge ("@ rate"), data table with expandable row, primary/secondary buttons. - **Tone:** plain, calm, specific. Say what happened and the fix ("Totals don't tie by €1,240.00"). No jargon, no blame. - **Money rules:** never add different currencies; always show original amount, rate and charged amount for foreign transactions. ## Accessibility - Contrast AA or better everywhere; status never by colour alone. - All controls keyboard reachable in reading order; visible 3px focus ring. - Inputs have labels; tables use real headers; chat answers are plain text and tables readable by screen readers. ## Open questions - Optional converted view across currencies (and which rate to use). - Whether "Open chat" should also support multiple saved conversations per profile.