Games dashboard prototype. Internal working document.
Sway — Games dashboard prototype. Evolved from the existing social dashboard. Numbered dots mark every deviation; tap Design notes for the rationale. Mock data is realistic but invented. Only data established as obtainable is shown as real.
Maya can see this. A live indicator shows on her device whenever monitoring is active, and she can read the same summary you can.
Maya's connection expired 2 days ago, so this view may be out of date. She'll need to reconnect.
Everything else is inherited from the existing social dashboard on purpose — header, platform selector, centre ring, tab bar, bar rows, purple accent, 12px radii, 24px gutters, the type and spacing scales. A parent moving from the Instagram view to this one should feel no seam.
The social ring answers "what proportion of your feed is untrusted". Gaming has no feed and no proportion — the meaningful quantity is duration. Keeping the ring preserves the screen's signature shape while changing what it counts. The orange arc is late-night play, which is usually more actionable to a parent than the total.
UNTRUSTED / TRUSTED / COMPARE are all views of one classified-content dataset. Gaming produces three genuinely different datasets, so the tabs divide by subject rather than by verdict. COMPARE was dropped: family comparison of screen time invites exactly the competitive framing the Children's Code warns against under "detrimental use of data".
The single biggest structural difference. Social media is scrolled continuously; games are played in bounded sessions with a start and an end. A percentage cannot express "two hours on Saturday afternoon and forty minutes after midnight on Wednesday" — and the timing is usually what a parent wants to act on. This card has no equivalent in the social layout.
"Roblox" and "Twitch" are containers, not activities. A one-hour Roblox session may span six experiences; a Twitch session may span four channels with completely different content ratings. Reusing the existing bar-row component keeps it visually familiar while adding a level of hierarchy the social dashboard never needed.
Not decoration — a data-integrity requirement. Android reports exact foreground milliseconds;
iOS reports only threshold crossings because the reporting extension is sandboxed from the
network. "2h 14m" and "over 2 hours" must never render identically. The
PlaySession model carries source and confidence columns
specifically so the UI can tell them apart.
The differentiated safety signal, and it is deliberately a delta rather than a roster. A new contact whose account is days old is worth a parent's attention; a list of 200 usernames is not. It is also the data-minimising choice — Sway stores counts and change events rather than retaining rosters of other people's children.
The most important change on this screen. Gaming platforms have permanent, structural gaps — Roblox exposes no chat to anyone, ever. An empty card reads as broken and erodes trust in everything next to it. A card that states the reason is more useful and more honest. Dashed border and grey fill mark it as a known absence rather than a loading failure.
Twitch's API exposes no watch history whatsoever — none of its 149 endpoints. We can see the follow list and classify those channels' content labels. That is a risk profile, not a risk event, and the copy says so. Blurring the two would be the single easiest way to mislead a parent on this screen.
Spend is a headline gaming worry — 53% of child gamers spend money in games and 42% say it is unclear what they are buying. Twitch exposes no balance or purchase history; Roblox is prohibited. Silently omitting the card would imply there is nothing to worry about. Showing the gap, with what the parent can do instead, is the honest move.
The current dashboard has none — dashboardQuery.error goes to PostHog and the
screen falls through to the empty state, so a parent sees "no data" when the truth is "we
couldn't fetch". With OAuth that gets worse: tokens expire and children revoke access.
A stale view presented as current is a safety problem, not a UX one.
Not a nicety. ICO Children's Code Standard 11 requires "a clear and obvious sign for the child … which lets them know when monitoring or tracking is active", at every age band. The same decision satisfies Google Play's persistent-notification rule for monitoring apps and Apple's bar on "surreptitiously" building a profile. Showing the parent that the child can see it also sets an honest expectation between them.
docs/games/01-twitch-data-capabilities.md and
01-roblox-data-capabilities.md. Anything speculative carries a dashed
Speculative badge. Roblox playtime is device-measured, not
from Roblox — console and PC play is invisible and the card says so.