The tags shown are picked from the top 9 tags by non-CW post count (so questions and answers, but not counting posts with CW (Community Wiki) status), then ranked by their score (total up-votes, minus total down-votes, only for the non-CW posts, ties are broken by post counts), and the top 6 tags are shown.
Today, for the specific user you see, the 9 tags by post count are:
abstract-algebra
, 600 posts, scoring 3579
category-theory
, 528 posts, scoring 2892
group-theory
, 365 posts, scoring 2131
algebraic-topology
, 325 posts, scoring 1579
linear-algebra
, 285 posts, scoring 1861
algebraic-geometry
, 227 posts, scoring 1223
representation-theory
189 posts, scoring 791
ring-theory
168 posts, scoring 866
number-theory
, 167 posts, scoring 1738
They only have 146 non-CW posts with the soft-question
tag, placing it at #10 and just outside the above top 9 tags. So it doesn't matter what their score is for this tag, it simply doesn't have enough posts to make the cut.
Once you then sort the above 9 tags by score and pick the top 6, you get:
abstract-algebra
, 600 posts, scoring 3579
category-theory
, 528 posts, scoring 2892
group-theory
, 365 posts, scoring 2131
linear-algebra
, 285 posts, scoring 1861
number-theory
, 167 posts, scoring 1738
algebraic-topology
, 325 posts, scoring 1579
and the algebraic-geometry
, ring-theory
and representation-theory
tags are not shown. Of course, the UI shows you the total post count with CW posts included.
I've created a SEDE query that demonstrates this.
Take into account that the SEDE data set only updates once every week, and was last refreshed yesterday (Sunday 2020-08-09), while the Top Tags update frequently. Your screenshots were from yesterday so the SEDE data set counts should be very close to what was used to generate the listing of tags shown.
For a given user and site, the query shows you their tags, their tag score, post count for each tag (first column with CW posts, the second optionally without CW posts, used for ranking), and their correct rankings by tag score. The first 9 rows are tags that are considered, by post count, the rest of the table are the tags that are not considered as they fall outside of the top 9 by count. All rows are ordered by tag score, but within their respective groups.
I've included extra parameters in the query, to play with how the algorithm works. You can alter the number of tags considered, and you can set the countcw
parameter to 1
to include Community Wiki posts when ranking the top 9 counts (tag scores always filter out CW posts and only consider scores for answers).
Qiaochu's tags are very interesting here, because their numbers, as they stood yesterday, demonstrate the parameters I named very nicely. Change either to see how the results might change:
It has to be the top 8 or 9 tags by post count, because as your screenshot from yesterday shows number-theory
is included and the query lists it as the 9th tag by count. If the cut-off was 10 tags, then soft-question
would have been shown as it is their 10th tag by post count. If the cut-off was lower, number-theory
would not have made the cut.
If the post-count actually does include Community Wiki posts, number-theory
would also make the cut when only considering the top 8 tags.
To figure out if CW posts are included I actually looked at the results for your own account:

Only when you disregard CW posts and put the cut-off at the top 9 posts does the query reproduce your exact tag list:
real-analysis
, 192 posts, scoring 673
general-topology
, 177 posts, scoring 576 (you received an up-vote on this tag today, so after)
linear-algebra
, 166 posts, scoring 443
elementary-set-theory
, 94 posts, scoring 347
sequences-and-series
, 92 posts, scoring 358
calculus
, 90 posts, scoring 246
matrices
, 83 posts, scoring 254
inequality
, 79 posts, scoring 253
limits
, 74 posts, scoring 271
which, after sorting and cutting, then becomes:
real-analysis
, 192 posts, scoring 673
general-topology
, 177 posts, scoring 576
linear-algebra
, 166 posts, scoring 443
sequences-and-series
, 92 posts, scoring 358
elementary-set-theory
, 94 posts, scoring 347
limits
, 74 posts, scoring 271
Here limits
is the wild-card; it would rank a shared 9th place together with functional-analysis
if CW posts were not filtered, and the latter has a higher tag score. But when CW posts are filtered, there is no tie for 9th place (by post count), limit
makes the cut, and ends up at 6th place when those 9 are sorted by score.