Where it's printed
Expect one of two shapes. The long form is a longer run of letters and digits. The short form is a letter followed by three digits, like Y060. Where the mark sits varies by product; the batch code guide covers where to look.
How the code is built
In the long form, the third character is a year letter and the fourth is the month. The short form works differently: the letter is the year and the three digits are the day of the year.
Worked example
Y060. The Y stands for 2024 and 060 is day 60 of the year, so this was made on 29 February 2024. The app uses 36 months for L'Oréal Paris, which puts the best before date at February 2027. In November 2026 that leaves about 3 months.
A long-form code dates a product to the month only, while a short-form code can reach the exact day.
Variants and edge cases
The app handles the variants and edge cases for you. Some codes the rule can't date; the app says so instead of guessing.
Shelf life and the PAO symbol
The app uses 36 months for L'Oréal Paris, a default for the group rather than a figure the brand publishes. It is an estimate, and heat and sunlight can shorten it.
After opening, the PAO symbol sets the clock, not the batch code. It is the open jar with a number like 6M or 12M on it.
Cosmetic Checker is independent and isn’t affiliated with L'Oréal Paris.