Data fetched from the players' team interface, which is accessible via the game's VPN.
You should be basing game decision exclusively on the game data json fetched through your team interface.
Yes. In fact, public data may be further delayed (it's a low-priority transfer).
Yes! In fact, download the latest.json.
While that does include all game data, we're also providing some extra convenience files: current_score_info.json, score_data.json, service_info.json.
The json is generated right after the new tick "kicks in".
In other words, game_state_6.json will say the current tick is 7. There should be no tick 7 events yet. Apologies if it's misleading. You can verify using the timestamps and time-remaining estimates.
We don't think you should scrape, and this year we added more json data so that you really shouldn't need to.
The latest.json has all the data useful to compute the score, our intermediate computation results are also available for convenience, and the only missing thing is the addition/normalization (reference).
With Ma = max( max_attack_score_among_all_teams, 100 ) and so on.
You can get the latest maxima and per-team a,d,k (tot_attack, tot_defense, tot_koh) via current_score_info.json or re-compute all from the latest json, if you wish.
If still confused, look at last year's final scoreboard
If you compute the score from latest.json and it doesn't match our result, we may have a problem and you're welcome to report it.
Yes. In fact, you'll also get the entire database from which it's generated.