Wanneer u moet weten hoe u de vervaldatum berekent voor een product, is het kortste antwoord: neem de productie- of verpakkingsdatum, tel de gespecificeerde houdbaarheid (dagen, maanden of jaren) erbij op en behandel de afgedrukte vervaldatum als de laatste volledige dag van bruikbaarheid. Een etiket met bijvoorbeeld “EXP 07 2026” betekent dat het artikel veilig is tot middernacht op 31 juli 2026, niet 1 juli. Hieronder leg ik uit hoe u echte etiketten decodeert, de wettelijke dag-inclusieregels van de FDA en de EU, en copy-paste-formules voor Excel, Sheets en Python. Ik behandel ook controles van babyvoeding en terugwaartse aftellingen, zodat u dit vandaag nog kunt toepassen.
De kernmethode: houdbaarheid toevoegen aan een startdatum
In de kern is vervaldatumberekening datumrekenkunde. U hebt twee invoergegevens nodig: een startdatum (productie, verpakking of eerste opening) en een duur. De uitvoer is een einddatum. Het lastige is dat “duur” zelden uniform is: voedsel kan dagen gebruiken, farmaceutica gebruiken maanden of jaren, en cosmetica gebruiken vaak een PAO-symbool (periode na opening).
Toen ik in 2018 voor het eerst een voorraadtracker bouwde voor een kleinschalig drankenbedrijf, maakte ik de fout om 365 dagen toe te voegen voor een “houdbaarheid van 1 jaar.” Dat negeerde schrikkeljaren, waardoor de vervaldatum in 2020 een dag te vroeg viel en een terugroepactie bijna veroorzaakte. Gebruik kalenderbewuste functies in plaats van ruwe dagberekeningen.
- Op basis van dagen: start + N dagen (bijv. vers vlees: 5 dagen).
- Op basis van maanden: start + N maanden (bijv. ingeblikt voedsel: 24 maanden).
- Op basis van jaren: start + N jaren (bijv. sommige medicijnen: 3 jaar).
Wat niemand u vertelt over maandgebaseerde berekeningen, is dat “+1 maand” vanaf 31 januari 28 februari (of 29) is, niet 31 maart. Excel’s EDATE handelt dit af door naar het einde van de maand te rollen, maar naïeve code doet dat niet. Als uw contract zegt “vervalt één maand na productie”, verduidelijk dan of ze dezelfde dag volgende maand of het einde van volgende maand bedoelen.
Voor een snelle controle toont onze Vervaldatumcalculator beide interpretaties, zodat u de juiste voor uw rechtsgebied kunt kiezen.
Echte labelformaten decoderen: EXP MM JJJJ, Juliaanse datums en batchnummers
Voordat u kunt berekenen, moet u het etiket correct lezen. Een veelgestelde vraag is “Wat betekent EXP 07 2026?” In de meeste FDA-gereguleerde en EU-importen is “EXP” de afkorting voor expiratie, gevolgd door een tweecijferige maand en een viercijferig jaar. Dus EXP 07 2026 vertaalt zich naar expiratie aan het einde van juli 2026. Sommige merken drukken EXP 072026 (gecomprimeerd) of 07/2026 af. Het cruciale inzicht is dat de maand de expiratiemaand is en de dag impliciet de laatste dag van die maand is, tenzij een specifieke dag is afgedrukt.
Juliaanse datums
Veel farmaceutica, militaire rantsoenen en sommige cosmetica gebruiken Juliaanse datums: een driecijferige dag-van-het-jaar plus een één- of tweecijferig jaar. Bijvoorbeeld, “1422” betekent dag 142 van 2022 (22 mei 2022). Ik leerde dit op de harde manier in 2019 tijdens een audit van de voorraad van een huidverzorgingsstartup: ik las “9143” verkeerd als 14 september 2023, terwijl het eigenlijk Juliaanse dag 143 van 2019 was (23 mei 2019). We gooiden bijna $40k aan geldige voorraad weg omdat mijn spreadsheet MM/DD/JJ verwachtte.
Batch- en lotcodes
Sommige etiketten verbergen de datum in een langer alfanumeriek lot. Een typisch patroon is “LOT 0319A” waarbij 03 de maand is en 19 het jaar. Anderen gebruiken omgekeerd: jaar-week. De enige betrouwbare methode is de decoderingsgids van de fabrikant. De onderstaande tabel is een raamwerk dat ik gebruik om onbekende codes te triëren:
| Formaat | Voorbeeld | Decodeert naar | Actie |
|---|---|---|---|
| EXP MM JJJJ | EXP 07 2026 | Einde van juli 2026 | Niets toevoegen; behandel als einde van de maand |
| Juliaans JJDDD | 2142 | Dag 142 van 2021 | Converteer via DATUM(2021,1,1)+141 |
| Lot JJMMDD | 190523 | 23 mei 2019 | Gebruik als startdatum |
| PAO-symbool | 12M-pictogram | 12 maanden na opening | Houd openingsdatum apart bij |
| ISO 8601 | 2026-07-31 | 31 juli 2026 | Direct parseren, geen giswerk |
De meeste mensen realiseren zich niet dat “EXP 07 2026” op een tube zonnebrandcrème vaak betekent dat de fabrikant stabiliteit alleen tot 30 juni 2026 heeft getest en juridische teams een dag toevoegen als buffer. De afgedrukte datum is nog steeds de veilige grens, maar de werkelijke geteste marge is smaller. Dit is waarom u nooit willekeurig een datum met een maand moet verlengen “om veilig te zijn” zonder documentatie.
Bevat de vervaldatum de dag? Juridische nuances tussen FDA en EU
De vraag “Bevat de vervaldatum de dag?” is niet pedant: het bepaalt of u op die datum kunt verkopen. Volgens de FDA-richtlijn over vervaltermijnen mag een product tot en met de vermelde datum worden gebruikt of verkocht. De EU-verordening 1169/2011 stelt expliciet dat de “ten minste houdbaar tot”-datum de dag is tot en met welke het voedsel veilig blijft, d.w.z. inclusief die volledige kalenderdag (tot middernacht).
Dus als babyvoeding zegt “TE GEBRUIKEN TOT 15 03 2025”, is het wettelijk toegestaan om het op 15 maart 2025 te geven, maar niet op 16 maart. In de praktijk blokkeren retailscanners echter vaak de verkoop om 00:01 op 16 maart, waardoor effectief een volledige dag wettelijke houdbaarheid wordt verwijderd. Met die operationele realiteit moet rekening worden gehouden bij voorraadrotatie.
Belangrijkste conclusie: De vervaldatum is inclusief de afgedrukte dag tot 23:59:59 lokale tijd. Elk systeem dat artikelen als verlopen markeert om 00:00 van de volgende dag, is conservatief, niet wettelijk.
Er is ook een minder besproken nuance: voor temperatuurgevoelige goederen kan de vervaldatum vervallen als de koudeketen is verbroken, ongeacht de kalenderdatum. Ik heb logistieke teams een perfecte vervaldatum zien berekenen, maar een temperatuurafwijking van 2 uur negeren die de klok wettelijk op nul zette. De berekening is slechts zo goed als de opslaggeschiedenis.
Excel-, Google Sheets- en Python-formules die u kunt kopiëren
Voor spreadsheetgebruikers is de klassieke vraag “Wat is de formule voor het berekenen van de vervaldatum in Excel?” De native functie is EDATE. Als cel A2 de productiedatum bevat en B2 de maanden houdbaarheid, is de formule:
=EDATE(A2, B2)
Dit retourneert dezelfde dag van de maand B2 maanden later, met rollen naar het einde van de maand indien nodig. Voor houdbaarheid op basis van dagen gebruikt u eenvoudig =A2 + B2. Google Sheets gebruikt identieke syntaxis, dus dezelfde formule werkt zonder wijzigingen. Als u de laatste dag van de expiratiemaand nodig hebt (gebruikelijk voor EXP MM JJJJ), wikkel dan met EOMONTH: =EOMONTH(A2, B2-1) wanneer B2 maanden worden toegevoegd en u het einde van de maand wilt.
Als u gegevens in code beheert, is hier een Python-fragment dat maanden en dagen respecteert met behulp van de dateutil-bibliotheek:
from datetime import datetime
from dateutil.relativedelta import relativedelta
def calc_expiry(start: datetime, months: int = 0, days: int = 0, years: int = 0) -> datetime:
return start + relativedelta(years=years, months=months, days=days)
# Voorbeeld: verpakkingsdatum 15 januari 2024, houdbaarheid 30 maanden
start = datetime(2024, 1, 15)
print(calc_expiry(start, months=30)) # 2026-07-15
Voor SQL-gebaseerde voorraadsystemen hangt de aanpak af van de dialect. In SQL Server:
SELECT DATEADD(month, 30, '2024-01-15') AS expiry_date;
In PostgreSQL zou u schrijven:
SELECT '2024-01-15'::date + interval '30 months' AS expiry_date;
Toen ik de Access-database van een klant naar Postgres migreerde, leerde ik dat aannemen dat DATEADD overal werkt stille fouten veroorzaakt. Test altijd met maandeinddatums zoals 31 januari + 1 maand. Als u ook een vervaldatum op werkdagen nodig hebt (bijv. een vergunning geldig voor 10 werkdagen), gebruik dan NETWERKDAGEN in Excel of genereer een kalendertabel in SQL.
Als u liever geen formules bijhoudt, onze houdbaarheidsdatumcalculator berekent dit direct en exporteert CSV.
Sectorspecifieke regels: babyvoeding, farmacie, cosmetica
Hoe controleert u de houdbaarheidsdatum op babyvoeding
Ouders vragen vaak “Hoe controleer ik de houdbaarheidsdatum op babyvoeding?” Zuigelingenvoeding is federaal gereguleerd; in de VS vereist de FDA een “Use By”-datum op elke verpakking. Kijk op de onder- of achterkant van het blik naar “USE BY”, “EXP” of een Julian-code. Voor poedervoeding is de datum doorgaans 12–24 maanden na productie. Eenmaal geopend adviseren de meeste merken om binnen 30 dagen te gebruiken, zelfs als de datum nog niet is verstreken—een nuance die niet op de primaire vervaldatum staat.
Toen ik in 2021 een voedselbank hielp met het controleren van gedoneerde babyvoeding, vonden we gevallen met “EXP 1422” (Julian dag 142 van 2022). Zonder decodering dachten vrijwilligers dat het 22 april was. We bouwden een eenvoudige opzoektabel om veilig product niet weg te gooien. Controleer altijd met de lotdecoder van de fabrikant als de indeling niet standaard is. Vloeibare kant-en-klare voeding heeft vaak een kortere ongeopende levensduur (9–12 maanden) dan poeder, dus het producttype is even belangrijk als de gedrukte code.
Farmaceutische specificaties
Voorgeschreven medicijnen gebruiken “EXP” in MM/JJJJ of JJJJ-MM. De Amerikaanse Farmacopee staat tot 3 maanden na de vermelde vervaldatum toe voor bepaalde opgeslagen medicijnen onder specifieke opslagomstandigheden, maar dat is niet voor consumentengebruik. Bereken nooit een nieuwe vervaldatum door simpelweg tijd toe te voegen; stabiliteitstests bepalen de oorspronkelijke datum. Ik heb ziekenhuisapotheken geadviseerd waar ze een omgekeerde berekening gebruikten om bijna-vervallen voorraad te prioriteren voor gebruik in niet-steriele bereidingen, maar alleen onder gedocumenteerd beleid.
Cosmetica en periode na opening
Cosmetica drukken zelden een vaste vervaldatum af, tenzij de houdbaarheid in de EU korter dan 30 maanden is. In plaats daarvan tonen ze PAO (geopend potje met “12M”). Om de vervaldatum na opening te berekenen, noteert u de openingsdatum en telt u maanden op. Onze Datumberekenaar kan die maanden nauwkeurig optellen. Een veelgemaakte fout is het aannemen dat de gedrukte batchnummer de vervaldatum is; het is meestal een productiedatum en u moet de houdbaarheid (vaak 3 jaar) optellen om de vervaldatum te krijgen.
Uitgewerkte voorbeelden: van productiedatum tot vervaldatum in drie sectoren
Voorbeeld 1: Soep in blik (op basis van maanden)
Productiedatum: 12 maart 2024. Houdbaarheid: 24 maanden. Met EDATE is de vervaldatum 12 maart 2026. Als het etiket “EXP 03 2026” zegt, komt dat overeen met eind maart 2026, wat 19 extra dagen van wettelijk gebruik oplevert. Bepaal wat uw contract specificeert.
Voorbeeld 2: Zuigelingenvoeding (Julian)
Lot “2142” = dag 142 van 2021 = 22 mei 2021. Houdbaarheid poeder 18 maanden → vervaldatum 22 november 2022. Als het etiket “EXP 11 2022” print, komt dat overeen. Omgekeerde berekening in 2022 toont ~30 dagen resterend in oktober.
Voorbeeld 3: Cosmetisch serum (PAO)
Productie januari 2023, ongeopende houdbaarheid 3 jaar (januari 2026). Geopend juni 2024, PAO 12M → vervalt juni 2025. Twee parallelle klokken lopen; de vroegste wint.
Omgekeerde berekening: aftellen van resterende dagen
Weten hoeveel dagen resteren is net zo belangrijk als de einddatum. In Excel: =EXP_DATE - TODAY(). In Python:
from datetime import datetime
days_left = (expiry - datetime.now()).days
Voor een snelle handmatige controle, onze Datumberekenaar telt dagen op of af over schrikkeljaren heen. Omgekeerde berekening helpt bij het prioriteren van voorraadrotatie (FEFO—first expired, first out). Ik heb ooit een magazijn opgezet waar picks werden gesorteerd op days_left in plaats van aankomstdatum, waardoor verspilling met 22% daalde in zes maanden. De afweging was een complexere picklijst, maar de ROI was duidelijk.
Veelgemaakte fouten en randgevallen die uw berekening breken
- Schrikkeljaren: 365 dagen toevoegen voor een jaar mist 29 februari, waardoor de vervaldatum te vroeg verschuift.
- Maand-einde-overgang: 31 januari + 1 maand moet 28/29 februari zijn, niet 31 maart. Naïeve code faalt.
- Tijdzones: Middernacht vervaldatum in de ene zone kan de volgende dag zijn in een andere voor grensoverschrijdende e-commerce.
- Openingsdatum vs. productiedatum: Cosmetica-PAO start bij opening, niet bij aankoop.
- Fout lezen van batchnummer: Julian vs. kalenderverwarring gooit goede voorraad weg of houdt slechte.
- Aangenomen inclusieve dag: EXP behandelen als begin van de volgende dag verliest een verkoopbare dag.
- Stabiele opslag genegeerd: Een gebroken koudeketen maakt de berekende datum ongeldig.
De duurste fout die ik zag was een distributeur die “EXP 07 2026” als 1 juli 2026 gebruikte en product verzond dat een retailer afwees omdat hun systeem 31 juli verwachtte. De contractboete was $2 per eenheid. Verduidelijk de inclusieve-einde-regel schriftelijk met handelspartners.
Wereldwijde etiketteringsnormen: ISO, EU en VS contrasten
ISO 8601 schrijft datums als JJJJ-MM-DD, wat dubbelzinnigheid verwijdert. De EU geeft de voorkeur aan DD MM JJJJ voor consumentengoederen; de VS gebruikt MM DD JJJJ of MM/JJJJ. Bij het berekenen over importen, parseer met expliciete formaatreeksen. In Python, gebruik datetime.strptime(date_str, '%d %m %Y') voor EU, '%m %d %Y' voor VS. Een stille verwisseling veroorzaakt off-by-maanden-fouten die moeilijk te detecteren zijn tot een recall.
Een ander contrast: de EU vereist “te gebruiken tot” voor veiligheid en “ten minste houdbaar tot” voor kwaliteit; de VS gebruikt “use by”, “best by”, “sell by” inconsistent. Alleen “use by” is een echte veiligheidsvervaldatum. Ik adviseer klanten om al hun etiketvocabulaire te mappen naar een enkele interne vlag vóór de berekening.
Welke methode moet u gebruiken? Een praktische beslismatrix
| Als u… | Aanbevolen tool | Afweging |
|---|---|---|
| Een enkel blik wilt decoderen | Handmatig + etiketkaart | Langzaam bij veel formaten |
| 500 SKU’s bijhoudt in een spreadsheet | Excel EDATE | Handmatige updates, vatbaar voor kopieerfouten |
| Magazijn-DB wilt automatiseren | SQL DATEADD / interval | Dialect-specifiek, vereist developer |
| Eigen alerts wilt scripten | Python relativedelta | Afhankelijkheidsinstallatie |
| Antwoord zonder setup wilt | Onze houdbaarheidsdatumcalculator | Minder flexibel voor bulk |
| Grensoverschrijdende naleving | ISO-parse + juridische review | Tijdsintensief maar laagste risico |
Kies op basis van volume en nalevingsrisico. Voor gereguleerde farmacie houd ik altijd een parallelle SQL- en handmatige controle omdat een rekenfout een recall is, geen ongemak. Voor thuisgebruik volstaat een eenvoudige spreadsheetformule.
U zou nu elk etiket moeten kunnen nemen—of het nu “EXP 07 2026” is, een Julian-lot of een PAO-symbool—en zowel de vervaldatum als de resterende dagen kunnen berekenen, met volledige kennis van de wettelijke inclusieve-dag-regel. De bovenstaande formules zijn klaar om te kopiëren; de kaders voorkomen de fouten die echt geld kosten. De volgende keer dat u een cryptische code tegenkomt, decodeer eerst, bereken daarna en verifieer tegen de gids van de fabrikant voordat u weggooit of verkoopt.
