1. Paste your events
2. The plan
Work
| When | Event | Net | Net at bad weather | Break-even sales |
|---|
Skip
| When | Event | Why |
|---|
Plan against the usual shortcuts
| Rule | Season net |
|---|
Prefer a CLI?
Same logic, zero dependencies, one command — reads a file or stdin:
node cli.mjs plan events.csv --cogs 35 --crew-rate 15 --max-per-week 2 cat events.csv | node cli.mjs plan - --json
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: Which markets and festivals are worth your time? The overlap math.
What's recognised
| Input | Handling |
|---|
The plan is exact for the numbers you type (search over every allowed combination, up to 24 entangled events at a time). Sales taxes, permits, parking, repeat-customer value and weather are not modelled beyond the one bad-weather check; enter fees and costs as they will really cost you.
Common questions
Does it upload my event list?
No. The browser page works on the text you paste, in your own browser, and never sends it anywhere. The CLI reads a local file or stdin and makes no network call.
Why skip an event with big sales?
A big event can overlap two smaller ones that together net more, or use one of your limited weekly slots. The tool compares the total net of every allowed combination and tells you what each swap would cost.
What counts as an overlap?
Two events conflict when their times overlap after adding your setup hours before and teardown hours after each, so a market that ends at noon and a festival that opens at 12:30 across town cannot both be worked.
Is the plan guaranteed to be best?
It is the exact best answer for the numbers you typed, found by search and checked against trying every combination in the tests. The sales figures are your estimates, so the result is a decision aid, not a forecast. The page also shows what the plan earns if sales come in lower.
Who is it for?
Food trucks, craft and farmers-market vendors, pop-up shops, caterers, buskers, DJs and bands, anyone choosing between events that charge a fee or a cut and cannot be in two places at once.