Files
anthropics--knowledge-work-…/small-business/skills/margin-analyzer/reference/csv-schema.md
T
2026-07-13 12:20:06 +08:00

2.3 KiB

CSV Upload Schema

When the owner doesn't have QuickBooks or PayPal connected, they can upload exported CSV files. This document specifies what columns to expect and how to handle variations.

Revenue CSV (transactions export)

Expected columns (order doesn't matter; headers are case-insensitive):

Column Required Description
date Yes Transaction date (any standard format: YYYY-MM-DD, MM/DD/YYYY, etc.)
item or product or service or description Yes What was sold
amount or revenue or total Yes Transaction amount (USD)
quantity or qty No Units sold — if missing, assume 1 per transaction

Exports that typically match this format:

  • PayPal: Activity → Download (CSV) — use "Transaction ID, Date, Name, Type, Status, Currency, Amount"
  • Square: Reports → Transactions → Export
  • Shopify: Orders → Export

If the export has more columns, ignore the extras. If a required column is missing, ask the owner which column maps to it.

Cost CSV (expense or COGS export)

Expected columns:

Column Required Description
date No Expense date (useful for trend analysis)
item or product or service or category Yes What the cost relates to
amount or cost or expense Yes Cost amount (USD)
type No COGS vs. operating expense — if absent, ask the owner

Exports that typically match this format:

  • QuickBooks: Reports → Profit & Loss Detail → Export
  • Brex: Transactions → Export → Filter by expense category

Handling messy CSVs

Real-world exports are messy. Common issues:

  • Extra header rows: Skip rows until you find one that looks like column names
  • Currency symbols: Strip $, , from numeric fields before parsing
  • Negative refunds: Include them — they reduce net revenue
  • Mixed currencies: Flag it and ask which currency to use; default to USD if unclear
  • "Gross" vs "Net" amounts: Prefer net (after fees) for revenue; ask if unclear

After loading

Confirm the data shape with the owner before proceeding:

  • "I loaded X transactions from [date] to [date] across Y products. Does that look right?"
  • If the date range or product count looks off, ask them to double-check the export filters.