Wedding Budget Skill
Wedding budgets die two deaths: the guest list (every name is a per-head catering multiple) and the forgotten line items (vendor meals, alterations, service charges, overtime — the ~10% that appears in month eleven with no budget line waiting for it). This skill builds the budget with both priced in from day one: allocation across categories with the shares stated as defaults not laws, the per-guest lever computed so trade-offs are conscious, and a contingency line defended as load-bearing rather than skimmed first.
What This Skill Produces
- The allocation table — every category with its share and amount, from the script, overridable per real quotes
- The guest math — per-guest cost and what cutting/adding 10 names actually moves
- The forgotten-items audit — the standard omissions, each assigned to a category's line now
- The tracking discipline — budget vs. quoted vs. actual, and the rule for when a category busts
Required Inputs
Ask for these if not provided:
- The all-in number — the real total including everything (rings, attire, the honeymoon in or out — decide and label), and who's contributing what (money with strings gets its strings written down)
- The guest count, honestly — the draft list's realistic size, not the aspirational cut; it's the budget's biggest single input
- The two priorities — the couple's non-negotiables (photography? the band? the venue?) — allocation bends toward them by explicit trade, not by silent overspend
- Real quotes, as they arrive — the defaults exist to be replaced; a budget of defaults is a sketch, a budget of quotes is a plan
Programmatic Helper
python3 scripts/wedding_budget.py --budget 30000 --guests 110
python3 scripts/wedding_budget.py --budget 30000 --guests 110 --venue-food-pct 45 --json
Deterministic. Default shares are planning conventions (venue+catering ~42%, photo/video ~12%, 9% contingency…) — every one is a flag to override as real quotes land. The per-guest and cut-10-guests numbers print with the table.
Framework: The Survival Rules
- The guest list is the budget: venue+catering is ~40–50% of everything and scales per head — the script's cut-10-guests number makes the trade explicit ("ten names ≈ the photographer upgrade"). Every guest-list argument is secretly a budget argument; giving it the number makes it an honest one.
- The forgotten items get lines now: vendor meals, alterations, overtime clauses, service charges + gratuities (often 20%+ on catering and quoted separately — the classic surprise), postage, trials, day-of transport — each assigned to a category at budget time. A surprise with a budget line is just a bill.
- Contingency is load-bearing, not skimmable: ~9–10% held for the unquoted and the changed-mind; the rule is written down: contingency pays for surprises, not upgrades — upgrades come from explicit trades between categories.
- Priorities buy by trading, not creeping: "photography matters most" is implemented as photo +5 points / flowers −3 / favors −2 — a visible reallocation, so the budget still sums. The alternative (every category quietly "just a bit more") is how 30k becomes 38k without one decision being made.
- Track quoted-vs-budget the day each quote arrives: category busts announce themselves early if anyone is looking — the tracking table (budget / quoted / actual per category) turns "we're probably fine" into a number, and the bust rule is pre-agreed: re-trade between categories, cut scope, or consciously raise the total — silence is not on the list.
Output Format
Wedding Budget: [total] · [guests] guests — [date]
The Allocation
[Script output table · priorities noted with their funding trades]
The Guest Lever
[Per-guest cost · the cut/add-10 number · the current list vs. the budget's assumption]
Forgotten Items — Now Budgeted
| Item |
Assigned to category |
Est. |
Tracking
| Category |
Budget |
Quoted |
Actual |
Status |
| Bust rule: [re-trade / cut scope / raise total — decided now, in writing] |
|
|
|
|
Shares are conventions, not rules — real quotes override defaults. Educational model, not financial advice.
Quality Checks
Anti-Patterns
1---2name: wedding-budget3description: Build a wedding budget that survives to the wedding — allocation by real shares, the per-guest lever made explicit, the routinely-forgotten line items priced in from day one, and a contingency that isn't decorative. Use when asked make a wedding budget, how do people split X across a wedding, we have N dollars and M guests, or why is our wedding over budget. Produces the allocation table from the script, the guest-count math, the forgotten-items audit, and the track-against-actuals discipline.4---5
6# Wedding Budget Skill
7
8Wedding budgets die two deaths: the guest list (every name is a per-head catering multiple) and the forgotten line items (vendor meals, alterations, service charges, overtime — the ~10% that appears in month eleven with no budget line waiting for it). This skill builds the budget with both priced in from day one: allocation across categories with the shares stated as defaults not laws, the per-guest lever computed so trade-offs are conscious, and a contingency line defended as load-bearing rather than skimmed first.
9
10## What This Skill Produces
11
12- **The allocation table** — every category with its share and amount, from the script, overridable per real quotes
13- **The guest math** — per-guest cost and what cutting/adding 10 names actually moves
14- **The forgotten-items audit** — the standard omissions, each assigned to a category's line now
15- **The tracking discipline** — budget vs. quoted vs. actual, and the rule for when a category busts
16
17## Required Inputs
18
19Ask for these if not provided:
20- **The all-in number** — the real total including everything (rings, attire, the honeymoon in or out — decide and label), and who's contributing what (money with strings gets its strings written down)
21- **The guest count, honestly** — the draft list's realistic size, not the aspirational cut; it's the budget's biggest single input
22- **The two priorities** — the couple's non-negotiables (photography? the band? the venue?) — allocation bends toward them *by explicit trade*, not by silent overspend
23- **Real quotes, as they arrive** — the defaults exist to be replaced; a budget of defaults is a sketch, a budget of quotes is a plan
24
25## Programmatic Helper
26
27```bash
28python3 scripts/wedding_budget.py --budget 30000 --guests 110
29python3 scripts/wedding_budget.py --budget 30000 --guests 110 --venue-food-pct 45 --json
30```
31
32Deterministic. Default shares are planning conventions (venue+catering ~42%, photo/video ~12%, 9% contingency…) — every one is a flag to override as real quotes land. The per-guest and cut-10-guests numbers print with the table.
33
34## Framework: The Survival Rules
35
361. **The guest list is the budget:** venue+catering is ~40–50% of everything and scales per head — the script's cut-10-guests number makes the trade explicit ("ten names ≈ the photographer upgrade"). Every guest-list argument is secretly a budget argument; giving it the number makes it an honest one.
372. **The forgotten items get lines now:** vendor meals, alterations, overtime clauses, service charges + gratuities (often 20%+ on catering and quoted *separately* — the classic surprise), postage, trials, day-of transport — each assigned to a category at budget time. A surprise with a budget line is just a bill.
383. **Contingency is load-bearing, not skimmable:** ~9–10% held for the unquoted and the changed-mind; the rule is written down: contingency pays for *surprises*, not upgrades — upgrades come from explicit trades between categories.
394. **Priorities buy by trading, not creeping:** "photography matters most" is implemented as photo +5 points / flowers −3 / favors −2 — a visible reallocation, so the budget still sums. The alternative (every category quietly "just a bit more") is how 30k becomes 38k without one decision being made.
405. **Track quoted-vs-budget the day each quote arrives:** category busts announce themselves early if anyone is looking — the tracking table (budget / quoted / actual per category) turns "we're probably fine" into a number, and the bust rule is pre-agreed: re-trade between categories, cut scope, or consciously raise the total — silence is not on the list.
41
42## Output Format
43
44# Wedding Budget: [total] · [guests] guests — [date]
45
46## The Allocation
47[Script output table · priorities noted with their funding trades]
48
49## The Guest Lever
50[Per-guest cost · the cut/add-10 number · the current list vs. the budget's assumption]
51
52## Forgotten Items — Now Budgeted
53| Item | Assigned to category | Est. |
54|---|---|---|
55
56## Tracking
57| Category | Budget | Quoted | Actual | Status |
58|---|---|---|---|---|
59**Bust rule:** [re-trade / cut scope / raise total — decided now, in writing]
60
61*Shares are conventions, not rules — real quotes override defaults. Educational model, not financial advice.*
62
63## Quality Checks
64
65- [ ] The total is all-in with honeymoon/rings in-or-out stated
66- [ ] The per-guest lever and cut-10 number appear
67- [ ] Every forgotten item has a category and an estimate
68- [ ] Priorities show their funding trades — no category grew without another shrinking
69- [ ] The bust rule is written before any category busts
70
71## Anti-Patterns
72
73- [ ] Do not budget the aspirational guest list — the realistic list, or the venue line is fiction
74- [ ] Do not skim the contingency for upgrades — it's for the surprises the audit couldn't name
75- [ ] Do not let service charges and gratuities live outside the table — 20% of the biggest category is not a footnote
76- [ ] Do not average competing quotes into the budget — pick the likely vendor's number and track it
77- [ ] Do not moralize the spending level — the skill's job is that the chosen number survives, whatever it is