Event budget tracker
@eventcrew/event-budget-tracker
Track an event budget against what you have committed and spent, from a simple CSV of line items. Shows totals by category, lines over budget, bills coming due, contingency left, and cost per attendee or lead.
- Activity
- New: be the first to try it
- Installs
- 0 installs
- Likes
- 0 likes
- Clones
- 0 clones
- 1---
- 2name: event-budget-tracker
- 3description: Track an event or trade show budget against committed and actual spend from a CSV of line items. Reports totals by category, lines over budget, bills due or overdue, contingency left, and cost per attendee, lead, or meeting. Use when the user asks "are we on budget for the event?", "update the event budget", "what do we still owe?", "cost per lead for the conference", or shares an event budget spreadsheet.
- 4license: MIT
- 5---
- 7# Event budget tracker
- 9Events overspend a few hundred dollars at a time: electrical you forgot, a hotel rate that went up, rush shipping. This kit keeps one CSV of line items and turns it into a clear status: where you are, what is over, and what you owe this week.
- 11## When to use
- 13- Planning an event budget, or weekly in the run-up to it.
- 14- "Are we on budget?", "what is due this week?", "how much is left for the dinner?"
- 15- After the event, for the wrap-up: final spend and cost per lead.
- 16- Not for company-wide budgets or accounting entries. This is one event at a time.
- 18## Inputs
- 201. **Line items** in `data/event-budget.csv`. Columns: `category, item, budget, committed, actual, vendor, paid, due_date`.
- 21 - `budget`: what you planned. `committed`: what you agreed to pay (a signed quote). `actual`: what has been invoiced or charged.
- 22 - Amounts can include `$` and commas. Dates are `YYYY-MM-DD`.
- 23 - If the user has a spreadsheet, ask them to export it as CSV, then map their column names (tell them which).
- 24 - Starting from nothing: copy `examples/event-budget.csv` and replace the rows with theirs. Standard categories: Booth, Shipping, Swag, Travel, Hospitality, Sponsorship, Staffing, Marketing.
- 252. **Total budget** (`--total`), if it differs from the sum of the lines. The difference shows as unallocated.
- 263. **Contingency** percent to hold back (`--contingency`, suggest 10 for a first-time event, 5 for a repeat).
- 274. **Outcomes**, if known: attendees, leads, meetings booked. Used for unit costs.
- 29## Steps
- 311. **Check the CSV.** Every line needs a category and a budget. Flag rows with an amount in `actual` but no `committed` (fine, but ask whether more is coming).
- 322. **Run the report.**
- 34 ```bash
- 35 node scripts/budget.mjs data/event-budget.csv out --total 52000 --contingency 5 --as-of 2026-11-04 --leads 180
- 36 ```
- 38 Forecast per line is the larger of committed and actual, or the budget if nothing is committed yet. The script writes `out/event-budget.md` and `out/event-budget.json`.
- 393. **Read the verdict first:** on budget, on budget with some categories over, into contingency, or over budget.
- 404. **Explain the overruns** in plain words, biggest first, and suggest where the money could come from (a category with room left, unallocated budget, contingency). Do not move money between categories in the file without asking.
- 415. **List bills due** in the next 7 days (`--due-days` to change), overdue first. Lines marked "invoice not logged" are committed but not yet invoiced: ask whether the invoice arrived.
- 426. **Update as you go.** When the user says "the dinner came in at 5,800" or "paid the printer", edit that row in `data/event-budget.csv`, rerun, and show what moved.
- 44## Output format
- 46```markdown
- 47# Event budget (as of 2026-11-04)
- 49**Into contingency.** Forecast $51,460 of $52,000 budget. Remaining $540 (-$2,060 after 5% contingency).
- 51| Category | Budget | Committed | Invoiced | Forecast | Left | Used |
- 52| **OVER** Booth | $28,800 | $30,600 | $23,225 | $30,600 | -$1,800 | 106.3% |
- 54## Lines over budget
- 55## Bills due within 7 days
- 56## Unit costs (forecast)
- 58What I would do: <two or three specific moves, e.g. drop the coffee cart ($1,500 planned, nothing committed) to cover the booth build overrun>
- 59```
- 61## Guardrails
- 63- Never pay, approve, or email anyone. This kit reports; people decide.
- 64- Never change a budget number without the user saying so. Actuals and paid flags are fine to update when the user reports them.
- 65- Keep vendor names and amounts inside `data/` and `out/`. Summarize, do not paste the whole file into chat.
- 66- If amounts look like they are in different currencies, stop and ask; the script assumes one currency.
