de_mirage · 21 roundsA real league match. The player and club names are replaced,
because this page is public.Open it on its own pageToo narrow to run in the page. It opens full
screen.
The house rules
Numbers you can argue from.
— never a fake zero
A stat with no sample renders a dash. "0%" is a claim about evidence;
absence of evidence is shown as absence.
Every rate names its denominator
58.3% means nothing alone; 7 of 12 rounds is a fact you can
check. Sample sizes ride on every card, and thin samples are tagged.
Refusal over guesswork
When a stat can't be computed correctly from the demos, the page says
why it's absent instead of shipping a plausible wrong number. Knife
rounds never count as real rounds.
Connect the league. The rest arrives on its own.
One connection puts the organiser's fixtures, results and table into the
product, and on the feeds that publish them, the match demos too. Nobody
uploads anything.
GG Arena · 1. divisjon10 teams ·
45 fixtures played · 20 Apr to 25 May
#
Team & last five
W–L
Pts
1
InfurityWWWWW
8–1
24
2
Crashed outLWWWW
7–2
21
3
Bitfix GamingWLWWW
6–3
18
4
VanirQuickWWLLW
6–3
18
5
1ADLWWLWL
6–3
18
6
Nidaros E-sportWWWLL
5–4
15
7
HighscoreLLLWW
3–6
9
8
QuadriviumLLLWL
2–7
6
9
SLGLLLLL
2–7
6
10
Center GamingLLLLL
0–9
0
Computed from the organiser's finished results under their own stored
scoring rules: 3 points a win, 1 a draw, 0 a loss. Ties break on points, head to head, map diff, name. Not a table we invented a
ranking for, and not one scraped from a stat site.
Nobody uploads a demo.
A fixture finishing is the only trigger. Everything from there to a round
you can orbit happens without a person in the loop.
The organiser marks a fixture finished
The connector reads the division's own fixture list on a
fifteen-minute timer. Finished means the organiser stamped it
finished, not that we guessed from a score.
The demo downloads itself
Straight from the league, a few hundred megabytes at a time. The size
is checked before a byte moves, the file is verified to really be a
demo, and an identical one already in the bank is recognised and not
stored twice.
It parses to round level
Ten to twenty seconds per demo: rounds, kills, economy, positions at
eight hertz. A parse that finishes but reads implausibly is
quarantined rather than published.
The replay is stored, then it appears
The 3D payload is extracted as the last step of the parse, before the
demo file can ever be cleaned up. The match turns up in the bank
labelled as the feed's, and its page carries Watch in 3D.
Every row in the bank records how it arrived. These ones say
the feed brought them.
The receipt, on the League page: every fixture the connector
found, which of its demos it sent to parse, and what they became.
The schedule, and what it says between seasons.
Nothing ahead is on file
Every fixture in 1. divisjon has been played: all
45 finished, none pending. The connector records the organiser's own
fixture list as it polls, and nothing it has recorded here is still
unplayed. When they publish the next season, those fixtures appear in
this module on the next poll.
Last results
25 MaySLG v Highscore1–2
25 May1ADL v Infurity0–2
25 MayBitfix Gaming v Quadrivium2–0
25 MayVanirQuick v Center Gaming2–0
25 MayNidaros E-sport v Crashed out0–2
This is what the product does with an empty schedule: it says so, and
shows what it does have. An analytics page that filled the gap with a
placeholder fixture would be inventing a match that nobody is playing.
One map, read three ways.
Three modules off a single league match, exactly as the product draws
them for a signed-in team. Every figure on them carries the rounds it
was computed from.
Bitfix Gaming 13–7 VanirQuick ·
de_overpass · from the GG Arena feed
A man up in eleven rounds. Ten of them won.
Every alive-count a round passed through, both ways round, each cell over the rounds it was computed from. The note under the grid says why they do not add up to the map: a round that went 5v4 then 4v4 then 4v3 is counted in all three.
The same 5v4, said as a finding.
A card appears only when the map cleared the threshold printed on it, and the four are ordered by how many rounds each one covers. Nothing is ranked by importance, because importance is a judgement and these are counts.
Three cards answer. One refuses.
Four cards from the match page's Aim family, both clubs on every one of them with its own sample. That demo was parsed before the overkill cap, so damage per kill cannot be computed correctly from it. The card names the parse it needs and what would fix it, where a plausible wrong number would have fitted the layout better.
A match page carries ten of these families, and the Numbers page carries
the season-scale version of the matrix: the same grid over every round a
team has played rather than one map's.
Solo
Your own game, on the record.
My stats with form and progress, clutch records by situation, per-map
breakdowns, your demos parsed and kept. No team setup required.
Team
A shared home for prep.
Match library, the Players split and the Man advantage page; scouting reports on
upcoming opponents; a hub with roster, join flow and a prep checklist
the whole team works from.
What it measures
From the demo file to the gameplan.
Match library & 2D replay
Series grouped into expandable rows, per-map detail, and canvas
round replay drawn from real position traces.
Zones & map control
Presence by named zone 20s in, duel share by area, kill locations —
versioned vocabulary, recomputable as it improves.
The Numbers page
Trades and time to trade, man-advantage conversion and its
matrix, economy cross-tabs, the cost of a death.
Scouting reports
An opponent's season shape, save patterns backed by economic
evidence, players to plan for, head-to-head ledger.
Leagues & odds
Standings computed from the league's own rules, fixtures as they
finish, and bracket odds that publish their seed and assumptions.
Hub & sharing
Team hub with a shared prep checklist, and revocable share links
for any page worth showing around.
Tiers
Three shapes, honest pricing.
Billing is not active yet. CS Anchor is in early access — everything live
today is free to use, and caps and prices will be announced before
anything is charged.
Free
Your demos, parsed honestly.
Demo upload and the full parse pipeline
Match library with per-map detail
Core team and player stats, every rate with its sample
2D round replay from real position traces
Pricing at billing activation
Pro
Depth for the player who reviews.
My stats: form, clutch record, progress over time
Man advantage: trades, economy, cross-tabs, tempo
Zone presence and map-control breakdowns
Aim and skill trends as they prove out
Pricing at billing activation
Teams
The shared home for a roster that preps together.
Team hub: roster, join flow, shared prep checklist
Scouting reports on upcoming opponents
League standings, fixtures and bracket odds
Share links for pages worth showing around
Pricing at billing activation
FAQ
Asked and answered.
What does CS Anchor need from me?
CS2 demo files. Upload them directly, or connect a supported league and let the poller fetch match demos as fixtures finish. Every stat in the product is computed from demo evidence — there is no manual entry and nothing is scraped from third-party stat sites.
Which leagues does it support?
GG Arena and Power Ligaen connectors exist today; fixtures, results and standings flow in once a league is connected. An ESEA connection through the FACEIT API is planned.
What makes the stats different?
Every rate carries the sample it came from, a stat with no sample renders a dash instead of a fake zero, and a number that cannot be computed correctly from the demos is refused with a reason rather than approximated. Knife rounds are excluded from real-round stats everywhere.
Does it work for solo players?
Yes. A solo workspace gets My stats, form and progress tracking, clutch records, per-map breakdowns and personal demos — without any team setup. Team workspaces add the shared hub, scouting and league surfaces on top.
What does it cost?
Billing is not active yet — CS Anchor is in early access and everything currently live is free to use. The tier shapes are published on this page; caps and prices land when billing activates, and will be announced before anything is charged.