learn

Is Cache CT-sided or T-sided in CS2? 827 pro maps

Oct 17, 20268 min read

Bottom line: Cache is mildly CT-sided. Across 827 professional CS2 maps and 17,979 rounds since 25 June 2026, the Counter-Terrorists won 52.7% of rounds (95% margin ±1.0). That is fourth of the seven active-duty maps: well below Nuke (56.0%), level with Ancient (53.0%) and above Dust2 (50.6%) and Anubis (49.4%). Teams ban it two times in three, more than any other map except Anubis. The round data behind every figure is in the CS2 data API.

What counts as CT-sided

A map is CT-sided when the Counter-Terrorist side wins more than half of its rounds. Every round has exactly one winner, so the rate is CT rounds won divided by rounds played, and 50% is an even map.

Cache is the newest map in the pool. Valve announced on 22 June 2026 that it would replace Overpass in the Active Duty pool when Premier Season 4 ended on 6 July (report). It is the first time Cache has been in the pool since 2019, and the map is a remade version released in April, so figures for the old Cache say little about this one. The first Cache map in our data is from 25 June, ahead of the official switch, so the window here runs from 25 June to 17 October 2026.

How the figures were built:

  • Completed matches, played maps only (walkovers and technical results are not maps played), with round-by-round data.
  • Round data exists for 827 of the 1,031 played Cache maps (80%). Tiers are the event tiers in our data, S for the top events down to C: all 53 S-tier maps are covered, 69 of 70 in A, 363 of 414 in B, 342 of 466 in C, and none of 28 from unranked events. 826 of the 827 have every round on record; one is short.
  • Rounds inside one map are not independent, since a team on a roll wins several in a row, so every margin below treats a whole map as one observation.

The answer: slightly CT-sided

CTs won 9,479 of 17,979 rounds, 52.7%, with a 95% range of 51.7% to 53.7%. An even Cache is well outside that range. On a typical 22-round map the lean is worth about 0.6 of a round to the CT side.

The pistol rounds, the two per map where both teams have the same minimal buy, are close to level: CTs won 857 of 1,650 (51.9%, margin ±2.4). That fits an even split as well as it fits the map's overall lean.

How it compares with the other six maps

MapCT winMargin (95%)RoundsMaps
Nuke56.0%±0.920,899958
Mirage54.1%±0.827,3041,272
Ancient53.0%±0.826,3171,227
Cache52.7%±1.017,979827
Inferno51.2%±0.919,095900
Dust250.6%±0.828,8221,357
Anubis49.4%±1.115,351706

Cache sits in the middle. It cannot be told apart from Ancient (0.3 points apart), it is clearly less CT-sided than Nuke (3.3 points) and clearly more than Dust2 (2.2) and Anubis (3.4). Mirage (1.4 points above) and Inferno (1.6 below) are close calls, just outside the margin of error on each gap (about 1.3 points), so read the middle of the table as a band rather than a strict order.

No map in the pool is clearly T-sided. Anubis is lowest at 49.4%, and its range of 48.3% to 50.4% includes an even split. Taken together the seven maps are 52.5% CT (155,767 rounds on 7,247 maps).

That is a change for Anubis. Across the whole CS2 era in our data it was T-sided, at 45.7% CT over 4,016 maps with round data. It was 47.3% in the first half of 2026 and 49.4% since July. Older all-time tables, including our map win rates page, show it as the T-sided outlier, which was true for most of that era and is not true now. A map's side balance is not fixed.

Is Cache's lean fading?

Before 1 September Cache ran at 53.7% CT (379 maps, margin ±1.5). Since then it has run at 51.9% (448 maps, ±1.4). The drop is 1.8 points with a margin of about ±2.0 on the difference, so it falls just short of the usual bar (p = 0.07). The other six maps together did not move: 52.5%, then 52.6%.

MonthMapsCT winMargin
July13653.9%±2.1
August23853.5%±2.0
September31152.1%±1.6
October (to the 17th)13751.3%±2.4

A hint, not a finding. Teams may be learning how to play the T side of a remade map, or the mix of events may have changed; we have not separated the two. Single weeks swing by two to three points on about a thousand rounds, so do not read any one of them. A few more weeks of maps will tell us more.

Does the tier matter?

Not visibly. On Cache, S and A tier maps run at 51.4% CT (122 maps, ±2.5) and B and C tier at 52.9% (705 maps, ±1.1). The 1.5-point gap sits inside the margin of the smaller group, and across all seven maps the two groups are level at 52.6% and 52.5%. With 53 S-tier Cache maps, the sample cannot be cut finer than that.

Teams ban Cache anyway

Since 7 July, the day after the swap, 2,554 completed matches have a veto that lists Cache. It was banned 65.9% of the time (1,682), picked 24.3% (621) and left as the decider 9.8% (251). Among the seven maps only Anubis is banned more (71.6%), and Dust2 is banned least (46.6%). Each share has a margin of about 1.8 points.

MapBannedPickedDecider
Anubis71.6% (1,829)18.3% (469)10.1% (258)
Cache65.9% (1,682)24.3% (621)9.8% (251)
Inferno63.7% (1,628)23.7% (606)12.5% (320)
Nuke59.6% (1,523)25.5% (652)14.9% (381)
Ancient51.3% (1,310)31.5% (805)17.3% (441)
Mirage48.8% (1,248)31.6% (809)19.6% (500)
Dust246.6% (1,192)37.6% (962)15.8% (403)

Every veto lists all seven maps, so these shares are comparable across maps, which raw totals spanning years are not (the veto study explains why those mislead). They say nothing about why teams choose as they do. Cache's side balance is mid-table, so side balance alone does not explain the bans. For how a veto works, see the map veto entry.

Compute it yourself

Round-by-round team stats are in every match record. With the Python client (pip install esportsodds), the bulk route returns 25 matches a page with their maps and rounds:

from esportsodds import Client

client = Client()  # reads ESPORTSODDS_API_KEY from the environment

ct_rounds = ct_won = 0
for match in client.matches.iter_bulk(
    include="maps,rounds", has="rounds", status="completed", date_from="2026-06-25", limit=25
):
    cache_maps = {
        m["map_number"] for m in match["maps"] if m["map_name"] == "de_cache" and m["status"] == "played"
    }
    for r in match["rounds"]:
        if r["map_number"] in cache_maps and r["team_side"] == "ct":  # one ct row per round
            ct_rounds += 1
            ct_won += r["won"]

print(f"CT won {ct_won} of {ct_rounds} Cache rounds ({ct_won / ct_rounds:.1%})")

Every round has one row per team, so counting only the ct rows counts each round once. About 3,200 matches since 25 June have round data, so the loop makes roughly 130 requests of about 1.5 MB each; new matches keep arriving, so a rerun will land a little past the figures here. Move date_from closer to today to try it on a smaller window first, and swap de_cache for any other map name. For the margins above, keep one pair of numbers per map (CT rounds won, rounds played) and use a standard error that treats each map as one unit.

Questions

Is Cache CT-sided or T-sided in CS2?

Mildly CT-sided. Across 827 professional maps since 25 June 2026, the Counter-Terrorists won 52.7% of 17,979 rounds (95% margin ±1.0), fourth of the seven active-duty maps.

Which CS2 map is the most CT-sided?

Nuke, at 56.0% CT over 958 maps, followed by Mirage at 54.1%.

Which CS2 map is the most T-sided?

None clearly is. Anubis is lowest at 49.4% CT, and its range of 48.3% to 50.4% includes an even split. Across the whole CS2 era in our data it was T-sided, at 45.7% CT.

Where do these numbers come from?

From the round-by-round and veto data in the EsportsOdds CS2 data API, as of 17 October 2026. They describe past maps and say nothing about the next one.

Start free with a sandbox key: a fixed sample of past matches, no card.

Cite this

EsportsOdds, "Is Cache CT-sided or T-sided in CS2? 827 pro maps", 17 October 2026. https://esportsodds.gg/learn/cs2-cache-side