Extreme download skew.downloads_30d runs from 808,600 to 239.2M, with a mean of 4.26M against a median of 1.69M and a standard deviation of 13.51M — more than triple the mean. The same pattern appears in downloads_per_day (median 3,044, mean 11,410, max 618,100) and in adoption_zscore, which is floored at −0.26 but reaches 17.38. A handful of models dominate the distribution; averages will mislead unless you work in medians or logs.
Likes follow the same shape but less severely. Median 236.5 versus mean 713.2, max 13,560. downloads_per_like is the most volatile field in the set: median 8,775, mean 58,990, max 2.53M — a 288× gap between median and maximum, useful for spotting heavily-used but rarely-starred infrastructure models.
Maintenance is a real problem, not an edge case. 281 of 500 models (56%) are flagged is_stale. The maintenance classes are nearly balanced — dormant 141, abandoned 140, maintained 133, active 86 — meaning 281 models fall in the two lowest tiers. days_since_update reaches 1,911 days (over five years) against a median of 446.
Concentration by author and task. Qwen alone accounts for 79 rows (15.8%), ahead of google (25), facebook (17), nvidia (17) and microsoft (16). transformers covers 331 of 471 library entries. Text-generation (115) and image-text-to-text (79) lead 35 task categories.
Timestamp artifact worth knowing. 95 rows share two near-identical created_at values from 2022-03-02 — a Hub migration timestamp, not a genuine launch date. This inflates days_since_launch accuracy for roughly a fifth of the sample.




| model_id | author | task | library | downloads_30d | likes | created_at |
|---|---|---|---|---|---|---|
| Alibaba-NLP/gte-Qwen2-1.5B-… | Alibaba-NLP | sentence-similarity | sentence-transformers | 1059418 | 236 | 2024-06-29T08:02:40.000Z |
| Alibaba-NLP/gte-large-en-v1… | Alibaba-NLP | sentence-similarity | transformers | 1250363 | 238 | 2024-04-20T02:54:30.000Z |
| Alibaba-NLP/gte-multilingua… | Alibaba-NLP | sentence-similarity | sentence-transformers | 1151185 | 371 | 2024-07-20T08:37:28.000Z |
| Alibaba-NLP/gte-multilingua… | Alibaba-NLP | text-ranking | sentence-transformers | 809850 | 185 | 2024-07-20T08:38:18.000Z |
| Alibaba-NLP/gte-reranker-mo… | Alibaba-NLP | text-ranking | transformers | 2223255 | 97 | 2025-01-20T05:46:18.000Z |
| BAAI/bge-base-en-v1.5 | BAAI | feature-extraction | sentence-transformers | 10026708 | 463 | 2023-09-11T15:04:22.000Z |
| BAAI/bge-base-zh-v1.5 | BAAI | feature-extraction | sentence-transformers | 1505932 | 107 | 2023-09-12T05:21:53.000Z |
| BAAI/bge-large-en-v1.5 | BAAI | feature-extraction | sentence-transformers | 11732951 | 709 | 2023-09-12T05:20:08.000Z |
First 8 of 500 rows and 10 further columns. The download carries every row and column.
model_id — org/name identifier on the Hubauthortask — pipeline tag (text-generation, feature-extraction, …)library — primary framework (transformers, sentence-transformers, …)downloads_30d(downloads/30d)likes(count)created_atlast_modifieddays_since_update(days)days_since_launch(days)downloads_per_like — usage per unit of visible enthusiasm — high = quiet workhorsedownloads_per_day(downloads/day) — 30d downloads amortised over model lifetimeadoption_zscore — standardised 30-day download volume across the cohortfreshness_index — 0-1, 1 = updated most recently in the cohortmomentum_score — 0-100 composite of adoption, enthusiasm and maintenance recencymaintenance_class — active | maintained | dormant | abandonedis_stale — no repository update in over a year
Every issue ships with a written brief: what the data covers, the patterns worth acting on, and the statistical work behind each derived column — with the limitations stated plainly rather than buried.
The page shown here is the first of the full report included in your download. Tap it to read at full size.
The dataset profiles 500 unique models from the Hugging Face Hub leaderboard, combining raw hub telemetry (downloads, likes, timestamps) with derived engagement, recency and maintenance indicators. The statistical work consists of one deduplication/ordering pass, two temporal age derivations, four column-level derivations (two ratios, one standardisation, one min–max normalisation), one weighted composite score, one binned classification, and one boolean threshold flag.
model_id — enforces one row per model. The profile confirms the constraint held: model_id has 500/500 non-null values and 500 distinct values, so the effective unit of analysis is the individual model repository.model_id — deterministic ordering only; carries no statistical content, but makes downstream row-wise outputs reproducible.Note that deduplication was keyed on model_id, not on author. Authors are therefore repeated by design: 162 distinct authors across 500 rows, with a strongly concentrated head (Qwen 79 rows, google 25, facebook 17, nvidia 17, microsoft 16). Any author-level statistic computed from this table is an unweighted count of repositories, not of organisations.
Two age_days transforms convert absolute timestamps into elapsed-day integers:
| Derived column | Source timestamp | Min | Median | Mean | Max | Stdev |
|---|---|---|---|---|---|---|
days_since_update | last_modified | 0 | 446 | 518 | 1911 | 426.2 |
days_since_launch | created_at | 11 | 711 | 800.2 | 1622 | 550.2 |
Both distributions are right-skewed (mean > median), indicating a long tail of very old or long-unmaintained repositories. days_since_update reaches 1911 days, exceeding the maximum days_since_launch of 1622 — an internal inconsistency worth flagging, since a model cannot plausibly have gone un-updated for longer than it has existed. This suggests the two anchors are drawn from different clocks or that some last_modified values predate the recorded created_at. The last_modified field also contains at least one future-dated value (2026-07-21), and created_at contains a large tie block at 2022-03-02T23:29:05.000Z (74 rows) plus a second at 2022-03-02T23:29:04.000Z (21 rows) — almost certainly a bulk backfill timestamp rather than genuine creation dates. Roughly 19% of launch ages are therefore anchored to a single synthetic instant.
downloads_per_like = ratio(downloads_30d, likes) — an efficiency/attention ratio expressing how many downloads accompany each like.
likes has min = 0, so the ratio is undefined for those models and was left null rather than imputed.downloads_per_day = ratio(downloads_30d, days_since_launch) — a crude lifetime download rate.
downloads/day) overstates its interpretability.adoption_zscorezscore(downloads_30d) centres and scales the download volume:
downloads_30d is extremely right-skewed (min 8.086e5, median 1.69e6, mean 4.261e6, max 2.392e8, stdev 1.351e7), the floor of the distribution sits only a quarter of a standard deviation below the mean while the top model sits over 17 standard deviations above it.freshness_indexminmax_normalize(days_since_update, invert=true) rescales update recency to [0, 1] with 1 = most recently updated:
days_since_update is right-skewed, linear min–max mapping pushes the bulk of models into the upper part of the range (median 0.77), which visually overstates how "fresh" the typical model is relative to the mass of the distribution.momentum_scoreA weighted score on a 0–100 scale combining three inputs:
| Input | Weight |
|---|---|
downloads_30d | 0.5 |
likes | 0.2 |
freshness_index | 0.3 |
Weights sum to 1.0. Observed output: min 0.1833, median 24.63, mean 23.64, max 86.55, stdev 7.936.
Observations on this construction:
downloads_30d spans 8.086e5–2.392e8, likes spans 0–13,560, and freshness_index spans 0–1. Unless the scoring step internally rescales each input, the two raw-count terms would numerically swamp the normalised one. The output's tight distribution (stdev 7.936 on a 0–100 scale, mean ≈ median ≈ 24) is consistent with internal per-input normalisation followed by weighting, but the profile does not document that normalisation, so the score's exact semantics are not recoverable from the recorded steps alone.momentum_score the most symmetric of the derived metrics — notably more so than any of its skewed inputs, which is further evidence of internal rank- or range-based rescaling.freshness_index is itself a min–max normalisation of days_since_update, and days_since_update also drives maintenance_class and is_stale. Three of the derived fields are therefore functions of the same underlying timestamp, and 30% of the momentum score is that single variable.maintenance_classdays_since_update is discretised into four ordered, left-open/right-closed bins with default: unknown:
| Label | Rule (days since update) | Rows | Share |
|---|---|---|---|
| active | ≤ 90 | 86 | 17.2% |
| maintained | 91–365 | 133 | 26.6% |
| dormant | 366–730 | 141 | 28.2% |
| abandoned | > 730 | 140 | 28.0% |
All 500 rows were assigned to one of the four substantive labels; the unknown default was never used, consistent with days_since_update being 500/500 non-null. The distribution is fairly even across the three older tiers, with active the smallest class. The cut points (90 / 365 / 730 days) are conventional calendar thresholds imposed externally, not data-driven breakpoints.
is_staleis_stale = days_since_update > 365. Result: 281 True (56.2%), 219 False (43.8%).
This is a strict recomputation of the classification boundary: is_stale must equal maintenance_class ∈ {dormant, abandoned}. Checking the counts — 141 + 140 = 281 — confirms exact agreement, and active + maintained = 86 + 133 = 219 matches the False count. The flag is fully redundant with maintenance_class and carries no independent information.
A terminal validate step closes the pipeline. Its assertions are not enumerated in the profile, so the checks it performed — and whether it would have caught the days_since_update > days_since_launch inconsistency or the future-dated last_modified value — cannot be determined from the recorded metadata.
Coverage and missingness
task is missing for 46/500 rows (9.2%) and library for 29/500 (5.8%). Neither was imputed nor excluded, so any breakdown by task or library covers only 454 and 471 models respectively. No missingness mechanism was investigated; if absence correlates with model type, such breakdowns are biased.downloads_per_like is null for 6 models with zero likes. These are silently dropped from any aggregate over that column, which shifts summaries toward models that have received at least one like.Selection bias
downloads_30d has a floor of 808,600 downloads. This is a leaderboard extract of already-popular models, not a sample of the Hub. Every statistic here describes the high-adoption tail; nothing supports inference about typical Hub models, and the "abandoned" share (28%) reflects abandonment among successful models only.Distributional assumptions
adoption_zscore applies a mean/standard-deviation standardisation to a distribution with a max at 17.4σ and a min at only -0.26σ. Z-scores presuppose roughly symmetric spread; here they do not discriminate among the bulk of models. The same concern applies to reporting means for downloads_30d, downloads_per_like and downloads_per_day, where the mean sits far above the median in every case.freshness_index and the momentum score inherit sample-relative endpoints. Neither is comparable across different snapshots or differently-composed datasets.Metric construction
downloads_per_day mixes a 30-day numerator with a lifetime denominator and is not a valid rate; it is structurally biased against older models.momentum_score weights are asserted, not calibrated — there is no stated criterion the 0.5 / 0.2 / 0.3 split optimises, and no sensitivity analysis. The internal rescaling that makes the three inputs commensurable is undocumented, so the score is not independently reproducible from this specification.freshness_index, maintenance_class, is_stale) and 30% of momentum_score all reduce to days_since_update. This is redundancy rather than triangulation, and it makes the pipeline's conclusions sensitive to the quality of that one field.Data integrity
days_since_update reaches 1911 days while days_since_launch maxes at 1622, an ordering violation that propagates into freshness_index, maintenance_class, is_stale and momentum_score.last_modified value of 2026-07-21 implies either a future-dated repository or a reference-date mismatch; days_since_update has min = 0, so the pipeline's "today" anchor is itself undocumented and the whole recency family is only interpretable relative to an unstated extraction date.2022-03-02T23:29:0Xz creation timestamps, almost certainly a migration artefact. days_since_launch — and therefore downloads_per_day — is unreliable for those models.Scope
momentum_score measures no change over time; there is no second observation period, so no trend, growth or velocity claim is supported.Source: Hugging Face Hub API (https://huggingface.co/api/models)
Licence: Hugging Face Hub public model metadata (per-model licences vary)
Collected and derived with datavibes, a deterministic pipeline: the same config and timestamp always reproduce the same file.