Skill instructions
analyze-spending1.28 KB
View saved version →
---
name: analyze-spending
description: Use when the user asks to categorize spending, group by merchant or category, rank top merchants, or show monthly trends on converted statements. Do not use for first-time PDF conversion, period reconciliation, or benchmark scoring.
---
# Analyze
**Input:** the user's analysis scope — account, product, content hash, date range, or free-text filter.
**Output:** category totals, merchant or counterparty totals, top merchants, and a monthly trend, each row citing content_hash.
Treat the input as the user's analysis scope: account, product, content hash, date range, or free-text filter.
Follow this sequence:
1. If the scoped statement has not been categorized, call `categorize_statement`.
2. Call `group_by` for category totals within the scope.
3. Call `group_by` for merchant or counterparty totals within the scope.
4. Call `top_n` to rank the largest merchants or counterparties within the scope.
5. Call `time_series` with monthly buckets for trend figures within the scope.
6. Present category totals, merchant or counterparty totals, top merchants, and the monthly trend. Cite content_hash for every figure or table row you report.
**Example prompt:** Categorize my checking account spending last quarter and show top merchants plus the monthly trend.
benchmark-accuracy1.12 KB
View saved version →
---
name: benchmark-accuracy
description: Use when the user asks to convert and score a published Bankstatemently benchmark statement. Do not use for ordinary user-statement conversion, spending analysis, or reconciliation.
---
# Benchmark
**Input:** a benchmark statement id, PDF URL, or free-text benchmark request.
**Output:** extraction accuracy, integrity score, overall score, and major failure categories, citing the benchmark statement id and converted document content_hash.
Treat the input as a benchmark statement id, PDF URL, or free-text benchmark request.
Follow this sequence:
1. Read the benchmark catalog resource and choose the named published statement.
2. Convert the benchmark PDF with `convert_statement`.
3. Fetch the converted data with `get_statement` using original data mode.
4. Pass the benchmark statement id and original parsed transactions to `evaluate_benchmark`.
5. Present extraction accuracy, integrity score, overall score, and any major failure categories. Cite the benchmark statement id and converted document content_hash.
**Example prompt:** Convert and score the published bsb-004 benchmark statement.
convert-statement1.44 KB
View saved version →
---
name: convert-statement
description: Use when the user attaches a bank statement PDF or asks for CSV/XLSX/QBO/Xero export of a converted statement. Do not use for spending analysis, reconciliation, or benchmark scoring — those have their own skills.
---
# Convert
**Input:** a public HTTPS PDF URL, host-provided PDF attachment, or local file path the host cannot pass directly.
**Output:** the conversion summary, key account details, statement period, balances, transaction count, and optional CSV/XLSX/QBO/Xero download links.
Follow this sequence:
1. If the input is a public HTTPS URL or host-provided PDF attachment, call `convert_statement`.
2. If the input is a local file path and the host cannot pass the file directly, call `request_upload`, upload the PDF bytes from the file's absolute path to the returned URL, then call `convert_statement` with the upload id.
3. If conversion is still processing, poll `get_statement` until the statement is ready or the tool returns a terminal summary.
4. Present the tool summary, key account details, statement period, balances, and transaction count. Use the response summary as the source of truth when present.
5. Ask which export the user wants. For CSV, XLSX, QBO, or Xero, call `get_statement` with the requested output format and present the returned link.
**Example prompt:** Convert this bank statement PDF and give me a CSV download: https://bankstatemently.com/benchmark/statements/bsb-004-statement.pdf
reconcile-statements1.35 KB
View saved version →
---
name: reconcile-statements
description: Use when the user asks to check statement coverage, missing periods, balance continuity, or cross-account transfers. Do not use for converting a new PDF, spending categorization, or benchmark scoring.
---
# Reconcile
**Input:** the account, product, date range, or free-text scope to reconcile.
**Output:** a concise reconciliation report with covered periods, missing periods, balance-continuity breaks (with source content_hash pairs), and transfer findings.
Treat the input as the account, product, date range, or free-text scope to reconcile.
Follow this sequence:
1. Call `list_statements` to find statements in scope.
2. For each completed statement in scope, call `get_statement`.
3. Sort statements by account and period. Report missing periods, overlapping periods, and gaps.
4. Compare each closing balance with the next opening balance for the same account. Report every balance-continuity break with the two source content_hash values.
5. Call `list_transfers` for the same scope to identify cross-account matches and large unmatched movements when relevant.
6. Present a concise reconciliation report with the account scope, covered periods, missing periods, balance-continuity breaks, and transfer findings.
**Example prompt:** Reconcile my savings account for 2024 — flag missing months and any balance breaks.