Every aggregate ships the control next to the number
An agent reading this service reached six wrong conclusions from correct data in one session, and each time the payload had withheld the fact that made its number interpretable: it moved a war-only deck to Trophy Road because its 79% beat a ladder deck's 42% (war matchmaking had handed it opponents 1.6 levels down), called a falling monthly pilot score a decline across an arena change, built a coaching note on absolute leaked elixir, read net trophies as symmetric for a player standing on a trophy floor where losses cost nothing, and anchored a weekly trend on a bucket the window had clipped. battles_decks and battles_cards now carry each row's battles by mode group and its mean level gap against the opposing side, and say in a note when the rows are not comparable. battles_levels monthly points carry the arena, the mean starting trophies and the gap they were scored in, warn when the population moved between two points, and take arena_id to hold it fixed. battles_performance names the trophy floor a player stood on and marks partial weekly buckets with the span they hold. battles_query carries the opponent's leaked elixir and the differential beside yours, with the caveat that neither measures skill. A server failure is now the error code internal rather than bad_request, an oversized page says which limit would have fit, and battles_opponents answers windowed calls again. Contract 3.13.0.