Jon Postel wrote it as a rule for network software, and the design version is a rule about forms: the shape a person writes something in is theirs, and it was formed long before they reached your field. A validator that accepts one shape has not made the data cleaner. It has made a stranger retype something they had already written correctly.
Below are five things everybody has typed into a form — a phone number, a date, a card number and so on. For each one you are shown eight ways real people write it, and asked which one you would have written. Not which is best, not which is correct. Which is yours.
Then two fields get to see your answer. One is strict, in the way most fields are strict, and it accepts a single shape. The other is liberal: it strips what it does not need and reads the rest. Neither of them is inventing a rule — the strict patterns below are the ordinary ones, the kind that ship.
The measure is straightforward. Out of five, how many times was the way you already write something rejected by a field that could have accepted it?
What the strict field is doing
It is not being unreasonable, and that is the uncomfortable part. Each strict rule below is the ordinary implementation: digits only, one separator, a fixed order. Every one of them has a defensible reason behind it, usually that something further down the line wanted a particular shape, and every one pushes that want out to the person at the keyboard.
The liberal field does not accept more meanings. It accepts more spellings of the same meaning, then normalises to exactly what the strict field wanted. That is the whole trick, and it is the second half of Postel's sentence — conservative in what you send. Being generous at the door does not mean being sloppy afterwards.
What it costs you
Format rejection is the most avoidable failure in any form. The person knew the answer, typed the answer, and was told the answer was wrong. Nothing about that exchange was about the data.
The cost is invisible in your funnel. A rejected format shows up as a retry, and a retry looks like engagement. What it actually is depends on whether they came back.
Spaces and dashes are the whole argument, most of the time. Stripping non-digits before validating is a line of code, and it is the single highest-yield line in most checkout flows.
Where you cannot be liberal, be honest early. If a field truly must have one shape, say so before the person types, not after — the rejection is expensive, the instruction is free.