Skills
Free accounting and tax skills for AI agents — extraction, matching, footing, tie-outs, and anomaly detection. Every skill proves its own work and refuses to deliver a workpaper that doesn't tie. Everything runs on your machine: no cloud, no API keys, no uploads.
Open-source CPA Skills. Explore the code.
View on GitHub
Document extraction and conversion
Bank statement → Excel
bank-statement-to-excel.mdConvert PDF bank, credit card, and merchant-processor statements into a clean workbook with dates, descriptions, debits, credits, and running balance — and prove the extraction is complete against the statement’s own control totals. Local OCR for scans.
Schedule K-1 → standardized summary
k1-extract-summarize.mdExtract Schedule K-1 data box by box with the code preserved, then foot the aggregate K-1s to the entity return. Detects a missing K-1 through ownership percentages and a two-way recipient reconciliation. Full TINs rejected on input.
Receipts → expense spreadsheet
receipts-to-expense.mdReceipt images to an expense spreadsheet, proved by each receipt’s own internal sum — subtotal plus tax plus tip equals the printed total, a check independent of the OCR. Output schema is expense-policy-testing’s input schema exactly.
Foundational — run before the rest
Month-end close checklist
month-end-close-checklist.mdA close checklist derived from your trial balance, not a generic template. Assigns the right procedure per account from what the account is, and names the skill that performs it. An account absent from the checklist is reported as not considered — the usual close failure.
Trial balance and chart of accounts integrity
trial-balance-integrity.mdRun first on a new client, cleanup, or conversion. Debits equalling credits proves almost nothing; this proves every account maps to a statement line, the mapping foots, and surfaces duplicates like Repairs & Maintenance versus Repairs and Maintenance.
Reconciliation and close
Bank reconciliation → GL
bank-rec-to-gl.mdReconcile a bank statement to the GL cash account through a six-pass matching cascade, then produce the four-column reconciliation, the journal entries for unrecorded bank items, and aged outstanding-item schedules.
Year-over-year variance
return-yoy-variance.mdCompare two years line by line under dual materiality, flag the movements and the suspicious non-movements, and enforce that every explanation is causal and quantified.
Payroll tax reconciliation
payroll-tax-reconciliation.mdFour-way tie across the payroll register, the four Forms 941, W-2/W-3, and the GL. Infers the Social Security wage base from the data rather than asserting one, and isolates undeposited trust-fund tax.
Three-way match
three-way-match.mdPO to invoice to receiving, with four duplicate-detection patterns, quantity and price tolerances, vendor-level pattern rollup, and a quantified goods-received-not-invoiced accrual.
Depreciation and fixed asset tie-out
depreciation-tie-out.mdFixed asset register to depreciation schedule to return. Recomputes straight-line exactly; tests accelerated methods for consistency without asserting any rate. Catches disposed assets still depreciating and beginning balances that do not agree to the prior year.
AR aging tie-out
ar-aging-tie-out.mdTies the aging to the GL control account and then recomputes every bucket from the invoice date — because the total can agree while the aging is wrong. Grosses up netted credits, tests cutoff, and uses subsequent receipts to separate collection timing from valuation.
Cash flow statement tie-out
cash-flow-tieout.mdIndirect-method statement of cash flows with working capital derived from the balance sheet rather than taken from the statement. Cross-checks every non-operating movement, so a plug hidden in an “other” caption is caught even when the statement foots.
Month-end close checklist
month-end-close-checklist.mdA close checklist derived from your trial balance, not a generic template. Assigns the right procedure per account from what the account is, and names the skill that performs it. An account absent from the checklist is reported as not considered — the usual close failure.
Balance Sheet Reconciliation Pack
balance-sheet-recon-pack.mdBuilds a reconciliation for every balance sheet account — GL balance tied to its supporting schedule, reconciling items classified and aged, proposed journal entries, and a chart-wide completeness dashboard showing coverage, tie-out, and sign-off status.
Tax
Tax return review
tax-return-review.mdReview a prepared return against a structured checklist with evidence for every item tested. Starts with what’s missing — dropped carryforwards, absent forms, unfiled information returns. Checklists for 1040, 1120-S, 1065, 1120, depreciation, and amended returns.
Year-over-year variance
return-yoy-variance.mdCompare two years line by line under dual materiality, flag the movements and the suspicious non-movements, and enforce that every explanation is causal and quantified.
Schedule K-1 → standardized summary
k1-extract-summarize.mdExtract Schedule K-1 data box by box with the code preserved, then foot the aggregate K-1s to the entity return. Detects a missing K-1 through ownership percentages and a two-way recipient reconciliation. Full TINs rejected on input.
Depreciation and fixed asset tie-out
depreciation-tie-out.mdFixed asset register to depreciation schedule to return. Recomputes straight-line exactly; tests accelerated methods for consistency without asserting any rate. Catches disposed assets still depreciating and beginning balances that do not agree to the prior year.
Sales and use tax reconciliation
sales-tax-reconciliation.mdFiled returns to the sales ledger to the GL, with a liability rollforward that isolates collected-but-unremitted tax. Derives rates from the returns and produces a nexus screening schedule rather than a conclusion. Separates marketplace-facilitated sales throughout.
Filing diff
filing-diff.mdCompares two versions of a filing field by field. Catches what an ordinary diff cannot: a total that did not move while its components did, a field that stayed put where a dependent one moved, and any change made after review sign-off.
Audit and assurance
Bank reconciliation → GL
bank-rec-to-gl.mdReconcile a bank statement to the GL cash account through a six-pass matching cascade, then produce the four-column reconciliation, the journal entries for unrecorded bank items, and aged outstanding-item schedules.
Journal entry anomaly scan
journal-entry-anomaly-scan.mdFull-population journal entry scan across 26 tests — duplicates, round-dollar, weekend, after-hours, self-approval, threshold circumvention, unreversed accruals, Benford — with accumulating risk scores.
Audit sampling
audit-sampling.mdMUS/PPS, stratified, and attribute selection with a mandatory seed so the sample can be re-performed exactly. Population must tie to a control total; negative balances need an explicit decision. Projects with tainting.
Three-way match
three-way-match.mdPO to invoice to receiving, with four duplicate-detection patterns, quantity and price tolerances, vendor-level pattern rollup, and a quantified goods-received-not-invoiced accrual.
AR aging tie-out
ar-aging-tie-out.mdTies the aging to the GL control account and then recomputes every bucket from the invoice date — because the total can agree while the aging is wrong. Grosses up netted credits, tests cutoff, and uses subsequent receipts to separate collection timing from valuation.
Revenue trace to source
revenue-trace-to-source.mdTraces revenue from the GL through invoice, contract, delivery and cash. States direction and assertion explicitly, since this tests occurrence and cannot detect unrecorded revenue. Matches subsequent credit memos against tested revenue.
Expense and T&E policy testing
expense-policy-testing.mdTests expense, T&E, and card spend against the client’s own written policy across fourteen exception types including split transactions. Organised by approver first — an approver with a high exception rate explains the other findings.
Cutoff and search for unrecorded liabilities
cutoff-and-unrecorded-liabilities.mdSearch for unrecorded liabilities and cutoff testing, working on what was not recorded. Classifies on the service date, not the invoice or payment date, and treats a missing service date as unclassified rather than guessing.
Bank reconciliation review
bank-rec-review.mdAudits a reconciliation someone else prepared — recomputes from item detail, not the preparer’s subtotals, and tests subsequent clearance, which is what catches a fabricated item, a stale item, and a plug alike.
Audit workpaper
audit-workpaper.mdObjective, population, procedures, evidence, exceptions, conclusion — then validates that the conclusion is supported. Refuses “no exceptions noted” when exceptions exist, which is the most frequently cited documentation deficiency in inspection.
Balance Sheet Reconciliation Pack
balance-sheet-recon-pack.mdBuilds a reconciliation for every balance sheet account — GL balance tied to its supporting schedule, reconciling items classified and aged, proposed journal entries, and a chart-wide completeness dashboard showing coverage, tie-out, and sign-off status.