How we check storage times

Every storage time on ShelfLifeFacts comes from an official source, is quoted, and carries the date we checked it. Nothing is estimated: a cell no official source covers says Not stated.

Where the numbers come from

The base layer is USDA FoodKeeper, the public-domain dataset behind the USDA FoodKeeper app. We keep the file as published, record where and when it was saved and its sha256, and copy its times to the food pages by code, never by hand. On top of that we read official pages from the FDA, CDC, the National Center for Home Food Preservation and university extension services, and for breast milk also MedlinePlus from the National Library of Medicine. Blogs, recipe sites, brand pages and forums are never used for a time or a safety claim.

How a page is fetched

Our fetcher identifies itself as ShelfLifeFactsBot, reads robots.txt first and obeys it, honours any crawl-delay, and never sends more than one request per second to a host. Each page is tried once. If a site refuses the request, shows a challenge or captcha page, or does not let us read its robots.txt, we record it as blocked and move on. We never try to get around a block. For every page we keep the text we read, its sha256 and the time we fetched it.

How a fact is checked

Each fact on a food page points to one source and carries a short verbatim quote, at most about 25 words. Our import refuses a quote that does not appear in the saved text of that page, and refuses a time whose number and unit are not in its own quote. Freezer times are labelled best quality, because the FDA storage chart states that freezing at 0 °F keeps food safe indefinitely. A time the source does not label as safety or quality is shown without a label.

When sources disagree

When two publishers give different times for the same state, place, pack and conditions, the cell says Sources disagree and shows both, the stricter one first. A time a source gives for a different pack or condition, for example a bag instead of a jar or a room kept at 77 °F or colder, is never set against the others: it is shown with that pack or condition, as also stated. In the counter column, a perishable state shows the 2-hour limit from CDC unless a source states a time, and a cell never shows both Not recommended and a time. The Sources compared table on each page lists every source's numbers side by side with their dates.

Which pages search engines see

A food page is offered to search engines only when it has at least 8 facts about that food (each storage cell, one state in one place, counts once however many publishers give it, and each distinct note counts once; general rules such as the 2-hour rule do not count), from at least 2 independent publishers, at least one of them USDA, FDA or CDC, plus at least 150 words of explanation written from its cited sources, and when it is not too similar to another food page. Category pages need 100 words and 2 such foods, lists 100 words and 5 foods, guides 300 sourced words. Pages below the bar stay online with a noindex tag until they are complete.

Dates

Checked is when we fetched the source. Dated is the date the source states for itself, when it shows one. FoodKeeper's date is the modified date of its current data version.