We now keep the game's own “last seen”
Clash Royale reports when each clan member was last active, but only inside a clan's member list - a player's own profile endpoint does not carry it. Every roster poll delivered it and we threw it away, which meant it was unrecoverable for any moment we did not store. It is kept now, and shows up on a player's profile and on every roster row as last_seen_in_game. It answers a question nothing else here could: last_recorded_battle only moves when somebody plays a battle we captured, so a member who opens the game daily without battling looked identical to one who has gone. It is also the rule the game uses to decide who is in a river race - members last seen before the race began are left out of it entirely - so a quiet member missing from the war roster can now be told apart from a recording gap. It cannot be backfilled: it starts filling from the next roster poll.