Back to Plugins
finance

Expense Docs

Expensify alternative — import bank CSVs, auto-categorize expenses, generate reports and monthly summaries as DOCX.

Plugin ID

pf-expense-docs

Category

finance

Version

v1.1

Downloads

26
Try Online

pf-expense-docs

Expensify alternative — import bank CSVs, auto-categorize expenses with IRS Schedule C mapping, generate tax-aware reports and monthly summaries as DOCX with GAAP/SOX guidance.

pf-expense-docs is a Cowork plugin that automates expense tracking workflows as an alternative to $60-216/user/year SaaS tools like Expensify and Zoho Expense with zero-cost local document generation. Import your bank statement CSV, get auto-categorization with AI fallback mapped to IRS Schedule C line items, and generate professional reports with tax-deductibility tracking, monthly summaries with CIMA variance analysis, policy compliance audits with fraud detection, accounting system exports, and receipt matching — all in standard DOCX format with data staying local and informed by SOX guidelines audit trails.

Installation

  1. Install the plugin in your Cowork environment
  2. Run /expense-docs:expense-docs-setup to initialize workspace folders and configuration
  3. Customize expense categories and policy rules in .expense-docs/config.json (optional)

No additional software required beyond Python 3.7+ (pre-installed in Cowork) and the python-docx package (installed automatically by setup).

Quick Start

1. Initialize Workspace

/expense-docs:expense-docs-setup

Creates folders: inbound/, processing/, outbound/, archive/, .expense-docs/, .expense-docs/logs/

Default categories map to IRS Schedule C (Form 1040) line items with tax-deductibility classifications.

2. Import Bank CSV

/expense-docs:expense-docs-import

Place your bank CSV in inbound/ folder with naming: BANK-YYYY-MM.csv (e.g., chase-2026-01.csv)

Supported formats: Chase, Bank of America, Wells Fargo, Citi, Capital One, American Express, or generic with auto-detection.

3. Generate Reports

Single command (generate all reports):

/expense-docs:expense-docs-full

Or generate individually:

/expense-docs:expense-docs-report         # Detailed transaction report with tax-deductibility
/expense-docs:expense-docs-summary        # Monthly analysis with CIMA variance methodology
/expense-docs:expense-docs-policy-check   # Policy compliance with fraud detection
/expense-docs:expense-accounting-export   # Export to QuickBooks/Xero/FreshBooks
/expense-docs:expense-receipt-matcher     # Match receipts per IRS §274(d) requirements
/expense-docs:expense-docs-dashboard     # Interactive visual dashboard ("show me")

4. Review Output

Find DOCX files in outbound/:

  • expense-report-YYYY-MM.docx — Formatted report with tax-deductibility column and SOX metadata
  • expense-summary-YYYY-MM.docx — Budget analysis with CIMA variance and tax savings estimates
  • expense-policy-report-YYYY-MM.docx — Compliance violations with fraud detection and severity classification

Command Reference

Command Purpose Output
/expense-docs:expense-docs-setup Initialize workspace with IRS-mapped categories Directory structure + config.json
/expense-docs:expense-docs-import Import CSV, categorize with Schedule C mapping processing/expense-docs-transactions.json
/expense-docs:expense-docs-report Generate tax-aware expense report outbound/expense-report-YYYY-MM.docx
/expense-docs:expense-docs-summary Generate monthly CIMA variance analysis outbound/expense-summary-YYYY-MM.docx
/expense-docs:expense-docs-policy-check Policy compliance with fraud detection outbound/expense-policy-report-YYYY-MM.docx
/expense-docs:expense-accounting-export Export to QuickBooks/Xero/FreshBooks outbound/accounting-export-YYYY-MM.csv
/expense-docs:expense-docs-dashboard Interactive visual dashboard — "show me" outbound/expense-dashboard.jsx (artifact)
/expense-docs:expense-receipt-matcher Match receipts per IRS §274(d) Receipt matching report
/expense-docs:expense-docs-full Run complete pipeline All reports and exports
/expense-docs:expense-docs-status Show workspace status Console output

AI-Powered Features

  1. IRS Schedule C Auto-Categorization: Transactions auto-mapped to Schedule C line items (Lines 8–27a) with tax-deductibility flags (full, partial 50% per IRC §274(n), conditional per IRC §162) using keyword rules and AI fallback
  2. GAAP-Compliant Expense Reports: Reports include SOX Section 404 metadata (timestamp, data hash, preparer ID per PCAOB AS 2201), tax-deductible summary with IRC §274(n) footnotes, and SEC Regulation S-X aligned presentation
  3. CIMA Variance Analysis: Monthly summaries use Chartered Institute of Management Accountants methodology with favorable/unfavorable variance terminology and materiality thresholds (>10% or >$500)
  4. Fraud Detection Engine: Policy checks flag split transactions, round-number amounts, weekend transactions, and sequential patterns per ACFE Report to the Nations and AICPA AU-C Section 240
  5. Multi-Format Accounting Export: Generate QuickBooks Desktop IIF, QuickBooks Online CSV, Xero CSV, or FreshBooks CSV with GAAP chart of accounts mapping (6000-6999 expense codes)
  6. IRS Substantiation Matching: Receipt matcher enforces IRC §274(d) requirements (receipts ≥$75) with Levenshtein/Jaro-Winkler merchant matching and NACHA ACH timeline awareness
  7. Tax Savings Estimation: Summary reports calculate estimated tax savings from deductible expenses with IRS protective language patterns rule awareness (de minimis $2,500 per Treas. Reg. §1.263(a)-1(f))
  8. Regulatory Policy Framework: Policy rules reference GSA per-diem rates, IRS gift limits ($25 per IRC §274(b)), accountable plan requirements (IRC §62(c)), and violation severity per IAS 8 materiality
  9. SOX Audit Trail: All operations logged with immutable timestamps, configuration change tracking, and export reconciliation per SOX Section 404
  10. 6-Bank CSV Auto-Detection: Parse Chase, BofA, Wells Fargo, Citi, Capital One, and American Express with exact column header matching and format-specific conventions

Feature Comparison

Feature Expensify Zoho Expense pf-expense-docs
Bank CSV import & categorization Full Full Full ✓
IRS Schedule C category mapping Partial Partial Full ✓
Tax-deductibility tracking Partial None Full ✓
Expense report generation Full Full Full ✓
Monthly spending summary Full Full Full ✓
CIMA variance analysis None None Full ✓
Policy compliance checking Full Full Full ✓
Fraud detection indicators Partial None Full ✓
Accounting system export Full Full Full ✓
Receipt matching (IRS §274(d)) Full Full Full ✓
SOX audit trail compliance Partial None Full ✓
Tax savings estimation None None Full ✓
Receipt photo OCR Full Full None
Real-time bank sync Full Partial None
Multi-user submission Full Full Limited (1-5 users)
Corporate card management Full None None
Data privacy (local only) None None Full ✓
Customizable categories/rules Partial Partial Full ✓
No per-user pricing None None Full ✓
Offline operation None None Full ✓
Error recovery & partial processing None Partial Full ✓
Annual cost (10 users) $600-2,160 $600-1,080 included with your subscription ✓

Configuration

Customizing Expense Categories

Edit .expense-docs/config.json and modify the categories array:

{
  "categories": [
    "Travel",
    "Meals & Entertainment",
    "Office Supplies",
    "Software & Subscriptions",
    "Professional Services",
    "Utilities",
    "Marketing & Advertising",
    "Insurance",
    "Transportation",
    "Miscellaneous"
  ],
  "category_rules": {
    "Travel": {
      "keywords": ["hotel", "airline", "flight", "uber", "taxi"],
      "schedule_c_line": "24a",
      "deductibility": "full",
      "description": "Travel expenses (IRS Schedule C Line 24a)"
    }
  }
}

Categories map to IRS Schedule C line items with tax-deductibility classifications. The import skill uses keyword rules for fast, auditable categorization, with AI fallback for unmatched transactions (typically 10-20%).

Configuring Spending Limits & Budget Caps

Set policy rules in .expense-docs/config.json:

{
  "policy_rules": {
    "per_transaction_limit": 500,
    "de_minimis_threshold": 2500,
    "monthly_category_caps": {
      "Travel": 2000,
      "Meals & Entertainment": 500,
      "Software & Subscriptions": 300
    }
  }
}

The policy-check skill flags violations with severity classification (Critical >200%, Major 100-200%, Minor 1-10%) per IAS 8 materiality principles. The de minimis threshold follows IRS protective language patterns (Treas. Reg. §1.263(a)-1(f)).

Company Information

Customize company name and preparer in config:

{
  "company_info": {
    "name": "Your Company Name",
    "prepared_by": "Finance Team",
    "fiscal_year_start": "01",
    "accounting_method": "cash"
  }
}

Supported Bank CSV Formats

The import skill auto-detects these formats by examining column headers:

Chase

Transaction Date,Post Date,Description,Category,Type,Amount,Memo
01/15/2026,01/15/2026,AMAZON.COM,Uncategorized,Purchase,-42.99,

Bank of America

Date,Description,Amount,Running Bal.
01/15/2026,AMAZON PURCH,-42.99,5234.67

Wells Fargo

Date,Amount,*,*,Description
01/15/2026,-42.99,,,AMAZON.COM

Citi

Status,Date,Description,Debit,Credit
Posted,01/15/2026,AMAZON.COM,42.99,

Capital One

Transaction Date,Posted Date,Card No.,Description,Category,Debit,Credit
01/15/2026,01/16/2026,1234,AMAZON.COM,Shopping,42.99,

American Express

Date,Description,Amount
01/15/2026,AMAZON.COM,42.99

Note: American Express uses positive=charges convention (opposite of Chase).

If your bank is not in this list, export as CSV and the plugin will attempt generic parsing with auto-detection of columns.

Regulatory Framework

This plugin references the following regulatory sources:

  • IRS Schedule C (Form 1040): Expense category line item mapping (Lines 8–27a)
  • IRC §162: Ordinary and necessary business expense standard
  • IRC §274(n): 50% meals deduction limitation
  • IRC §274(d): Substantiation requirements for travel, entertainment, gifts
  • IRC §274(b): $25 per-person gift deduction limit
  • IRC §62(c): Accountable plan requirements for employee reimbursement
  • IRS Publication 463: Travel, Gift, and Car Expenses
  • IRS Publication 535: Business Expenses
  • IRS Publication 538: Accounting Periods and Methods
  • Treas. Reg. §1.263(a)-1(f): De minimis protective language patterns ($2,500)
  • Treas. Reg. §1.62-2: Accountable plan requirements (60-day/120-day rules)
  • GSA CONUS Per-Diem Rates: Domestic travel and M&IE rate tables
  • ASC 720: GAAP general expense recognition
  • ASC 220: GAAP comprehensive income presentation
  • SOX Section 404: Internal control audit trail requirements
  • PCAOB AS 2201: Audit of internal controls
  • CIMA: Management accounting variance analysis methodology
  • COSO Framework: Internal control environment assessment
  • ACFE Report to the Nations: Occupational fraud detection indicators
  • AICPA AU-C Section 240: Fraud considerations in audit context

Workflow: Weekly + Monthly

Weekly:

  1. Download CSV from bank website (2 minutes)
  2. Save to inbound/BANK-YYYY-MM.csv
  3. Run /expense-docs:expense-docs-import (auto-categorizes with Schedule C mapping, flags issues)

Monthly:

  1. Run /expense-docs:expense-docs-full to generate all reports (1-2 minutes)
  2. Review expense report with tax-deductibility column for approval
  3. Check monthly summary for CIMA variance analysis and tax savings estimates
  4. Audit policy violations and fraud indicators in compliance report
  5. Run /expense-docs:expense-accounting-export to export to your accounting system

Archiving: Monthly snapshots auto-saved to archive/YYYY-MM-DD/ containing transactions.json, all generated reports, and audit trail metadata referencing SOX guidelines.

Estimated Cost per Use

Disclaimer: Token estimates are approximate and based on typical usage patterns measured from skill prompt sizes. Actual costs vary with input data size, conversation length, and complexity. Estimates use Claude Sonnet 4.6 pricing ($3/1M input, $15/1M output). Cowork and Claude Desktop subscription users (Pro/Max/Team) are not charged per-token — these estimates apply only to direct Anthropic API usage. Running stages individually in fresh sessions uses fewer input tokens than running the full pipeline sequentially, because pipeline mode accumulates conversation history across stages.

Per skill (run individually in a fresh session):

Stage Skill Prompt User Input Total Input Output Est. Cost
expense-docs-dashboard ~2.3K ~500 ~6.0K ~8.0K ~$0.14
receipt-matcher ~10.2K ~800 ~14.1K ~6.0K ~$0.13
expense-docs-policy ~8.5K ~800 ~12.7K ~6.0K ~$0.13
expense-docs-summary ~7.8K ~800 ~12.0K ~6.0K ~$0.13
expense-docs-report ~8.4K ~800 ~12.6K ~6.0K ~$0.13
accounting-export ~8.7K ~800 ~12.5K ~6.0K ~$0.13
expense-docs-import ~10.9K ~2.0K ~16.3K ~2.0K ~$0.08
Standalone total ~86.2K ~40.0K ~$0.86

Full pipeline (all stages in one session — context accumulates):

Stage Base Input + History Total Input Output Est. Cost
expense-docs-dashboard ~6.2K 0 ~6.2K ~8.0K ~$0.14
receipt-matcher ~14.5K ~8.5K ~23.0K ~6.0K ~$0.16
expense-docs-policy ~12.7K ~15.3K ~28.0K ~6.0K ~$0.17
expense-docs-summary ~12.0K ~22.1K ~34.1K ~6.0K ~$0.19
expense-docs-report ~12.7K ~28.9K ~41.6K ~6.0K ~$0.21
accounting-export ~12.9K ~35.7K ~48.6K ~6.0K ~$0.24
expense-docs-import ~16.4K ~42.5K ~58.9K ~2.0K ~$0.21
Pipeline total ~240.4K ~40.0K ~$1.32

Running the full pipeline once typically costs $0.92–$1.72 in API tokens (Claude Sonnet 4.6).

Known Limitations

  1. No real-time receipt OCR: Cannot photograph receipts and auto-extract data like Expensify SmartScan. Workaround: Use bank/credit card CSV exports — covers 90% of transaction capture. Receipt matcher skill handles matching by amount, date, and merchant similarity.

  2. No persistent database: Transactions stored as JSON files, not queryable database. Historical analysis requires loading files each session. Workaround: Use lifecycle folders with dated JSON files and monthly archives.

  3. No real-time API integrations: Cannot pull transactions directly from bank APIs or sync with QuickBooks/Xero. Workaround: Download CSV export from bank website (a 2-minute task) and place in inbound/ folder. Accounting export skill generates import-ready files for QuickBooks/Xero/FreshBooks.

  4. Team size limit: 1-5 users: No multi-user collaboration like Expensify. Workaround: Single administrator imports all expenses from consolidated bank CSV.

  5. Session-based operation: No automatic reminders for expense submission deadlines. Workaround: Users run the plugin on their own schedule. Monthly summary skill naturally creates a regular cadence.

Handling Edge Cases

Refunds (Positive Amounts)

Transactions with positive amounts are treated as refunds/credits. The skill flags them with is_refund: true, prefixes category with "Refund: ", and includes them in totals.

Tax-Deductibility for Meals

Meals expenses are automatically classified as 50% deductible per IRC §274(n). The tax-deductible summary separates fully deductible from partially deductible amounts.

IRS Substantiation ($75 Threshold)

The receipt matcher flags any expense ≥$75 without a matched receipt, per IRC §274(d) and IRS Publication 463 Chapter 5 requirements.

Duplicate Transactions

Detected by matching date + description + amount. Flagged as potential fraud indicators per AICPA AU-C Section 240.

Float Precision

All amounts use banker's rounding to 2 decimal places per IEEE 754. Category totals validated to sum within $0.01 of grand total.

File Structure

.expense-docs/
├── config.json              # Configuration: IRS-mapped categories, rules, policies
├── logs/
│   ├── setup.log           # informed by SOX guidelines initialization logs
│   ├── import.log          # Import operation audit trail
│   └── ...
└── (project metadata)

inbound/                     # User-provided CSV files
├── chase-2026-01.csv
├── bofa-2026-02.csv
└── ...

processing/                  # Intermediate parsed data with tax mapping
└── expense-docs-transactions.json

outbound/                    # Generated DOCX reports and exports
├── expense-report-2026-01.docx
├── expense-summary-2026-01.docx
├── expense-policy-report-2026-01.docx
└── accounting-export-2026-01.csv

archive/                     # Monthly snapshots with audit metadata
├── 2026-01-31/
│   ├── expense-docs-transactions.json
│   ├── expense-report-2026-01.docx
│   └── ...
└── ...

Cost Comparison

10-person SMB team, annual costs:

  • Expensify: $600-2,160/year ($5-18/user/month)
  • Zoho Expense: $600-1,080/year ($5-9/user/month)
  • pf-expense-docs: Included with your subscription

Monthly time savings: ~5 hours/month on expense entry, categorization, and report generation = $1,000-2,000/month labor value.

Legal Note

This plugin generates financial reports for internal expense tracking and policy compliance. It is not a alternative to professional accounting, tax preparation, or legal services. Tax-deductibility classifications are for informational purposes only — consult a qualified tax professional (CPA or Enrolled Agent) regarding deduction eligibility per your specific circumstances. All IRS references are to U.S. federal regulations; state and local tax treatment may differ.

Troubleshooting

"No CSV file found in inbound/"

  • Ensure your CSV is saved in the inbound/ folder with naming format: BANK-YYYY-MM.csv
  • Example: chase-2026-01.csv, bofa-2026-02.csv

"Python 3.7+ is required"

  • Check Python version: python3 --version
  • Install Python 3.7 or later if needed

"python-docx not installed"

  • The setup skill attempts to install it automatically
  • Manual install: pip install python-docx --break-system-packages

"Configuration file is invalid JSON"

  • Check .expense-docs/config.json for syntax errors
  • Run /expense-docs:expense-docs-setup --reset to regenerate defaults

"Uncategorized transactions detected"

  • Add keywords to category_rules in config.json for merchant descriptions
  • Or let the system use AI categorization (marked as category_rule: ai_classified)

"Policy violations detected"

  • Review the expense-policy-report-YYYY-MM.docx for details
  • Adjust per_transaction_limit or monthly_category_caps in config.json if needed

Support & Feedback

For issues, feature requests, or questions, please refer to the factory documentation or reach out to the Cowork community.


Version: 1.2 License: Provided as-is for use in Cowork Last Updated: 2026-03-16

Commands

  • /expense:expense-accounting-export — expense-Accounting Export
  • /expense:expense-docs-full — Expense Docs Full
  • /expense:expense-docs-import — Expense Docs Import
  • /expense:expense-docs-policy-check — Expense Docs Policy Check
  • /expense:expense-docs-report — Expense Docs Report
  • /expense:expense-docs-setup — Expense Docs Setup
  • /expense:expense-docs-status — Expense Docs Status
  • /expense:expense-docs-summary — Expense Docs Summary
  • /expense:expense-receipt-matcher — expense-Receipt Matcher
  • /expense:expense-setup — Expense Setup

Important Disclaimers

  • AI-Generated Content: This plugin uses AI (LLM) technology which can produce inaccurate or incomplete outputs. All content should be treated as a starting point and reviewed for accuracy before use.
  • Not Professional Advice: Outputs do not constitute legal, financial, tax, medical, or other professional advice. Consult qualified professionals before making decisions based on generated content.
  • No Compliance Guarantee: References to industry standards, regulations, or guidelines are for informational purposes only. This plugin does not guarantee compliance with any law or regulation. Users are responsible for verifying all outputs meet their specific regulatory requirements.
  • No Endorsement or Affiliation: Mention of third-party products, standards, or organizations does not imply endorsement, partnership, or certification by those entities.
  • Not Financial or Tax Advice: Financial calculations, tax estimates, and related outputs are for informational purposes only. Consult a qualified CPA or financial advisor for tax and financial decisions.

Ready to use Expense Docs?

Download this free plugin and start using it in Claude today.

Need something different?

We build custom plugins tailored to your exact workflow.

Request a Custom Plugin