Gelato is made to be eaten fresh: it's churned with less air and served warmer than ice cream, so its smooth texture is fragile. What ends it is ice crystals, which grow every time it warms and refreezes, a process called heat shock. In the dipping case, a pan is best within days; in a sealed pint held at a steady −10°F or so, it keeps for months. In the example below, a Chicago gelato shop's sealed pints passed every test through day 120, and they say best by 90 days, a 25% margin. Below is what ends gelato's shelf life, the dipping case against pints, the study, the date on the pint, and a free template.
The short version
- Ice crystals end gelato's shelf life.
- Each warm-up and refreeze grows them.
- Pans in the dipping case are best within days.
- Sealed pints at a steady −10°F keep for months.
- Run a real-time study, frozen, and leave a margin.
- Print "Keep frozen" and a best-by date.
- 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 |
|---|---|---|
| Ice crystals | Texture turns icy and coarse | Harden fast after churning; steady storage temperature |
| Heat shock | Warm-ups melt the edges, which refreeze as ice | Doors shut; pints straight into the freezer |
| Shrinkage | Gelato pulls away from the container | Steady temperature; full pints |
| Flavor loss | Fruit and nut flavors fade; freezer smells creep in | Sealed pints; a freezer for gelato only |
The shop's year is in is a gelato business profitable, and the margins on a pint in gelato profit margin.
How it's stored
| Stored | In the example's tests | On the label |
|---|---|---|
| Sealed pint, hardened and held at −10°F | Passed every test through day 120 | Best by 3 months |
| Pan in the dipping case | Not part of the study | Sold within 5 days of making |
| Pint in a home freezer opened daily | Icy by week 3 in a side study | "Keep frozen; return to the freezer promptly" |
The shop makes dipping-case pans daily and in small batches; pints are hardened straight from the batch freezer.
An example: a shelf life study
Lakefront Gelato, the made-up gelato shop in Chicago, Illinois, I use in these examples, kept sealed pints of pistachio from one batch in its hardening freezer and tasted two at each pull:
| Test | Pass if | Day 0 | Day 30 | Day 60 | Day 90 | Day 120 | Day 180 |
|---|---|---|---|---|---|---|---|
| Texture score, 1 to 9 | at least 6 | 9 | 9 | 8 | 7 | 6 | 5 |
| Iciness, 1 to 5 | at most 2 | 1 | 1 | 1 | 2 | 2 | 3 |
| Flavor score, 1 to 9 | at least 6 | 9 | 9 | 8 | 8 | 7 | 6 |
| All pass? | Pass | Pass | Pass | Pass | Pass | Fail |
Everything passed through day 120; at day 180 the texture fell below 6 and ice showed. Taking a 25% margin off day 120 gives 90 days, three months. How the pulls and margin are planned is in shelf life testing.
The date on the label
Frozen food carries a quality date, "Best by", with "Keep frozen" and how to cook or thaw it. In California, food made from July 1, 2026 that shows a date uses "BEST if Used by" or "BEST if Used or Frozen by" for quality, in sell by date law, and how to write the date is in best by date format. The pints themselves are in how to package ice cream for sale.
Get the template
Download the gelato 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 flavor. Twenty flavors, batches every day, pints in the shop freezer and tubs at restaurants: someone has to date each batch and send the oldest pints first.
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 gelato 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 restaurant 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 restaurant | 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.
