How should a vegan restaurant fill Tuesday-Thursday covers on school nights without kids-eat-free destroying margin?
Quick answer
Fence a dated family bundle to Tuesday-Thursday school-night hours. Cost it as one recipe and price backward from your food-cost cap. Run a 3-week ladder (planning, first-week convenience, weekday habit). Stamp loyalty on the bundle SKU at POS. Put an end date on Google Business Profile, email, SMS, and the POS button. Do not run kids-eat-free or a percent-off check. Do not invent occupancy lift. Do not water the vegan kitchen for flexitarian parents. Earth Day merch lives in seasonal campaigns. Dish labels live in vegan menu claims.
Vs other dining and seasonal guides
| Guide | Job |
|---|---|
| Seasonal eco campaigns | Earth Day, Veganuary, BFCM for product. Not school-night covers. |
| Seasonal GBP refresh | Hours, photos, Posts. This guide is the offer those Posts point at. |
| Vegan menu claims | Dish labels. The kids plate still has to be vegan. |
| Vegan brand positioning | Do not add dairy to keep flexitarian parents. |
| This guide | Tue-Thu school-night covers: contribution check, 3-week ladder, channel calendar, kill date |
Contribution check (steal this worksheet)
Kids-eat-free only trades when the table is incremental, the kids recipe is cheap, and the night is already slow. You cannot prove that with occupancy %. Use POS: covers, contribution, and whether the check rang the bundle SKU. Numbers below are a worked example. Replace every cell before you print a Post.
| Line | Kids-eat-free (example) | Family bundle (example) |
|---|---|---|
| Party | 2 adults + 2 kids | Same |
| Sell | 2 mains at $24. Kids plates $0 (one per adult) | One SKU: 2 mains + 2 kids plates + 1 side at $72 |
| Revenue | $48 | $72 |
| Recipe food | $20.40 | $22.80 |
| Food cost % | 42.5% | 31.7% |
| Contribution | $27.60 | $49.20 |
| Gate | Fail a 32% house cap | Pass. If food is $24 on a $62 price, raise the price or cut the recipe. Do not launch. |
Refuse a promo SKU whose recipe food cost sits above your house cap (many independents use 28 to 32%). Include pickup packaging. Skip delivery apps for the test weeks. Commission is a second tax. Time labor in the break-even calculator if you can.
Family bundle spec
| Rule | Do | Do not |
|---|---|---|
| Contents | 2 adult mains from a short list + 2 named kids plates + 1 shared side | Open substitution that builds four adult tickets at the bundle price |
| Kids plate | A real vegan dish already on the card | Leftover garnish, or a honey dessert tagged vegan |
| Fence | Tue-Thu, 5:00 to 8:30pm, dine-in and first-party pickup | Friday, brunch, or "whenever" |
| Kids-eat-free | Skip it | Four kids free behind one $14 plate |
| End date | Print it (a Thursday about three weeks after you go live) | Leaving the POS button on into October |
| Loyalty | Stamp or points on the bundle SKU only | A member 10% that stacks on the bundle |
3-week offer ladder
Anchor week 1 to [city_school_start]. That date repeats every year. If your city starts earlier than the national holiday, start earlier.
- Week 0, planning: export last year's Tue-Thu covers and contribution. Cost the bundle as a new recipe. POS button, one GBP Post (hours, price, end date), opted-in family email/SMS. Brief FOH. Do not advertise yet.
- Week 1, first-week convenience: live Tue-Thu 5:00 to 8:30pm. One email, one SMS, one GBP Post: school-night plate, pickup, end date. Staff script: "family plate, Tuesday to Thursday, ends [end_date]."
- Weeks 2 to 3, weekday habit: same nights, same SKU. Second-visit hook that is not 20% off (dessert add-on, extra stamp, or $4 off the next bundle with a cap of one). After [end_date]: kill the POS button, archive the Post, no "still going if you ask."
| When | GBP | Email / SMS | POS |
|---|---|---|---|
| Sunday before week 1 | Hours true. One Post: bundle, price, nights, end date, real plate | One email to the family segment. SMS only if opted in | Button in training. FOH card |
| Tue-Thu service | No extra Posts | No daily blast | Ring the SKU. Stamp loyalty. Track contribution |
| After [end_date] | Offer expired | Silence, or one "ended [date]" | Button off. No manager override |
Hours and seasonal photos: seasonal GBP refresh.
Keep the kitchen vegan
Flexitarian parents still get a vegan kids plate. Do not add cow cheese as the default. Banned: "eco family night," carbon-neutral dinner, plastic-free kids meal. Required: allergen sheet. Vegan is not free-from. See vegan menu claims.
Go / no-go
| Call | When |
|---|---|
| No-go | Kids-eat-free with no adult fence, percent-off the check, delivery-app promo, no end date, or recipe food cost above your house cap |
| Go | Costed bundle, Tue-Thu 5:00 to 8:30pm fence, POS + GBP + list, loyalty on that SKU, end date, contribution versus last year's same nights |
| Partial go | Pickup-only if dine-in cannot fire kids plates without a long ticket. Still no marketplace. |
Score covers, contribution, bundle mix, and Friday-Saturday ticket so you did not train weekend discounting.
Free kids plates train the wrong Tuesday
A bundle with a kill date is a product. Kids-eat-free with no fence is a habit you will still be funding in March.
Template fields and 7-day run
| Field | Fill with | Do not invent |
|---|---|---|
[city_school_start] | The Monday school actually starts | A national week that is not yours |
[slowest_weeknights] | Nights POS already shows as slow | Friday because a chain runs kids-eat-free then |
[food_cost_pct] | House food-cost cap (example 30%) | An occupancy target |
[avg_ticket] | Last year's Tue-Thu average check | Weekend ticket dressed up as weekday |
[bundle_price] | Price that keeps recipe food at or under [food_cost_pct] | The chain's advertised number |
[end_date] | A Thursday you will kill (about three weeks after go-live) | "While supplies last" |
[kids_plate_recipe] | Named vegan dish + allergen flags | Honey, dairy garnish, or "chef will veganize it" |
- Day 1: export last year's Tue-Thu covers, contribution, and average check. Fill [slowest_weeknights] and [avg_ticket].
- Day 2: cost the bundle recipe including pickup packaging. Set [bundle_price]. If food cost misses [food_cost_pct], stop.
- Day 3: lock [kids_plate_recipe] on the vegan matrix. No dairy default.
- Day 4: POS button, loyalty stamp, FOH card. No override after [end_date].
- Day 5: GBP Post plus email/SMS with nights, price, pickup, [end_date].
- Day 6: first fenced service. Ticket time the kids plate. Kill the SKU if the pass cannot hold it.
- Day 7: compare contribution to last year's same weekday. Adjust recipe or price. Do not add kids-eat-free to "help."
Frequently asked questions
How should a vegan restaurant fill Tuesday-Thursday covers on school nights without kids-eat-free destroying margin?
Fence a dated family bundle to school-night hours, cost it as one recipe, and run a 3-week ladder with a kill date. Do not run kids-eat-free or a percent-off check. Do not invent occupancy lift. Keep the kids plate vegan.
Can kids-eat-free work if we require one adult entrée?
Only if the table is incremental and the kids recipe is cheap. You rarely know incrementality. A priced bundle on the same fence is the safer default.
Should we put the bundle on DoorDash or Uber Eats?
Not for the test weeks. Commission stacks on a SKU already priced to a food-cost cap. Use first-party pickup.
How do we keep flexitarian parents without watering vegan?
Sell convenience and a real kids plate. Do not add dairy as the default. Vegan on the bundle means vegan.
What do we measure instead of occupancy %?
Covers, contribution dollars, bundle mix on fenced nights, and Friday-Saturday ticket. Compare to the same weekdays last year.