Time to first byte is not the number a user feels

TTFB measures how long the server took to start responding, which is the part a backend engineer controls and a small fraction of what the visitor experiences. A page can have an excellent TTFB and take six seconds to become useful.

curl -w 'dns:%{time_namelookup} connect:%{time_connect} ttfb:%{time_starttransfer} total:%{time_total}n' 
     -o /dev/null -s https://shop.example.com/

The gap between ttfb and total is transfer, and everything after that — parsing, stylesheets, fonts, scripts, the first render — is invisible to curl entirely. Optimising a 120ms TTFB to 80ms while the page ships 400KB of JavaScript is measurable and pointless. Keep TTFB as a server-side regression check and use a browser-based measurement for anything that claims to be about the user.