Confirmed cheat bans by source, from GrimAC and Polar
MCAnalytics counts a cheater only after a confirmed ban. The connector on your backend listens to GrimAC or Polar, and a punishment counts when one of the ban commands you list actually runs, so a violation level or a kick is never a ban. Every ban carries the player's first join address and identity type. Fair Play lists the bans per join address next to the new players each address brought, so you can see which server lists, ads or creators bring players who get banned, and it shows whether premium, cracked or Bedrock players get banned more. Fair Play is part of the Network and Unlimited plans.

How it works
Install on the backend
The Paper connector attaches to GrimAC or Polar at startup, on the servers where the anticheat runs.
List your ban commands
ban, tempban, banip and litebans:ban are listed by default. Add the command of your own punishment plugin if it differs.
Only confirmed bans count
A violation level or a kick is never counted as a ban. A ban is recorded when one of those commands runs, and a retry never counts it twice.
Read it by source and identity
Each ban keeps the player's first join address and identity type. Fair Play lists bans per join address with bans per 100 new players, shows the ban rate per identity type, and the log export adds the source of every player.
What you see on the dashboard
Confirmed bans
Each ban with the player, their identity type, the check, the server, the first flag and when the ban landed. Flags are shown as signals, never as bans.
Ban rate by identity
Confirmed bans per active player for premium, cracked and Bedrock, counted apart.
Bans by source
Confirmed bans and banned players for each join address, next to the new players it brought in the range and bans per 100 of them once it brought 20. A row opens the address on Growth, and the table exports as CSV.
Checks and servers
Which checks and which servers the confirmed bans came from.
Setup notes
GrimAC works as soon as the connector finds it. Polar publishes no event class the connector can rely on, so Polar reports nothing until you name its punishment event class in the connector config.
A ban never creates a player. When a ban reaches MCAnalytics before the proxy has sent that player's first session, the connector waits and sends it again rather than dropping it or inventing a first join.
Questions
Why count confirmed bans only?
A violation level can be a false positive, and a kick can be for anything. A ban that was actually issued is the one signal that holds up when you compare sources.
Which anticheats are supported?
GrimAC and Polar. GrimAC works out of the box. Polar needs one line in the connector config naming its punishment event class.
I use LiteBans or my own punishment plugin. Does it work?
Yes. The connector watches which ban command ran, and you control that list. litebans:ban is in it by default, and you can add your own.
Which plans include Fair Play?
Network and Unlimited. Starter and the free Community plan do not include the anticheat integration.