Agent skill

Expense Report

by TheCraigHewitt in TheCraigHewitt/skills

Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period.

MITAuto-check passedBusiness, Finance & HR

Install Expense Report

skills CLI
$ npx skills add TheCraigHewitt/skills --skill expense-report -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TheCraigHewitt/skills expense-report --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TheCraigHewitt/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cowork/expense-report .claude/skills/expense-report && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
expense-report
GitHub stars
159
Token cost
~1.6k tokens
SKILL.md length
785 words
Files
2
Skills in repo
65
Repo updated
First seen
Licence
MIT

At a glance

Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period.

  • Works in 4 steps: Scan 10–20 receipts to understand the… → Propose a category list → Confirm with the user → …
  • Says process my receipts
  • SKILL.md covers Before you start, Process the receipts, Output 1: The spreadsheet and Output 2: The dashboard, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Expense Report is an agent skill from TheCraigHewitt/skills. Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period. Use this whenever the user says 'process my receipts,' 'expense report,' 'categorize these expenses,' 'tax prep,' 'monthly/quarterly expenses,' 'bookkeeping,' or points you at a folder of receipts. The skill works on whatever's in the folder — no setup required — but improves over time as it learns the user's category structure. Often paired with a scheduled task that runs…

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).

It sits in Business, Finance & HR, covering Accounting and bookkeeping and Excel spreadsheets. The repository describes itself as: AI skills for founders, sales teams, and creators. 47 skills across CEO, Sales, YouTube, and General categories. Works with Claude Code, Cursor, Codex, and any agent that reads… The licence is MIT.

When your agent uses it

  • Says process my receipts
  • Categorize these expenses
  • Monthly/quarterly expenses
  • Points you at a folder of receipts

Example prompts

  • “process my receipts,”
  • “expense report,”
  • “categorize these expenses,”
  • “/expense-report”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Scan 10–20 receipts to understand the user's spending shape
  2. Propose a category list
  3. Confirm with the user
  4. Save to expense-config.md

What it can do on your machine

Read from SKILL.md and the folder at commit fdbf39b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Expense Report loads about 1.6k tokens when it runs. Until then it costs about 138 tokens; SKILL.md has 785 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~138
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from TheCraigHewitt/skills at commit fdbf39b, republished under its MIT licence (© TheCraigHewitt). 785 words, ~1,559 tokens.

Download SKILL.mdSave it as .claude/skills/expense-report/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
expense-report
description
Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period. Use this whenever the user says 'process my receipts,' 'expense report,' 'categorize these expenses,' 'tax prep,' 'monthly/quarterly expenses,' 'bookkeeping,' or points you at a folder of receipts. The skill works on whatever's in the folder — no setup required — but improves over time as it learns the user's category structure. Often paired with a scheduled task that runs weekly or monthly.

Expense Report

You scan a folder of receipts and produce two things: a categorized spreadsheet of every line item, and an HTML dashboard summarizing the period. The user drops receipts in a folder throughout the month; you handle the rest.

Before you start

Identify the folder of receipts. The user may point at:

  • A dedicated receipts/ or expenses/ folder
  • A Downloads/receipts/ folder
  • A specific date-range subfolder
  • A cloud-synced folder (Drive, Dropbox)

Check if expense-config.md exists. If yes, read it — it should define:

  • The user's expense categories (e.g., Software / SaaS, Travel, Meals, Marketing, Contractors, Office, Other)
  • Personal vs business split rules (if mixed)
  • Default currency
  • Tax-relevant categories (deductible, reimbursable)
  • Anything to auto-exclude (personal Amazon receipts, recurring subscriptions already tracked elsewhere)

If no config exists, run a one-time setup based on a sample of receipts:

  1. Scan 10–20 receipts to understand the user's spending shape
  2. Propose a category list
  3. Confirm with the user
  4. Save to expense-config.md

Process the receipts

For each receipt file:

  1. Extract — vendor name, date, total amount, tax (if shown), payment method (if shown), individual line items if itemized
  2. Categorize — assign to one of the user's categories. If a vendor has been categorized before (e.g., AWS = Software), use the prior categorization for consistency.
  3. Flag — receipts that are unclear (image too dark, partially cropped, unclear total) get flagged for user review rather than guessed
  4. Detect duplicates — same vendor + same amount + within 3 days = likely duplicate. Flag, don't auto-merge.

If a receipt has multiple categories (e.g., a Costco run with both office supplies and personal items), either split into multiple line items or flag for the user to review.

Output 1: The spreadsheet

Save as expenses-YYYY-MM.xlsx (or .csv if Excel isn't available). Columns:

| Date | Vendor | Description | Category | Subcategory | Amount | Tax | Total | Payment method | Receipt file | Notes |

Sorted by date descending. Include a totals row at the bottom and subtotals by category in a second sheet.

Also include a "Flagged for review" sheet with anything you couldn't confidently categorize.

Output 2: The dashboard

Save as expense-dashboard-YYYY-MM.html. Interactive HTML dashboard with:

  1. Headline strip — total spend, vs prior period, count of receipts, average receipt size
  2. Spend by category — donut or bar chart, with totals and percentages
  3. Spend over time — line or bar chart showing daily/weekly spend in the period
  4. Top vendors — table, ranked by total spend, with count of receipts
  5. Trends — any category trending up or down vs prior period, with your read on why if obvious
  6. Tax-relevant subtotals — total of categories marked deductible/reimbursable
  7. Flagged items — anything that needs the user's eyes

Output 3: A short chat summary

In the chat reply, print:

📊 Expense report — [month/period]

Total spend: $X,XXX across [N] receipts
Biggest category: [Category] at $XXX ([%])
Notable: [one specific observation — "you tripled software spend this month," "5 meal receipts over $200 in 3 days," etc.]
Tax-relevant: $X,XXX deductible

Flagged for review: [N] items
Spreadsheet: [path]
Dashboard: [path]
Show full SKILL.md (343 more words)Show less

Running on a schedule

After the first manual run, suggest scheduling:

"Want me to run this every Sunday and roll up the week, then send you a Slack summary? At the end of the month, I'll produce the full report."

If yes, set up a recurring task. The weekly version is short (just the chat summary + spreadsheet update). The monthly version is the full dashboard + report.

Edge cases

  • Receipts in non-English languages — translate vendor and item descriptions but keep totals in original currency, then convert.
  • Receipts that are actually invoices — distinguish: a receipt = paid, an invoice = owed. Don't lump unpaid invoices into the expense report.
  • Crypto / unusual payment methods — extract what you can but flag.
  • Tips on restaurant receipts — include in the total, note tip separately if shown.
  • Subscription receipts (Stripe, etc.) — categorize as recurring software unless context suggests otherwise.
  • Sales tax handling — separate sales tax in its own column. Some jurisdictions need it reported separately for accounting.

Why this works the way it does

Most bookkeeping software requires manual entry or fragile OCR pipelines. By dropping receipts in a folder and having a skill that re-processes the whole folder every run, you get a system that's idempotent and self-correcting: if a categorization is wrong, re-run after editing expense-config.md and it'll re-categorize cleanly. The user owns the data (it's just files in a folder) and the dashboard is regenerable on demand.

Rules

  1. Don't guess when unsure. Flag for review. A flagged item is recoverable; a wrongly categorized expense compounds.
  2. Use consistent vendor naming. "Amazon," "amazon.com," and "AMZN Mktp US" should all be normalized to "Amazon." Maintain a vendor-name map in expense-config.md and grow it over time.
  3. Don't reprocess from scratch every run unless asked. Cache extracted data so re-runs are fast.
  4. Surface anomalies in the dashboard. A 5x jump in a category, an unusually large single receipt, a new vendor — these deserve a callout.
  5. Don't moralize. This is an accounting tool, not a financial advisor. If the user spent $4K on meals last month, report it; don't comment.

© TheCraigHewitt, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in cowork/expense-report of TheCraigHewitt/skills.

  • SKILL.md
  • evals/evals.json

Open the folder on GitHubat commit fdbf39b

Compare with similar skills

Expense Report next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Expense Report compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Expense Report this skillTheCraigHewitt/skills159—~1.6kAutomated safety check: PassMIT
Datapack Builderw95/awesome-claude-corporate-skills2441 repos~6kAutomated safety check: PassMIT
Data Reconciliationbenchflow-ai/skillsbench1.8k—~672Automated safety check: PassApache-2.0
Audit Report Checkernigo81/nigo-skills133—~4.3kAutomated safety check: PassMIT
Fsi Comps Analysisw95/awesome-claude-corporate-skills2441 repos~6.7kAutomated safety check: PassMIT
CICPA Company Registration Querynigo81/nigo-skills133—~2.8kAutomated safety check: PassMIT

Similar skills

  • Datapack Builder

    w95/awesome-claude-corporate-skills

    Build professional financial services data packs from various sources including CIMs, offering memorandums, SEC filings, web search, or MCP servers.

    244 GitHub starsUsed in 1 repo~6k tokens
    Business, Finance & HRAuto-check passed
  • Data Reconciliation

    benchflow-ai/skillsbench

    Recover missing spreadsheet values from row and column totals, percentage shares, year-over-year changes, CAGR relationships, and cross-sheet constraints.

    1.8k GitHub stars~672 tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Audit Report Checker

    nigo81/nigo-skills

    Checks audit reports (financial statements and notes) for cross-reference, summation and text errors, with arithmetic done by script and results exported to Excel and Markdown.

    133 GitHub stars~4.3k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Fsi Comps Analysis

    w95/awesome-claude-corporate-skills

    Build institutional-grade comparable company analyses with operating metrics, valuation multiples, and statistical benchmarking in Excel/spreadsheet format.

    244 GitHub starsUsed in 1 repo~6.7k tokens
    Business, Finance & HRAuto-check passed
  • Looks up Chinese company registration data in the CICPA industry knowledge base, from a quick search to a full 61-dimension export, subsidiary discovery and Excel output.

    133 GitHub stars~2.8k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Merges bank statements from several banks and formats into one standard Excel layout, then reconciles them against the general ledger with a layered matching engine.

    133 GitHub stars~1.3k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed

More from TheCraigHewitt/skills

All 65 skills in this repo
  • Carousels

    TheCraigHewitt/skills

    Turns a piece of Craig's content (an email, a YouTube script, an essay, or pasted text) into a polished image carousel publishable to both LinkedIn and Instagram from one set of 1080x1350 slides.

    159 GitHub stars~2.3k tokensUpdated 4 mo ago
    Auto-check passed
  • Audience Research

    TheCraigHewitt/skills

    When the user wants to understand their YouTube audience, mine viewer psychology, analyze demographics, or find content-market fit signals.

    159 GitHub stars~2.4k tokensUpdated 4 mo ago
    Auto-check passed
  • Brain Dump

    TheCraigHewitt/skills

    Take a messy stream-of-consciousness dump from the user (typed or transcribed from voice) and turn it into a structured set of projects, tasks, and connections to existing work.

    159 GitHub stars~1.3k tokensUpdated 4 mo ago
    Auto-check passed
  • Channel Audit

    TheCraigHewitt/skills

    When the user wants a full YouTube channel health check, growth diagnosis, strategic review, or wants to identify why their channel is stalling.

    159 GitHub stars~2.4k tokensUpdated 4 mo ago
    Auto-check passed
  • Channel Strategy

    TheCraigHewitt/skills

    When the user wants to define or refine their YouTube channel strategy, niche positioning, content pillars, or growth plan.

    159 GitHub stars~2.2k tokensUpdated 4 mo ago
    Auto-check passed
  • Cold Call

    TheCraigHewitt/skills

    When the user wants to write cold call scripts, handle phone objections, plan dial blocks, or craft voicemails.

    159 GitHub stars~5k tokensUpdated 4 mo ago
    Auto-check passed

Questions about Expense Report

What does Expense Report do?

Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period. Expense Report is an agent skill from TheCraigHewitt/skills. Scan a folder of receipts (PDFs, images, screenshots) and produce a categorized expense spreadsheet plus a dashboard summarizing the period.

When should I use Expense Report?

Expense Report fits situations like: says process my receipts; categorize these expenses; monthly/quarterly expenses; points you at a folder of receipts.

How do I install Expense Report in Claude Code?

Run `npx skills add TheCraigHewitt/skills --skill expense-report -a claude-code`. Or copy the skill folder (cowork/expense-report in TheCraigHewitt/skills) into .claude/skills/expense-report in your project. Claude Code loads it when a task matches its description.

How do I install Expense Report in Codex?

Run `npx skills add TheCraigHewitt/skills --skill expense-report -a codex`. Or copy the skill folder (cowork/expense-report in TheCraigHewitt/skills) into .agents/skills/expense-report in your project. Codex loads it when a task matches its description.

Can I use Expense Report in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TheCraigHewitt/skills --skill expense-report -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/expense-report, .gemini/skills/expense-report, .github/skills/expense-report and .opencode/skills/expense-report in your project.

What does Expense Report need to run?

SKILL.md names no scripts, command-line tools or credentials: Expense Report is instructions for the agent only.

Does Expense Report access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Expense Report safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Expense Report use?

Expense Report is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Expense Report use?

About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Expense Report?

Skills that share tags, products or a category with Expense Report: Datapack Builder (w95/awesome-claude-corporate-skills, 244 stars), Data Reconciliation (benchflow-ai/skillsbench, 1.8k stars), Audit Report Checker (nigo81/nigo-skills, 133 stars) and Fsi Comps Analysis (w95/awesome-claude-corporate-skills, 244 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Expense Report?

TheCraigHewitt (a GitHub user) maintains it in TheCraigHewitt/skills, which has 159 GitHub stars. The repository holds 65 skills in this directory. The repository was last updated on May 22, 2026.

Source: TheCraigHewitt/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.