It turns out, statistics were calculated from a basis (sample size) of 99873 records, a little less than 10 percent of the million records in the table.
Because the sample size is a bit too little, the estimated number of records (num_rows) in the table is also reported a bit too little.
select
sta.num_rows,
sta.sample_size
from
user_tab_statistics sta
where
sta.table_name = 'TQ84_ESTIMATE_PERCENT_TEST';
--
-- NUM_ROWS SAMPLE_SIZE
-- ---------- -----------
-- 998730 99873