TORN CITY // TRANSPARENCY
Aggregate statistics · updated from live data · no individual player or faction appears on this page
Every stat estimate the tracker shows is built on observations gathered over time. This page says how many there are, how fast they accumulate, and what happened when the service went down for a week. It contains no player names, no faction identifiers, and no individual figures — only counts. That is deliberate, and the reasoning is at the bottom.
590,201
battle-stat observations recorded since 8 June 2026
The tracker records an observation whenever it learns something new about a player's battle stats — from a verified figure, a spy report, or a Fair Fight value inferred from an attack log. Volume grew steadily from a few hundred in the first week to a peak of 77,785 in the week of 24 August.
Observations recorded per week. The final bar is a partial week.
The bar for the week of 31 August drops to 17,114, about a fifth of the week before it. That is not a change in the game or a quiet spell — the service exceeded its hosting quota and the scheduled jobs that gather observations were suspended partway through that week.
The cause turned out to be a background job queue that was never cleaned up. It had grown to nearly two million rows and roughly half the entire database, and a polling loop was re-requesting players the estimate provider could not resolve, every two minutes, indefinitely. Both are fixed. It is included here rather than smoothed away because a growth chart with no interruptions in it is usually a chart that has been edited.
The same data as a running total. Observations are never discarded, so this line only rises — and the flat stretch in early September is the outage, visible as a stall rather than a dip.
Cumulative observations. Never pruned — see “why nothing is deleted” below.
The full series, for anyone who would rather read it than look at it. Players touched counts distinct players observed in that week; it tracks closely with the observation count, which tells you the data is broad rather than deep — most weeks are spent learning a little about many players rather than a lot about a few.
| Week beginning | Observations | Players touched | Cumulative |
|---|---|---|---|
| 8 Jun 2026 | 186 | 171 | 186 |
| 15 Jun 2026 | 10,751 | 10,232 | 10,937 |
| 22 Jun 2026 | 22,567 | 22,466 | 33,504 |
| 29 Jun 2026 | 24,831 | 24,152 | 58,335 |
| 6 Jul 2026 | 40,992 | 39,148 | 99,327 |
| 13 Jul 2026 | 47,574 | 47,167 | 146,901 |
| 20 Jul 2026 | 55,464 | 54,617 | 202,365 |
| 27 Jul 2026 | 59,861 | 59,655 | 262,226 |
| 3 Aug 2026 | 58,068 | 57,264 | 320,294 |
| 10 Aug 2026 | 69,622 | 69,116 | 389,916 |
| 17 Aug 2026 | 72,941 | 72,427 | 462,857 |
| 24 Aug 2026 | 77,785 | 74,920 | 540,642 |
| 31 Aug 2026 | 17,114 | 14,510 | 557,756 |
| 7 Sep 2026 | 32,445 | 32,410 | 590,201 |
Across 87,969 players we hold an estimate for, battle stats do not cluster around a typical value — they span six orders of magnitude. Half of those accounts sit below roughly 722,000 total stats, while the top one percent are above 14.5 billion. That top percentile is about 20,000 times the median.
The axis below is logarithmic, and it has to be: on a linear scale every bar except the last two would be invisible. Each step to the right is a tenfold increase.
Battle stats by percentile, 87,969 observed players. Logarithmic axis.
| Percentile | Total battle stats | Multiple of the median |
|---|---|---|
| 10th | 3,559 | 0.005× |
| 25th | 37,742 | 0.05× |
| 50th (median) | 721,645 | 1× |
| 75th | 275,352,181 | 382× |
| 90th | 3,183,612,072 | 4,412× |
| 99th | 14,477,286,994 | 20,062× |
The right-hand column is the part worth sitting with. Moving from the median to the 75th percentile is not a step up, it is a factor of nearly four hundred; from the median to the 99th, twenty thousand. There is no “slightly stronger than average” in Torn at scale.
The practical consequence for war is that “how strong is this faction” is a question with almost no useful average answer. A roster is not a cluster around a mean, it is a handful of people carrying enormous stats and a long tail of much smaller accounts, and which of those you get matched against decides whether a hit pays. That is the entire reason the tracker estimates individuals rather than reporting a faction average.
What this sample is. These are the players the tracker has observed, not a random sample of active Torn players. Accounts enter the dataset mostly by being in a faction we encounter, so it includes a great many dormant and newly created accounts alongside active fighters — which is why the lower percentiles are as low as they are. Read it as the shape of the accounts we have seen, not as the shape of the people you will actually fight.
Not all observations are equal, and the mix is lopsided. Almost everything the tracker knows about the wider player base rests on a third-party Fair Fight estimate. Our highest-confidence tier is a far smaller pool, and it does different work — it is what everything else gets measured against.
| Source | What it is | Observations | Players | Share of players |
|---|---|---|---|---|
| FF EST | Third-party Fair Fight estimate | 586,609 | 87,472 | 98.1% |
| FF OWN | Inverted from our own attack logs | 3,499 | 1,502 | 1.7% |
| WAR EST | Two-hop, derived from battle data | 3,679 | 175 | 0.2% |
| VERIFIED | Our highest-confidence figure | 1,251 | 20 | <0.1% |
Two things are worth reading out of that table. The first is the pyramid: high-confidence figures for a small pool, inferred figures for tens of thousands. Anyone claiming precise battle stats for the whole game is guessing, and this is what the honest version of that claim looks like.
The second is the ratio between the observation and player columns for that top tier — far more readings than players, because those figures are re-sampled repeatedly over time rather than captured once. That is what makes them useful as a benchmark: they show not just where someone stands, but how fast they are moving.
That top tier is the yardstick every other source is measured against. When a player we have been estimating turns up in it, the pair becomes a test of how wrong the estimate was — which is how the correction described in the stat estimates guide is fitted and, more importantly, how it is checked.
An estimate nobody checks is just a guess in a confident font. Most tools that show you an opponent’s battle stats will never tell you how often they are wrong, because they never find out. Here is the method we use to find out, and the rule that decides whether a correction gets applied at all.
1. Collect matched pairs. When a player we have been estimating enters our highest-confidence tier, we learn what we should have been saying all along. That gives a pair: the estimate we were showing, and the figure we now trust. A pair only counts if the two readings are within about three weeks of each other — compare a figure from March against an estimate from September and you are measuring how much someone trained, not how wrong the estimate was.
2. Fit the correction in log space. Battle stats span six orders of magnitude, as the distribution above shows. A straight-line fit on raw numbers would be dominated entirely by the largest players and would say nothing useful about anyone else. Fitting the logarithms instead makes the correction proportional, so it means the same thing at three million stats as it does at three billion.
3. Refuse implausible corrections. The slope of that fit is clamped, and so is the multiplier it can ultimately apply. A model claiming estimates are wrong by a wildly escalating factor is far more likely to be a bad fit on thin data than a real pattern, and a correction is only worth having if it cannot quietly invent a number several times larger than what it started with.
4. Test it on data it has never seen. This is the part that matters. Any correction will look good on the pairs used to build it — that is what fitting means, and it proves nothing. So each pair is held back in turn, the correction is refitted from all the others, and it has to predict the one it was not shown. The error that comes out of that is the only error worth quoting.
5. Only switch it on if it beats doing nothing. That held-out error is compared against the error from applying no correction whatsoever. The correction has to win by a clear margin, on a minimum number of pairs, before it is applied to anything you see. Each source is judged separately — a correction that helps one kind of estimate is not assumed to help another.
The whole thing is refitted continuously as new verified figures arrive, so the correction tracks reality rather than being set once and forgotten.
And when a correction fails that test, we show the raw estimate instead. That is the honest outcome, not a failure of the system — it is the system working. A correction fitted on too little ground truth would make numbers look more authoritative while making them no more accurate, which is the worst of both. The bar is deliberately set where a correction has to earn its place, and the thing that raises the quality of every estimate on the site is simply having more of that top tier to test against — which grows as more members join the tracker.
Observations are kept indefinitely rather than expired, and the reason is rematches. When a faction is drawn against an enemy it has fought before, the estimates recorded during that earlier war are still there. You open the tracker on day one of the rematch and the board is already populated — stale, clearly labelled as stale, and refreshing in the background, but populated. A stale starting point beats an empty one, and old observations cost almost nothing to keep.
It also makes the estimates better over time. Each figure carries how old it is, and older Fair Fight observations are weighted down rather than thrown away, so a long history of weak signals still adds up to something more reliable than a single recent guess. The stat estimates guide explains the weighting.
There are no per-player or per-faction figures here, and there will not be. The tracker restricts every read to your own faction and any faction you currently have a ranked or pending war with, enforced on the server. Publishing individual numbers on a public page would make that restriction meaningless — anyone could look up any faction without even signing in, and every faction's weak points would be indexed and searchable.
There is a subtler line too. A statistic can name nobody and still expose someone: an “average player activity by hour” chart drawn mostly from one faction is really that faction's schedule, published and dated. So stats derived from narrow samples are held back until the sample is wide enough to describe the game rather than a particular group. Everything on this page is a count of the dataset itself, which carries no such risk.
More on what is collected, how long it is held and how to have it removed is in the privacy policy, and the product tour covers what the tracker does with it.