SmrtCash docs

SmrtCash — Feature List#

Legend: ✅ available now · 🔜 next · 📋 planned · 💡 backlog (deferred)

The planned set was shaped by a competitive review of Monarch, Simplifi, Empower, Banktivity, CountAbout, Rocket Money and Moneydance — adopting their table-stakes features. As of 0.24.4, every arc through 0.22.x (production launch readiness) and 0.24.x (scenario expansion + matcher learning) is complete. Native mobile is deferred (the PWA covers it). See the Roadmap for phase detail and the Changelog for per-release notes.


Accounts, signup, billing (SaaS — 0.15.x / 0.16.x)#

Feature Status
Three pricing tiers — Starter / Plus / Family — with feature gating
14-day free trial via Stripe Checkout (no card required up front)
Stripe Customer Portal — change plan, update card, cancel
Dunning emails on invoice.payment_failed + 3-day grace window
Past-due grace handling at the entitlement layer
Per-tenant metered quotas (AI assistant, OCR) with cap-overflow warnings
Bank-connection cap by tier (0 / 10 / 25)
Public signup at /signup gated by PUBLIC_SIGNUP_ENABLED env
Email verification on signup (anti-enumeration: 202 always)
Self-service password reset with 1-hour token + session invalidation
Super-admin subscriptions console — grant / sync from Stripe / force-cancel
Super-admin SaaS health dashboard — tenants + subs + webhook ingest
Runtime-editable Stripe keys + signup gate + support URL (no env-file edit)
Operator-configured support / feature-request link on every page
Stripe automatic tax toggle (env or /settings)
Operator runbook covering webhook failures, customer triage, dunning, grace
Stripe automatic-tax dashboard setup (US sales-tax / EU VAT MOSS) 📋 outside the codebase
ToS + Privacy Policy lawyer review 📋 before commercial launch

Security & encryption#

Feature Status
Argon2id password hashing
Signed HttpOnly session cookies, sameSite=Strict
Per-tenant envelope encryption for attachments (DEK wrapped by KEK)
Super-admin rotate-encryption-key button (re-encrypts every attachment)
Legacy v0 (plaintext) and v1 (KEK-direct) attachments stay readable
72 dedicated cross-tenant isolation tests
Cross-tenant attachment decryption fails GCM auth
Audit log for every super-admin mutation
Account enumeration prevented on signup + password reset
Bring-your-own KMS for KEK 💡 deferred — current env-var KEK works

Accounts#

Feature Status
Create accounts with name, institution, last 4 digits
Seven account types (checking, savings, credit card, cash, investment, loan, other)
Per-account balance and transaction count
Net-worth summary across all accounts
Delete an account (cascades to its transactions)
True balance reconciliation with opening balances
Manual assets & liabilities (property, vehicles, loans)
Multi-currency accounts with daily-refreshed FX rates

Importing & Connectivity#

Feature Status
Import CSV and Excel (.xlsx / .xls) files
Auto-detect Chase credit-card and checking/savings layouts
Generic column-mapping for any other bank
Import preview, per-row error reporting, duplicate detection
Import history (batches) per account
OFX 1.x (SGML), OFX 2.x (XML), QFX, QIF import
Pluggable account data-source layer
OFX Direct Connect (direct bank protocol, no aggregator)
Optional Plaid sync (opt-in cloud aggregation, super-admin-gated)
Scheduled background sync (hourly / daily / weekly)
Scheduled crypto price refresh (CoinGecko, once per day)

Transactions#

Feature Status
View, filter by account, full-text search, pagination
Original bank description, memo, and source category preserved
Money shown as exact currency, color-coded in/out
AI-cleaned merchant names & categorization
Manual edit / re-categorize
Bulk edits with optional "save as rule"
Bulk delete (with confirm) for cleanup
Learned normalization rules (manual edits become persistent patterns)
Auto-learn from manual rename — editing a transaction's merchant name auto-upserts a normalization rule so future imports of the same description carry the rename forward (0.24.10)
Non-AI rules engine auto-applies during import (tenant-scoped, with enable/priority)
Transaction splits (one transaction → multiple categories)
Dedicated uncategorized review queue with inline categorization
Transfer linking between your own accounts
Recurring & subscription detection (AI-suggested, human-verified)
Subscription action queue (flag → cancel / alter / keep with notes)
AI subscription discovery (Claude-powered, filters out non-subscriptions)
Receipt & file attachments

Bill Matching & Recurring (0.22.x)#

Feature Status
Unified /recurring page (Bills + Subscriptions, single sidebar entry)
Per-bill amount mode — fixed (±$1/2%), drift (trailing-3mo avg ±10%), variable (absolute cap)
Per-bill merchant pattern + match-window (default ±7 days) + overdue-grace (default 3 days)
Auto-link incoming transactions to bills on import (vendor + date + amount fit)
Triage queue when matcher isn't confident (ambiguous vendor, edge-of-window, out-of-tolerance)
Daily overdue sweep — past-grace pending periods flip to overdue + emit an insight card
Drift-mode bills auto-track latest matched amount — going-forward expected snaps to the last actual payment (0.24.10)
Pause / Unpause bills indefinitely + Skip individual periods
Rescan transactions — 90-day backfill matcher after editing match config
Category fill-on-match — uncategorized transactions adopt the bill's category

AI#

Feature Status
Pluggable provider architecture (cloud or local)
Claude API provider
Local model provider (Ollama)
Rules-only deterministic fallback
Merchant cleanup & auto-categorization with confidence
Comprehensive hierarchical category taxonomy (~190 categories)
AI-suggested-category review (Approve / Merge / Reject)
Receipt OCR matching
Conversational AI financial assistant (17 tools, tenant-scoped, audit-logged)

Budgeting & Cash Flow#

Feature Status
Flex budgeting — fixed categories plus a variable-spending pool
Budget periods — weekly / bi-weekly / semi-monthly / monthly / custom
Monthly budget-vs-actual tracking
Savings goals with progress tracking
Credit-card payoff goals — track current balance toward $0 or N% utilization (default 30% for credit-score optimization); live progress from linked card balances; entry points on /goals AND /debt-payoff (0.22.2)
Goal templates — 28 curated templates (emergency fund, debt payoff, 529, retirement, sabbatical, etc.) with sensible defaults
Bill reminders & upcoming-bills view
Simple cash-flow forecast from recurring items
AutoMagic budget wizard (multi-period with bills/income/groceries/fuel/tolls)
Vehicle-driven fuel cost calculator (EIA prices, ICE + EV)
Toll-route weekly estimates
Calendar budget view (per-day spend heatmap + bill markers)

Wealth & Net Worth#

Feature Status
Investment holdings — cost basis & mark-to-market
Manual asset & liability tracking (house, mortgage, vehicle)
Net worth over time across all accounts (incl. holdings + A&L)
Multi-currency support with exchange rates
Retirement / long-term goal projections
Cryptocurrency holdings (mixed-asset accounts)
CoinGecko price refresh (manual + scheduled)

Insights & Reporting#

Feature Status
Spending by category
Income vs. expense trends
Dashboard with charts
Filtered CSV export
Spending-anomaly alerts (large / unusual-at-merchant / duplicate-suspect)
Daily anomaly scan — runs every ~23h per tenant, not just at import time (0.24.6)
Tax-category tagging + year-end Schedule A / C reports (JSON + CSV)
Editable per-tenant IRS mileage rates — was hardcoded, now per-year inline-editable on /mileage (0.24.5)
Data portability (full .smrtcash export bundle, secrets stripped)
Canned reports catalog — 17 reports (CSV export per report)

Canned reports (full list)#

Core reports (0.13.x):

Added in 0.24.4:

What-if Scenarios (0.24.0–0.24.3)#

/scenarios is a hub: pick a scenario type from the left rail, fill in the form, see the result. Per-scenario inputs persist when switching so users can compare answers. URL carries ?type=<id> for refresh + sharing.

Scenario Category Status
Cash-flow stress test (income/expense %, one-time events) Cash flow
Invest $X/mo for Y years at Z% (tax-deferred vs taxable) Wealth
Bump 401(k) to N% (take-home impact + retirement balance impact) Wealth
Windfall split (emergency + debt + invest) Wealth
FIRE date (given save rate + spend) Wealth
Add $X/mo extra payment (time + interest saved) Debt
Balance transfer offer (promo APR + fee vs current) Debt
Consolidate at one rate (multi-debt rolled into one loan) Debt
Biweekly mortgage (years shaved + interest saved) Debt
Have a kid (childcare + 529 + tax credit; year 1 / 5 / 18) Life event
Buy a house (PITI + DTI + lender-comfort verdict) Life event
Job change (total comp delta adjusted for COL, N-year net) Life event
Sabbatical / income loss (runway + rebuild timeline) Life event
Recession / income shock (stress-test next year) Life event
Credit-score modeling (utilization → score band) Credit 📋 0.25.0
Retirement (retire at 60/65/67, SS timing, Roth ladder) Retirement 📋 0.25.1

Mobile & Experience#

Feature Status
Installable PWA (responsive, mobile home-screen, offline shell)
Bill-splitting / shared expenses (per-tenant participants, settle toggle)
Calendar budget view
Native mobile apps 💡 deferred

Households & Sharing#

Feature Status
Multi-tenant (one container, many households)
Roles — admin / spouse / child
Per-account read / read-write permission tuning
Invitations & memberships (SMTP-deliverable)
Super-admin audit log of every mutation
Cross-tenant data isolation verified end-to-end (72 dedicated tests, 0.14.x)

Data Integrity & Security#

Feature Status
Money stored as integer cents — never floating point
Parameterized SQL everywhere (injection-safe)
Transactional, all-or-nothing imports
Comprehensive automated test suite (unit → e2e)
Argon2id authentication
Encryption at rest — attachments & connection secrets AES-256-GCM (per-tenant envelope keys); managed database encrypted at rest
Per-tenant data isolation — every read + write scoped to your household
Full data export any time (.smrtcash archive)
Non-AI rules engine for auto-categorization (runs on import)

Platform#

See ROADMAP.md for the full phase plan and the longer-term backlog.