A number is only useful if you know where it comes from. "Macro 69%" means nothing until you know what was measured, what it was compared with, and why. This guide opens the box: every rating in Repalyzer, the exact formula behind it, and the games its benchmarks were built from.

It is written for players who like to check the maths. If you just want to use the numbers, Your first replay review in 10 minutes and How do you stack up against the pros? are the better place to start.

42 msOne game frame: the precision of every timing in the simulation
4,905Progamer games behind the Skill shape scale
382Low-rank ladder games that set the scale’s floor
2,920Progamer games behind the Initial split benchmark
// 01

Two sources of truth

Every number in Repalyzer comes from one of two places, and each card says which with a small source badge.

One game frame is 42 milliseconds, so timings from the simulation are exact to the frame.

One principle runs through all of it: one definition everywhere. A supply block on the chart, in Game at a glance, in the Opportunity report and inside the Macro rating is the same supply block, by the same rule.

// 02

The building blocks

Four simple measures feed almost everything else. Each has one fixed definition.

APM and effective APM. The main APM figure leaves out the first 100 seconds, when players spam-click to warm up (often 300+ APM when about 10 clicks are needed). BWChart cuts about the first 2 minutes instead, and divides by the time to the player's last action, which is why the two never quite agree. Effective APM uses the same window but counts only actions that can change the game, by the rules of the SCREP replay analyzer: fast repeats of the same command, selections replaced within a few frames, and null actions are left out.

A null action is an order that achieves nothing: an order given with nothing selected, or the same order to the same units at the same place (within 2 tiles, each within 3 seconds of the last) for the third time or more. The first click and one confirming click are fine. Orders the game refused, such as training without enough minerals, are added once the simulation runs.

Supply blocks. A second counts as supply blocked when you are at your supply cap, below 200, for 2 seconds or longer in a row, from 1:30 on. The 1:30 start means the normal wait at 9 supply in every opening is not a block. Time at 200 supply is never a block, because nothing more could be built anyway.

Idle workers. Every second, the simulation counts how many of your workers have nothing to do. Idle workers is idle worker-seconds divided by all worker-seconds. Ten workers idle for 6 seconds and one worker idle for a minute both add 60 worker-seconds.

Hotkey share. HotKey actions (assign, add and recall) as a share of all your actions.

// 03

Macro and Micro on the Actions tab

The two rating cards on the Actions tab are absolute scores from 0 to 100%. They describe this one game and can be compared between any two games, yours or anyone's. Each is a weighted average of a few parts, and the card lists every part so you can see why the number is what it is.

Macro has three parts:

PartWhat it measuresWeight
ProductionProtoss and Terran: the share of time your finished production buildings spent producing. Zerg: the share of hatchery time not sitting at 3 larvae, when larva spawning stops.50%
SupplyThe share of seconds from 1:30 you were not supply blocked25%
SpendingFrom 2:00: income per minute ÷ (income per minute + average money in the bank)25%

A few details make Production fair. Bases count for Protoss and Terran only while you would normally be making workers: until 15:00, or until you first reach 64 workers, whichever comes first. Seconds at 200 supply are left out. Seconds spent supply blocked count as idle, since nothing could be made.

Spending rewards money spent as it arrives. With an income of 2,000 a minute and an average of 500 in the bank, Spending is 2,000 ÷ 2,500 = 80%. Float 2,000 on the same income and it drops to 50%.

Here is Light vs Soma from the live demo. Soma won.

// Macro = production ×2 + supply + spending, ÷ 4
LightTerranMacro 68.8%
SomaZerg · wonMacro 86.2%
Light vs Soma: each part's share of the Macro rating. The faint track is what a perfect score in that part would add. Open this view in the live demo

Light's Macro is (2 × 51.4 + 95.8 + 76.5) ÷ 4 = 68.8%. Light rarely got blocked but left production buildings idle for half the game. Soma was blocked for a quarter of it, yet hardly ever let larvae pile up.

Micro has two parts, averaged evenly:

Micro needs real fighting before it says anything: at least 600 damage dealt and taken in total, and 400 in unit value traded for the second part. Spawned and free units (larvae, Interceptors, Scarabs, Spider Mines) have no value. The card also shows the time spent in big fights, any second with 150 damage or more.

// Who won the fights
Light · TerranSoma · Zerg · won← lost the trade · even (50%) · won the trade →
Damage traded47.1%52.0%
Units traded60.9%39.1%
Micro54.0%45.6%
Who won the fights in Light vs Soma: each bar is a player's edge over an even trade. Right of the line they won it, left of it they lost it. Open this view in the live demo

In the same game Light's Micro is 54% (47.1% damage, 60.9% units) against Soma's 45.6% (52.0% and 39.1%). Light won the trades and still lost the game. That is the point of the warning on the card: Micro is a fight result, and a bigger army wins fights too. Read it next to Macro, never on its own.

// 04

The Macro rating on the Overview: you against yourself

The Macro rating on the Overview answers a different question: was this a good macro game for you? It shows two numbers.

The formula is rating = 100 × (this game − your worst) ÷ (your best − your worst), counting this game too. Say your PvZ games range from 58% to 79% production uptime. A game at 72% rates 100 × 14 ÷ 21 = 67.

// Your worst game is 0, your best is 100
67This game’s rating: production uptime 72%, between your worst PvZ game (58%) and your best (79%).

A few things follow from that.

So the two Macro numbers do different jobs. The Actions tab card is absolute: compare it with anyone. The Overview rating is personal: it tells you whether you beat your own standard. A 70% production uptime can be your best game ever and still sit well below the progamers on the Skill shape.

// 05

The Skill shape: where 0 and 10 come from

The Skill shape turns five values into scores from 0 to 10, so that very different things (a percentage of actions, an APM, a share of worker time) fit on one pentagon.

CornerValueBetter
MicroThe Micro card from the Actions tabHigher
SpeedEffective APM after the 100-second warm-upHigher
HotkeysHotkey share of all actionsHigher
Idle workersIdle worker-seconds ÷ all worker-secondsLower
MacroThe Macro card from the Actions tabHigher

Each corner has two fixed points. 10 is the level of the best 10% of progamer games for your race in your matchup. 0 is the floor: 0% for Micro and Hotkeys, 50% for Macro, 50 effective APM for Speed. For Idle workers the floor is per race: the level that the worst 5% of low-rank ladder games (D, E and F) reach, which is 14.3% for Terran, 12.5% for Protoss and 8.7% for Zerg.

Between the two points the score follows this formula:

score = 10 × ((value − floor) ÷ (top − floor))0.8kept between 0 and 10

The power of 0.8 is a slight lift. A value exactly halfway between floor and top scores 5.7 instead of 5.0. The lift is largest in the lower middle, about +0.8 points around a score of 3 to 4, and fades to nothing at 0 and 10. It keeps an honest ladder game from looking hopeless next to a progamer's.

// Score explorer

These are the tops, the values that score 10. They are the 90th percentile of progamer games (for Idle workers, the 10th).

MatchupMicroMacroHotkeysIdle workersSpeed (effective APM)
PvP62.6%81.3%56.9%1.1%266
PvT60.3%81.5%55.7%1.7%264
PvZ64.8%81.2%56.2%1.8%284
TvP65.5%79.6%55.2%2.8%251
TvT65.5%83.3%59.8%2.3%243
TvZ66.8%80.3%55.3%2.4%264
ZvP58.0%91.2%55.3%0.3%266
ZvT61.8%91.7%57.2%0.4%277
ZvZ61.2%91.2%60.7%0.1%282

Worked example. Light's Macro in Light vs Soma is 68.8%, in TvZ. The floor is 50% and the top 80.3%, so Light covered (68.8 − 50) ÷ (80.3 − 50) = 0.62 of the distance. With the lift, 0.620.8 = 0.68, a score of 6.8. Light's idle workers were 9.6% of worker time, against a Terran floor of 14.3% and a TvZ top of 2.4%: (14.3 − 9.6) ÷ (14.3 − 2.4) = 0.39, which lifts to 4.8. Both match the Game card.

The Game card for Light vs Soma: result, map, both players’ Skill shapes, APM, supply blocked, idle workers and One thing to fix
The Game card for Light vs Soma: Macro 6.8 and Idle workers 4.8, exactly as worked out above. Open this view in the live demo

Two more rules keep the comparison fair. With Adept on, your shape and the Adept's are measured over the same whole minutes, so a 12-minute game is not compared with the late game of a 30-minute one. And the Skill shape is 1-on-1 only: team games are played too differently to share a scale.

// 06

What 5,287 games say about progamers and the rest of us

The scale was built from two sets of games, all 1-on-1, 7 minutes or longer, with the simulation verified for at least 7 minutes:

The ladder games set the Idle workers floor. They also show where the real gaps are. Here are the typical (median) values of each group, across the nine matchups.

CornerProgamersD/E/F ladderTypical score, pros / ladder
Speed (effective APM)210–237102–1378.1–8.7 / 3.0–5.1
Hotkeys (share of actions)44–51%17–30%8.3–9.0 / 3.9–6.0
Macro, Protoss and Terran73–78%64–71%7.8–8.6 / 5.1–7.2
Macro, Zerg87–88%80–84%9.2–9.4 / 7.7–8.6
Idle workers, Terran4.9–5.3%6.8–7.3%about 8.2 / 6.5–7.1
Idle workers, Protoss2.5–4.1%5.7–6.8%8.2–9.0 / 6.0–6.9
Idle workers, Zerg0.3–1.2%0.7–2.4%9.2–9.8 / 8.0–9.5
Micro34–65%, by matchupabout the same as pros, matchup by matchup7–9 / 7–9
// Typical progamer vs typical D/E/F game, as Skill shape scores
D/E/F ladder medianProgamer median

What stands out:

The D/E/F sample is small in some matchups (7 ZvZ games, 15 PvP), so treat those ladder figures as rough.

// 07

How One thing to fix chooses

One thing to fix is the Skill shape put to work. It looks at four corners: Macro, Idle workers, Hotkeys and Speed. Micro is left out for the reason above: it shows how the fights went, not something you can practise on its own.

  1. Find your usual games. Repalyzer looks for at least 5 of your simulated 1-on-1 games in the same matchup that last at least as long as this one. If too few do, it shortens the window, down to 4 minutes, until 5 games cover it. Every game is then measured over exactly those minutes.
  2. Score this game and your usual average on the Skill shape scale.
  3. Pick the biggest drop. The corner where this game fell furthest below your usual, by 0.3 points or more, is the one to fix.
  4. No drop, or too few games? Then it picks the corner furthest from the progamers instead, and the card says "Biggest gap to progamers".

The card then says what happened, not what it might have cost. For Idle workers it names the worst minute. For Macro it names the weakest of the three parts: the supply block with its worst minute, production buildings busy only part of the time, or the average money left unspent. Each figure is shown next to your usual value and the best 10% of progamer games. Nothing is estimated or added up, as in the Opportunity report.

That is what happened in Light vs Soma. Too few of Light's games were in the library, so the card compared with progamers. Idle workers scored lowest (4.8), so the card read "Idle workers 9.6% of worker time, most idle at 8:00–9:00. Progamers' top 10%: 2.4%".

One thing to fix card: biggest gap to progamers, idle workers 9.6% of worker time, most idle at 8:00–9:00, progamers’ top 10% at 2.4%, with a Show 8:00 button
One thing to fix for Light: too few of Light's games in the library, so the card compares with the best 10% of progamer games. Open this view in the live demo
// 08

The Initial split: the first minute, frame by frame

The Initial split card judges how well your four starting workers mined. It is the one card measured to the frame (42 ms), because the simulation records the first minute event by event rather than once per second. It is scored 0 to 100 from two halves.

First 32 minerals (half the score). Four workers each bringing back their first 8 minerals makes 32. The card times how long that takes from the start of the game: 100% at 8.00 seconds or sooner, 0% at 12.00 seconds, and a straight line between. At 8.69 seconds you get 83%; at 11 seconds, 25%. This half shows how cleanly you sent the workers out.

Minerals by 1:05 (the other half). The minerals mined in the first 65 seconds, the starting 50 not counted. This covers the split and the first workers you built, and it is compared with the best progamers at the same spawn position on the same map. Every worker trip (8 minerals) below them costs 10%. Match them or beat them and this half is 100%.

"The best progamers" is the top 10% of 2,920 progamer 1v1 games at that spot. If fewer than 5 games were played there, Repalyzer steps back until it finds enough:

  1. Progamers at this map and this clock position, for example "Octagon, 11 o'clock".
  2. Progamers on this map.
  3. Progamers at this clock position on maps with the same number of start locations.
  4. Progamers on standard maps.

Small groups are also blended with the group above them, with the weight of 10 players, so one lucky game at a rarely played spawn cannot set the bar. The card names the benchmark it used.

Races mine differently in the first minute. On standard maps the best Protoss and Zerg players reach 424 minerals by 1:05, the best Terrans 400. So the benchmark is lowered by 24 minerals (three trips) for Terran.

Here are both halves for the demo games.

Player, spawnFirst 32ScoreBy 1:05Best prosScoreInitial split
Snow (P), Octagon 7 o'clock8.23 s94%40842678%86
Speed (T), Octagon 11 o'clock8.82 s80%38440870%75
Light (T), Odyssey:RE 1 o'clock7.27 s100%60865640%70
Soma (Z), Odyssey:RE 7 o'clock6.93 s100%696680100%100

Snow was 18 minerals short, 2.25 trips, so lost 22.5% on the second half. Light had the fastest first trips of the four and still scored only 70: by 1:05 Light was 6 trips behind the best progamers at that spawn. Odyssey:RE shows why the benchmark is per map. Its mineral lines are so close that progamers mine a median of 616 there by 1:05, against about 408 on standard maps.

// The race to 32 minerals
100%→ 0% at 12 s
SomaZerg · Odyssey:RE6.93 s · 100%
LightTerran · Odyssey:RE7.27 s · 100%
SnowProtoss · Octagon8.23 s · 94%
SpeedTerran · Octagon8.82 s · 80%
Progamersstandard mapsfastest 10%median 9.0 s
6 s7 s8 s9 s10 s11 s12 s
The race to 32 minerals in the demo games, against the progamer field. Open this view in the live demo

The card also shows two times for reference: All mining, when the last starting worker was sent to minerals (Light 0.71 s, Soma 0.55 s), and First worker, when your first new worker started (Light 0.46 s, Soma 0.92 s).

A few facts from the progamer data:

When the simulated part of a game ends before 1:05, only the first half is scored.

// 09

Odds and ends for the curious

// 10

Practice task

Open one of your own recent games and check Repalyzer's maths by hand. Take the three Macro parts from the Actions tab, weight them 2, 1 and 1, and confirm the Macro figure. Then use the tops table above to work out your Macro corner on the Skill shape, and compare it with the Game card. Once the numbers make sense, pick the corner where you are furthest from your matchup's top and make it your focus for the next ten games.

// Repalyzer
Free for Windows, works offline, and your replays never leave your PC.