Methodology
This page explains exactly where WorkshopVitals data comes from and how every derived number is produced. Historical integrity is the product.
Data sources
Current metadata and statistics come exclusively from official Steam Web API endpoints (IPublishedFileService QueryFiles / GetDetails and ISteamUser for public creator profiles). No HTML scraping is used. See Data Sources for the split between Steam-sourced values, our own observations, and derived analytics.
Observations & snapshots
For every tracked item, a background job periodically requests its current details and stores a timestamped snapshot containing exactly the metrics Steam reported at that moment. If a metric is absent from the API response it is stored as missing — never as zero. A missing value and a real zero are treated as different things everywhere on the site.
Refresh tiers
- Tier A — high-interest items (top ranked, trending, recently updated) refresh roughly every 4 hours.
- Tier B — normal indexed items refresh about once a day.
- Tier C — low-activity items refresh about weekly.
Items move between tiers automatically based on rank, momentum and update activity. Charts use one point per day (the last observation of each day); intraday observations are retained internally when available.
Growth calculations
Growth over a window (24H, 7D, 30D, 90D) is value(now) − value(now − window), using the closest observation at or before each cutoff. A growth figure is only shown if genuine observations exist at both ends of the window. This is why an item tracked for 11 days will not display a 30-day figure yet — we do not interpolate or estimate history.
Percentage growth is guarded against small denominators; it is only computed when the base value is positive.
Velocity & acceleration
Velocity is average subscriber gain per day over a window. Acceleration compares 7-day velocity with 30-day velocity to surface items that are speeding up or slowing down.
Current / Lifetime Subscription Ratio
When both fields are available we show current subscriptions ÷ lifetime subscriptions. It is a descriptive ratio only — it is not retention, and lifetime counters can include behavior that does not correspond to unique lifetime subscribers. We deliberately avoid causal interpretations.
Rankings
Ranks compare subscription counts among tracked and indexed items of the same game. They are recomputed by a scheduled job and labeled accordingly (“among tracked RimWorld Workshop items”) — never presented as global Steam-wide rankings. Rank movement compares the two most recent computations.
Momentum
WorkshopVitals Momentum is our own heuristic that blends absolute subscriber gains (log-scaled), percentage growth capped at 100% and gated by a minimum volume threshold so tiny items cannot dominate, favorite growth, positive rank movement and recent update activity. It requires at least two genuine observations. It is not a Steam metric, and its exact weighting may be tuned over time as distributions are inspected.
“Tracked since”
Every chart starts at the date of our first genuine observation for that item, shown on the page. We never backfill fake history, synthesize old subscriber counts, or manufacture rank history. A new item honestly says “tracking started today.”
Removed items
When Steam stops returning details for an item across two consecutive checks it is marked unavailable. Its stored history is preserved and clearly labeled rather than deleted or silently kept live.
Anomaly handling
Suspicious changes (for example a large subscriber count suddenly dropping toward zero) are flagged, excluded from charts and growth math while preserved in raw form. We do not fabricate corrected numbers.
Data latency
Pages show when stats were last refreshed (“Stats updated X minutes ago”) and when ranking boards were recomputed. We do not present cached daily data as real-time.