Skip to content

Data Storage

Wilson stores all financial data locally in a SQLite database at ~/.agentwilson/data.db. No data leaves your machine unless you explicitly use a cloud LLM provider for AI queries.

~/.agentwilson/data.db

Back up your data by copying this file. Restore by replacing it.

The primary table storing all imported transactions:

ColumnTypeDescription
idINTEGERAuto-incrementing primary key
dateTEXTTransaction date (YYYY-MM-DD)
merchant_nameTEXTMerchant or payee name
amountREALTransaction amount (negative = expense, positive = income)
categoryTEXTPrimary spending category
category_detailedTEXTDetailed PFC category code
descriptionTEXTOriginal transaction description
external_idTEXTDeduplication key (unique index)
payment_channelTEXTPayment method (online, in store, etc.)
pendingINTEGERWhether transaction is pending (0/1)
authorized_dateTEXTAuthorization date if different from posted date
sourceTEXTImport source (chase, amex, monarch, etc.)
created_atTEXTWhen the record was imported

Tracks imported files for deduplication:

ColumnTypeDescription
idINTEGERPrimary key
file_hashTEXTSHA-256 hash of the imported file
file_nameTEXTOriginal filename
record_countINTEGERNumber of transactions imported
imported_atTEXTImport timestamp

Throughout Wilson, amounts follow this convention:

  • Negative = expense (money out)
  • Positive = income/credit (money in)

This applies to the database, all tool results, and displayed summaries.

Wilson uses the Plaid Financial Category (PFC) v2 taxonomy:

  • 18 primary categories — Groceries, Dining, Transportation, Entertainment, etc.
  • 120+ detailed categories — More specific subcategories for granular tracking

Categories are assigned by the AI during categorization and can be overridden manually.

Schema migrations are idempotent ALTER TABLE statements that run automatically on startup. Your data is preserved across Wilson updates.