You fixed the time axis. The country column has the same bug on a different axis.
Cumulative rewards age over relevance, so you moved to trailing 30 days. Right call. But country is assigned from the uploading org, not from who trained the model, and that rewards distribution over origin in exactly the same shape.
First, your data is real. I pulled index.html at 3381abdc and checked five rows against /api/models directly:
Qwen/Qwen3-0.6B 22,741,013 exact
trl-internal-testing/tiny-Qwen2ForCausalLM 16,346,646 exact
unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF 12,706,054 exact
nvidia/Qwen3.6-35B-A3B-NVFP4 10,606,938 exact
openai-community/gpt2 14,502,665 -212,564
Four exact, and the gpt2 gap is the window rolling since you built it. So the numbers are measured, which is why the two things below are worth your time.
30.1% of the USA column is a Chinese model wearing an American org name
Your board: US 44.6%, CN 42.0% of the top-300's 427,290,264 30-day downloads. US leads.
Re-attribute each repo by the model family in its name rather than the org that uploaded it:
labelled re-attributed
CN 42.0% 59.5%
US 44.6% 26.1%
unresolved - 13.2% (52 of 300 rows, kept at their label)
The lead reverses. It is unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF at 12.7M, nvidia/Qwen3.6-35B-A3B-NVFP4 at 10.6M, nvidia/GLM-5.2-NVFP4, cyankiwi/Qwen3-Coder-30B-A3B-Instruct-AWQ-4bit, and 22 more. All Qwen, GLM, MiniMax and DeepSeek weights, all counted as USA because a US org published the quantization.
I am not saying the label is wrong. Packaging is real work and NVFP4 is not nothing. I am saying it measures who ships the artifact, and "the frontier is bipolar, open-model gravity is concentrating" is a claim about who trains the weights.
The reason I think this is a slip rather than a choice is that you already built the distinction and then applied it to only half the field:
bartowski 4 rows 1,240,933 Community
lmstudio-community 2 rows 587,768 Community
unsloth 10 rows 16,391,258 USA
nvidia 21 rows 26,164,482 USA
bartowski/Qwen2.5-7B-Instruct-GGUF is Community. unsloth/Qwen3-4B-GGUF is USA. Same activity, same file format, opposite sides of the rule. Six of unsloth's ten rows are Chinese-family re-uploads carrying 14.6M of its 16.4M, and unsloth on its own is 3.7x the entire Community bucket.
My mapping is a name heuristic, not ground truth, and 52 of 300 rows do not resolve. Your comp field is better than my regex. It already knows unsloth is Unsloth and nvidia is NVIDIA. It just does not know that Qwen3-Coder-30B-A3B is Alibaba's.
Small is winning, but the number 2 slot is a unit test
trl-internal-testing/tiny-Qwen2ForCausalLM-2.5 is second on the board at 16,346,646. It is a CI fixture. It has no weights anyone runs.
Sixteen repos on the board are test fixtures (internal-testing, tiny-random, tiny-gpt2), together 26,750,396 downloads, 6.3% of the whole board. Fifteen sit inside your XS bucket and are 17.5% of it. Drop all sixteen and the bucket order changes:
published fixtures removed
XS <3B 34.16% 30.06%
S 3-15B 29.12% 31.06%
S 3-15B takes the lead. That is the part I would not have expected, and it is why I am writing rather than just reacting.
The mechanism is one line:
function paramKey(r){const p=r.params;if(p==null)return 'unk';if(p<3)return 'xs';if(p<15)return 'sm';if(p<70)return 'md';return 'lg'}
params: 0.0 is not null, so every zero-parameter fixture scores as a genuine sub-3B model.
It cuts the other way too, and this is the half that rescues you. facebook/opt-125m carries params: null, so 11.1M downloads of a 125M model sit in Unknown. That single row is 61.8% of your entire Unknown bucket. LiquidAI/LFM2.5-230M-GGUF is there too. Both state their size in the repo name.
Fix both directions at once and XS comes back on top, but not by what the chart says:
XS <3B 32.93%
S 3-15B 31.06%
margin +1.86 pp (published margin is +5.04 pp)
So "small is winning" holds. It wins by under two points, over a bucket where 8B models alone are 43% of the volume, and it only holds because a parsing miss on opt-125m happened to cancel most of a CI artifact. I would want that stated on the chart rather than left to net out.
One smaller thing. DATE is a literal in index.html next to the baked-in data, and the repo is four files with no scheduled job in it, so "auto-refreshed daily" is running somewhere I cannot see. If the job ever fails quietly the page still reads fresh.
What is comp built from? If it is a hand-kept org map, adding a model-family column beside it is the cheaper half of this, and it is the one that decides whether the bipolar claim is about training or about packaging.