thecraighewitt/skills

expense-report

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

Vedi sorgente

Come usare

  1. Copia il comando e controlla il pacchetto prima di installarlo nel tuo ambiente agente.
  2. Controlla strumenti, credenziali e ambienti richiesti nel documento originale.
  3. Descrivi input e risultato desiderato; confronta l’output con le fonti.
npx skills add https://github.com/thecraighewitt/skills --skill expense-report

Prima di iniziare

  • L’installazione non include abbonamenti, quote API o accesso ai file.
  • Stelle e installazioni indicano attività, non un test indipendente di qualità o sicurezza.
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

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]

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.

Correlati per attività

dallo stesso repository

Altri Skills

Tutti gli Skills
thecraighewitt
Community

contract-review

Review a contract, agreement, terms-of-service, MSA, NDA, employment agreement, vendor SOW, or any legal document. Flag risks, missing terms, unusual clauses, and points worth negotiating. Use this whenever the user says 'review this contract,' 'look at this agreement,' 'is this contract fair,' 'red flags in this,' 'should I sign,' 'help me negotiate,' 'check this NDA,' or attaches/pastes any contract-like document. Output is a structured markdown review the user can read in 5 minutes before sig

Installazioni / 1h
1
GitHub Stars
163
Aggiornato
22 mag
thecraighewitt
Community

thumbnail-design

When the user wants to create YouTube thumbnail concepts, design briefs, improve thumbnail CTR, or develop a thumbnail style. Also use when the user says 'design a thumbnail,' 'thumbnail idea,' 'thumbnail concept,' 'improve my thumbnails,' 'thumbnail brief,' 'my thumbnails aren't getting clicks,' 'thumbnail for this video.' For title pairing, see title-craft. For video analysis including CTR, see video-analysis.

Installazioni / 1h
1
GitHub Stars
163
Aggiornato
22 mag
thecraighewitt
Community

video-analysis

When the user wants to analyze a YouTube video's performance, review retention data, diagnose low CTR, or understand why a video underperformed or overperformed. Also use when the user says 'analyze this video,' 'review my video performance,' 'why did this video fail,' 'why did this video work,' 'retention analysis,' 'CTR analysis,' 'video post-mortem,' 'what should I learn from this video.' For full channel health check, see channel-audit. For improving future ideas based on learnings, see idea

Installazioni / 1h
1
GitHub Stars
138
Aggiornato
22 mag