I set the rule that nothing reads the raw tables directly, decided what the summary has to hold, and chose a number that agrees everywhere over a fresher one that might not.
What I saw
HYVIRAL describes a creator’s audience in many places: the Content page, the reports, the content generator and an AI assistant’s answers. Each used to query the raw tables and do its own maths, so the same creator could get different numbers depending on where they asked.
The clearest case came from the assistant’s tools in April 2026. They read engagement from a per-post table that had no rows for one creator’s YouTube profile, so the assistant reported nothing while the Content page showed the real figures.
Two right-looking numbers that disagree are worse than one wrong number: the creator stops trusting both, and an AI writing advice on top repeats whichever one it was given.
Same question, three places: average views per post, last 7 days
Three places, three answers.Three places, one answer.
One summary is the source of truth
Each sync ends by building one profile snapshot: a saved summary with the headline numbers over 7 and 90 days, every recent post with its metrics, recent comments, the daily series, the best-hours grid and the profile’s identity. Every consumer reads it, and none reads the raw tables. The specification states the purpose in one line:
This ensures LLMs and the UI use identical data.
The tradeoff is freshness: the summary rebuilds with each sync, roughly once a day. A number that agrees everywhere beats a fresher one that doesn’t, with one exception: a single post’s detail reads live data, because “how is the post I just published doing?” needs today’s numbers.
Gate everything on the summary
Before any AI job runs for a creator, the pipeline checks that the summary was written and belongs to the current run. Only one build runs per profile at a time, the stage changes in one database transaction, and a build that hangs is stopped after three minutes and retried.
A profile with no summary yet gets a plain “not ready yet” from every analytics tool, never zeros that look like a real, empty account.
Results
The assistant’s tools were the last ones reading raw tables. Moving them in April 2026 removed the drift, and the acceptance check was plain: one profile, the Insights page, the content generator’s analysis and the assistant’s answer, identical numbers. Because the same tools serve outside assistants, a creator’s own assistant inherited them for free.
Testing through the real tool system later found one gap: a new profile got a hard error instead of “not ready yet”. It now passes through, and a test runs every summary tool through that system.