Zone Battle Skill Rating Calculator

Website is currently under construction, core functions work, however some links may lead nowhere!


Date: ...

Drops Per Minute (DPM):

Attack Per Minute (APM):

Attack Per Piece (APP): Enter data + run...

Model :


Skill Rating (SR): Yet to run...

Model Used: Yet to run...


Which model should I use?
  • For overall better accuracy
    • Use All.
  • To get an uncertainty range alongside your calculation (ex: 3120 ± 500)
    • Use Random Forest.
    • This works best when the SR is estimated to be within ... SR and ... SR by the All model.

How accurate is the model?

Section Under Construction!

Skill Group Average Error
Beginner (-4K) Loading...
Intermediate (4K-8K) Loading...
Advanced (8K-12K) Loading...
Expert (12K-16K) Loading...
Master (16K+) Loading...

This table shows the accuracy of the "All" model.

Click here for different models' performance and more metrics!

Why is the error so high?
  • There are more factors in SR than what the game presents in its results screen, therefore the model will never be able to determine SR 100% accurately based only on that.
  • See more in the "Why only two inputs?" section.

What the rating of each bot?

Section Under Construction!

Bot Level Estimated SR Speed (DPM) Attack (APM)
1 Beginner 800 SR 13.1 DPM 1.0 APM
2 Novice XX SR XX DPM XX APM
3 Decent XX SR XX DPM XX APM
4 Average XX SR XX DPM XX APM
5 Good 2640 SR 30.8 DPM 11.2 APM
6 Skilled 2902 SR 35.1 DPM 14.2 APM
7 Veteran 3227 SR 38.8 DPM 15.8 APM
8 Expert 5183 SR 49.8 DPM 28.9 APM
9 Pro 6496 SR 63.0 DPM 33.9 APM
10 Master 9605 SR 91.1 DPM 53.5 APM
10+1 Master Buff 1 10871 SR 91.1 DPM 74.6 APM


How/where is data collected?
  • The match completes one of the following:
    • Ends in Phase 3 (60K+ Score)
    • Lasts more than three minutes
  • A match is not recorded for training data if:
    • One player has Green SR
    • Losing player did not lose rating for the match
    • There's more than a 1000 SR difference between players
  • Where do the matches come from?
    • Personal, Friend, and Twitch / Youtube ranked matches.
    • Data contains no usernames nor sources for anonymity.

Why only two inputs?

Tetris Effect: Connected only directly provides 5 metrics:

  • Drops Per Minute (DPM) / Speed
    • Multiply Pieces Per Second by 60 to get this value (for the TETR.IO players)
  • Attack Per Minute (APM) / Attack
  • Zone Attack Per Minute (ZAPM) / Zone Attack
    • Zone Attack is an interesting metric. Sometimes, lower players don't even attempt a zone, leading to 0 ZAPM. However, they might also only zone in Phase 1, (the longest, easiest phase to zone in), leading to an over-infalted zone.
    • ZAPM also only divides by time spent in zone, therefore, it's completely possible to have a ZAPM in the thousands and an APM of 10.
      • This could throw off the model and return an unresonably high SR.
  • Score
    • Score determines the phase of the game. Lower rating players typically don't reach Phase 3, (60K points), and higher rating players reach it in a minute or two.
    • This metric really isn't relevent because efficiency is already shown by Attack/Speed
  • Time
    • No mater what rating you are, (well, maybe not 1K), if you are against an evenly matched opponent, rounds can last 5+ minutes. The longest one I've had was around 20 minutes.

If we expand these, we get:

  • Attack Efficiency (APP = APM/DPM)
  • Score Efficiency ( Score / (DPM * Time) )
    • Very similar to attack efficiency, therefore, it would be redundant.
    • Zone provides a higher boost in Attack when compared to Score. In a mode where the objective is topping out the other player, Attack is what matters the most.

Therefore, I decided the most important features are:

  • Speed (DPM)
  • Attack (APM)
  • Efficiency (APP = APM/DPM)
    • Initially, I didn't include this one, however, the models were over-rewarding speed + poor efficiency.
  • Date
    • Included for SR creep, however, this game isn't as active as before.
    • It would be good if I wanted to predict pre-crossplay ratings, due to the lack of pre-crossplay ranking data and metrics.
      • Although, it would be cool to see if SR could go below 1000!


| Home | | GitHub Repository | | Discord