Why does my drive show less storage than advertised?
Two separate reasons that compound, and only one of them is arguably anyone's fault.
Reason one: decimal versus binary units. Storage manufacturers use decimal prefixes, where 1 GB means 1,000,000,000 bytes. Operating systems — Windows in particular — have traditionally displayed binary quantities, where the underlying unit is 1,073,741,824 bytes, while still labelling them "GB".
The two disagree by about 7% at gigabyte scale and roughly 9.3% at terabyte scale, and the gap widens with each prefix. This is why a 1TB drive shows as about 931GB, and a 500GB drive as about 465GB. Nothing is missing — the same bytes are being described with a different unit.
The formally correct binary units are GiB and TiB — gibibytes and tebibytes — and macOS and most Linux distributions now display decimal GB, matching the manufacturer, which is why the same drive reports differently on different systems.
Reason two: space that genuinely is not available to you.
Filesystem overhead — the structures tracking where everything is stored.
Recovery partitions, frequently several gigabytes, for restoring the system.
The pre-installed operating system, which on a laptop can be a substantial share of a small drive.
Over-provisioning on SSDs. A reserve of cells kept aside by the controller for wear levelling and replacing failed blocks. It is invisible and is what keeps the drive reliable and fast.
Reserved space for system files, hibernation files, virtual memory and snapshots — macOS in particular reserves space for local Time Machine snapshots, which is why "available" and "free" differ there.
What this means in practice:
The discrepancy is predictable. Multiply the advertised capacity by about 0.909 for terabyte drives to estimate what a binary-reporting system will show.
Drives perform poorly when nearly full, SSDs especially, so treat the last 10% as unavailable regardless.
If the shortfall is much larger than expected, look for recovery partitions, hibernation files, or snapshots rather than assuming a defect.