Library › Money
Weekly money check-in
Run a weekly personal-finance check-in from a bank or card CSV export. Totals by category vs. budget targets, flags overspending, possible duplicate charges, subscriptions, and uncategorized items, and suggests 3 concrete actions. Use when the user shares transactions and asks how their week or month went, where money went, or to check their budget.
Self-tested · demo data
What "self-tested" means: our own AI agent ran this skill against the fictional demo files and we published its real output, failures included. The same agent also wrote the skill and the demo data, so this is not an independent review. Check results yourself before you rely on them.
Drop the folder into your agent's skills directory (e.g. ~/.agents/skills/ or ~/.claude/skills/), or paste SKILL.md into any chat assistant. Demo files included:
demo/budget.mddemo/checkin.pydemo/transactions.csv
Test record
| Field | Value |
|---|---|
| Status | Self-tested (demo data) |
| Version / date | v1.1 re-test: 2026-10-14 (v1.0 first test: 2026-10-13) |
| Model / agent | Grok Bot (the same agent that wrote the skill and the demo data, so this is not an independent test) |
| Input | demo/transactions.csv (16 fictional transactions, Oct 5–11, 2026) + demo/budget.md targets |
| Method | Grok Bot re-ran the updated demo/checkin.py (v1.1). Every number below is copied from that run's output; none were added up by hand. |
What changed in v1.1
- Failure fixed: category math. In v1.0 a café subtotal quoted in the actions was added up by hand and came out wrong ($27.25; the correct figure is $27.50). Fix: the script now prints merchant subtotals for each over-target category, and the skill requires every number, including those in the actions, to be copied from the script output.
- Failure fixed: duplicate-charge false positive. v1.0 flagged the recurring coffee purchases as a possible duplicate. Fix: new repeat-charge rules: a likely double charge is a subscription-type merchant charging the same amount twice in one cycle; a possible duplicate is the same merchant and amount on the same day; a recurring habit is 3+ purchases on different days at a non-subscription merchant.
v1.1 result (real output)
Week of Oct 5–11, 2026 · 16 transactions. Income $1,850.00. Spending (not counting savings) $519.93. Saved $200.00 ✅. Left over after everything: $1,130.07.
| Category | Spent | Target | Result |
|---|---|---|---|
| Utilities | $142.18 | — | (monthly power bill) |
| Groceries | $138.59 | $150 | ✅ $11.41 under |
| Dining | $66.10 | $40 | ⚠️ $26.10 over |
| Shopping | $64.99 | $50 | ⚠️ $14.99 over |
| Transport | $41.10 | $60 | ✅ $18.90 under |
| Uncategorized | $66.97 | — | see below |
| Savings transfer | $200.00 | $200 | ✅ on target |
Inside the over-target categories (from the script): Dining = Corner Cafe $27.50 + Pizza Planet Delivery $38.60. Shopping = Online Marketplace $64.99.
Repeat charges - TuneBox Music: LIKELY DOUBLE CHARGE. $10.99 on Oct 8 and Oct 10 ($21.98 total) from a subscription merchant, within one billing cycle. Check with TuneBox or the bank. - Corner Cafe: RECURRING HABIT, not a duplicate. 4 purchases (Oct 6, 7, 8, 11) totaling $27.50. - Greenleaf Grocery: a normal repeat purchase (2 shops, $138.59).
Uncategorized → proposed: Streamly $15.99 → Subscriptions; TuneBox $10.99 ×2 → Subscriptions; FitHub Gym $29.00 → Health & fitness. Subscriptions: Streamly $15.99 + TuneBox $10.99 + FitHub $29.00 = $55.98/month (assuming monthly billing, with one TuneBox charge counted).
3 actions for next week 1. Ask TuneBox or the bank about the second $10.99 charge (Oct 10). 2. Dining was $26.10 over: Corner Cafe $27.50 + one Pizza Planet order $38.60. Without that one delivery order, Dining would have been just the Corner Cafe $27.50, under the $40 target. Skip one delivery next week. 3. Shopping was $14.99 over from one $64.99 marketplace order. Hold non-essential orders until next week's check-in.
Check against v1.0: the false positive is gone (Corner Cafe is now classed as a habit), the real issue is still caught (TuneBox), and $27.50 matches the script exactly.
Remaining known failures / limits
- Subscription detection uses name keywords ("SUBSCRIPTION", "MUSIC", "GYM", "STREAM"). A subscription without those words would be missed, and a shop with "STREAM" in its name could be misclassified. Users should confirm the list.
- A real double charge at a habit merchant (e.g. two identical café charges on one day plus other visits) would currently be labeled a habit. The same-day check runs only when there are exactly 2 charges.
- The monthly utility bill still distorts the weekly view (not fixed in v1.1).
- The subscription total assumes monthly billing.
- Only tested on one clean CSV format. Real bank exports are untested.
- During this re-test, a draft of action 2 said skipping the delivery would close "most of" the gap. Checked against the script figures, that was wrong (it closes all of it), and it was corrected before publishing. Wording that compares numbers still needs a check.
- Self-tested only: the same agent wrote the skill, the demo data, and ran the test.
History
- v1.0 (2026-10-13): a hand-added subtotal was wrong ($27.25 vs. $27.50), and the coffee purchases were wrongly flagged as a duplicate. Both are fixed in v1.1.
The skill file
---
name: weekly-money-checkin
description: Run a weekly personal-finance check-in from a bank or card CSV export. Totals by category vs. budget targets, flags overspending, possible duplicate charges, subscriptions, and uncategorized items, and suggests 3 concrete actions. Use when the user shares transactions and asks how their week or month went, where money went, or to check their budget.
license: MIT
metadata:
library: TriedSkills
job: Weekly money check-in
version: "1.1"
---
# Weekly money check-in from a CSV
## Inputs
A transactions CSV (date, description, amount; category if available) and, optionally, budget targets by category. Negative amounts = money out (if the export uses a different sign convention, detect it and say so).
## Steps
1. **Compute with code, never by eye.** Load the CSV (see `demo/checkin.py` for a reference script). Report the row count and date range. **Every number in the report, including subtotals quoted in the actions, must be copied from the script output.** If you need a number the script doesn't print, add it to the script and re-run. Don't add it up yourself.
2. Total income, total outflow, and spending **excluding transfers to savings**. Treat savings transfers as a win, not as spending.
3. Total each category and compare it to its target: over/under and by how much.
4. List **uncategorized** rows and propose a category for each (subscriptions, gym, etc.).
5. Classify **repeat charges** by merchant, using these rules (the script applies them):
- **Likely double charge:** a subscription-type merchant (streaming, music, gym, software) billed the same amount twice within one billing cycle (≤ 25 days). Tell the user to check with the merchant or bank.
- **Possible duplicate:** the same merchant and amount twice on the **same day**.
- **Recurring habit, not a duplicate:** 3+ separate purchases on different days at a non-subscription merchant (e.g. daily coffee). Report the total as a spending pattern, not an error.
- Otherwise: a normal repeat purchase.
6. List recurring **subscriptions** with a monthly total.
7. Give **3 specific actions** for next week, each tied to a number above.
## Output format
Summary line → category table → flags (duplicates, uncategorized, subscriptions) → 3 actions.
## Guardrails
- Not financial, tax, or investment advice. Stick to the user's own numbers and simple budgeting.
- Never ask for or store account numbers or passwords. The CSV should never leave the user's control.