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.