Finance query
Answer questions about personal finances — balances, transactions, spending patterns, account status, recent purchases, merchant history, income tracking. Use when the user asks anything about their money, accounts, or transactions.From its SKILL.md
npx -y skills add weklund/fiduciary --skill finance-queryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 10 stars10 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `sqlite3 data/finance.db` and 2 more.
SKILL.md
3.0 KB, 668 tokens by cl100k_base, as published. Nobody here has run it
Instructions
Answer the user's financial question using the unified SQLite ledger.
Data source
Primary: data/finance.db (SQLite — unified ledger of all transactions from Plaid + CSVs)
Query with: sqlite3 data/finance.db "SELECT ..."
Fallback (if DB missing): data/latest/*.json
Schema
transactions (
id TEXT PRIMARY KEY,
date TEXT, -- ISO format YYYY-MM-DD
description TEXT,
amount REAL, -- POSITIVE = debit (money spent), NEGATIVE = credit (income/refund)
merchant TEXT,
category TEXT, -- Plaid category (may be empty for CSV-sourced)
account_name TEXT,
account_mask TEXT, -- last 4 digits
account_type TEXT, -- depository, credit, loan, investment
institution TEXT,
source TEXT, -- 'plaid' or 'csv'
source_file TEXT
);
accounts (
account_id TEXT PRIMARY KEY,
name TEXT,
type TEXT,
subtype TEXT,
mask TEXT,
institution_id TEXT,
balance_current REAL,
balance_available REAL,
balance_limit REAL,
last_updated TEXT
);
Steps
- Check if
data/finance.dbexists. If not, suggest runningpython3 scripts/ingest.pyfirst. - Query the database using sqlite3 to answer the user's question.
- Present results clearly with specific numbers, dates, and merchant names.
Query patterns
# Date range spending
sqlite3 data/finance.db "SELECT description, amount, date FROM transactions WHERE date >= '2026-06-01' AND amount > 0 ORDER BY amount DESC LIMIT 20"
# Spending by merchant
sqlite3 data/finance.db "SELECT description, SUM(amount), COUNT(*) FROM transactions WHERE amount > 0 GROUP BY description ORDER BY SUM(amount) DESC LIMIT 20"
# Monthly totals
sqlite3 data/finance.db "SELECT substr(date,1,7) as month, SUM(CASE WHEN amount > 0 THEN amount ELSE 0 END) as spent, SUM(CASE WHEN amount < 0 THEN ABS(amount) ELSE 0 END) as income FROM transactions GROUP BY month ORDER BY month"
# Search by merchant
sqlite3 data/finance.db "SELECT date, description, amount FROM transactions WHERE LOWER(description) LIKE '%quills%' ORDER BY date DESC"
# Account balances
sqlite3 data/finance.db "SELECT name, mask, type, balance_current, balance_limit FROM accounts ORDER BY balance_current DESC"
# Income sources
sqlite3 data/finance.db "SELECT date, description, ABS(amount) FROM transactions WHERE amount < 0 AND ABS(amount) > 100 ORDER BY date DESC LIMIT 20"
Conventions
- amount > 0 = money spent (debit)
- amount < 0 = money received (credit/income)
- Dates are ISO format (YYYY-MM-DD)
- Always clarify the time period in your response
- Round dollar amounts to 2 decimal places
- Use
-header -columnfor readable output:sqlite3 -header -column data/finance.db "..."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most finance skills give in 668 tokens
Counted across 469 of the 469 authors here whose files we hold, read 2026-08-07
- Extract date vendor amount and descriptionin 15 of 469, across 3 files
- Scan folder for invoice filesin 14 of 469, across 2 files
- Rename files to standard formatin 14 of 469, across 2 files
- Show organization plan before movingin 14 of 469, across 2 files
- Generate summary CSVin 14 of 469, across 2 files
- Organize files by categoryin 13 of 469, across 1 file
- Preserve original filesin 13 of 469, across 1 file
- Flag files missing critical infoin 13 of 469, across 1 file
- Produce the requested output filein 9 of 469, across 4 files
- Build best, base, and worst case scenariosin 9 of 469, across 5 files
- Implement backoff if rate limit errors occurin 8 of 469, across 3 files
- Determine the weighted average cost of capitalin 8 of 469, across 4 files
Said here and by no other author read
- check if database file exists
- query the database using sqlite3
- present results with specific numbers and dates
- clarify the time period in response
- use header and column flags for readable output
- suggest ingest script if database is missing
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.