Cooked meals are perishable, so meal prep lives by days: cooked fast, cooled fast, sealed and kept at 41°F or below, a chicken and rice meal holds up for most of a week. The FDA Food Code, which most states adopt, caps ready-to-eat food a kitchen makes and holds cold at 7 days, counting the day it was made; meal prep businesses often date well inside that, because the rice dries and the greens wilt first. In the example below, a Tampa meal prep business's sealed meals passed every test through day 5, and they say use by 4 days, a 20% margin. Below is what ends a meal's shelf life, how storage changes it, the study, the date on the label, and a free template.
The short version
- Cooked meals keep days, not weeks.
- Cool fast: 135°F to 70°F in 2 hours, 41°F within 6.
- The Food Code caps cold holding at 7 days, counting the day made.
- Rice dries and greens wilt before anything else.
- Freeze meals for longer.
- Run a real-time study, refrigerated, with lab counts.
- TaroStack gives every batch its date from the shelf life you set. More below.
What ends its shelf life
| What ends it | What happens | What slows it |
|---|---|---|
| Microbes | Grow in cooked food held too warm or too long | Cool fast; 41°F or below; sealed containers |
| Drying | Rice and chicken dry out in the fridge | Sealed containers; a little sauce |
| Wilting | Greens and fresh vegetables go limp | Pack them separately; add them last |
| Warm holding | A gym fridge left open warms up | A fridge that holds 41°F; checked |
The license is in meal prep business license, and cooling logs in cooling log template.
How it's stored
| Stored | In the example's tests | On the label |
|---|---|---|
| Sealed container, refrigerated at 34 to 38°F | Passed every test through day 5 | Use by 4 days, counting the cook day |
| Sealed and frozen | Passed after 60 days frozen and 2 days thawed in a side study | Frozen meals dated 2 months |
| Gym fridge | Not part of the study | Checked at 41°F or below on every delivery |
The gym's fridge is checked with a thermometer on every delivery; meals past their date come back and are recorded as waste.
An example: a shelf life study
Fuel Box Meals, the made-up meal prep business in Tampa, Florida, I use in these examples, kept sealed chicken and rice meals from one cook day in the cooler, tasted one and sent one to a lab at each pull:
| Test | Pass if | Day 0 | Day 2 | Day 3 | Day 4 | Day 5 | Day 7 |
|---|---|---|---|---|---|---|---|
| Taste score, 1 to 9 | at least 6 | 9 | 9 | 8 | 7 | 6 | 4 |
| Texture score, 1 to 9 | at least 6 | 9 | 8 | 8 | 7 | 6 | 5 |
| Aerobic plate count, lab, CFU/g | at most 100000 | 100 | 500 | 2000 | 8000 | 30000 | 400000 |
| All pass? | Pass | Pass | Pass | Pass | Pass | Fail |
Everything passed through day 5; at day 7 the taste fell below 6 and the plate count passed the example's limit. Taking a 20% margin off day 5 gives 4 days. How the pulls and margin are planned is in shelf life testing.
The date on the label
Cooked meals are perishable, so they carry "Use by" and "Keep refrigerated". In California, food made from July 1, 2026 that shows a date uses "USE by" for a safety date, in sell by date law, and how to write the date is in best by date format. Pricing a meal is in how to price meal prep.
Get the template
Download the meal prep shelf life study template. One sheet: the product, the lot tested, the day it was made, how it's stored and the margin to leave; then each test with its limit and the result at each pull. It marks each pull pass or fail, finds the last day everything passed, takes the margin off, and gives the shelf life for the label and the date for a batch made today. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
The study gives one date for one meal. Ten meals a week, two cook days, subscribers and a gym fridge: someone has to date each cook day, make sure Monday's meals go before Thursday's, and count what comes back.
How TaroStack does it
TaroStack gives every batch its date from the shelf life you set, and sends the oldest out first.
Dates from the shelf life. Each meal carries its shelf life in days, and each batch's lot gets its production date and the date that follows from it.
First-expired-first-out. Orders take the oldest lots first by default, and a gym can be set to take only stock with enough days left.
What's coming up. A forecast shows what will expire unsold and what it costs, and anything thrown out is recorded with its reason, expired or spoiled, so waste shows by item.
| The job | Spreadsheet | In TaroStack |
|---|---|---|
| The date on a batch | Worked out by hand | From the shelf life, on the lot |
| Which batch goes out first | Dates on tape | First-expired-first-out |
| Stock with enough days for a gym | Checked by hand | The customer's shelf-life rule |
| What expired last month | Not counted | Waste by reason |
Lots, dates, first-expired-first-out and the expiry forecast are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
