How EduGenius's Insights Dashboard Tracks Bloom's-Level Mastery Over Time
Insights is EduGenius's teacher-facing analytics dashboard, and it aggregates across everything you've created and assigned — not one class, not one date range. It computes a Bloom's-taxonomy coverage score for all six cognitive levels, a daily mastery trend, weak-and-strong-area flags, and assignment performance summed across every assignment you've ever published. It reads real data, not a demo sample.
Quick Answer: Insights (
/insights) pulls a server-computed feed that scores your content history against all six Bloom's levels — Remember through Create — plus one overall score, a daily trend line built from real per-day snapshots, and assignment stats (average score, scored count, submissions) summed across your entire assignment history. It's gated only by persona (any teacher-family role), never by plan tier or credit balance. The honest gap: the data contract already defines class- and section-scoped views, but only the full "everything I've assigned" aggregate is live today — picking a single class returns an empty result, not an error, just nothing yet.
Most classroom dashboards show you one thing at a time: one quiz's results, one assignment's grade distribution, one week's exit tickets. That's useful, but it's also the view that makes it easy to miss the pattern sitting one layer up — that a class has aced every recall question you've thrown at it for two months straight and has never once been asked to evaluate or create anything.
Insights exists specifically to answer that different, slower question: not "how did this assignment go," but "what does my entire body of teaching, added up, actually look like against Bloom's taxonomy — and is it moving?"
This piece walks through what the dashboard actually computes, where the numbers come from, how "over time" is implemented under the hood, and — because this is a real shipped feature, not a mockup — exactly where its current scope stops.
What the Insights Dashboard Actually Aggregates
Insights renders at /insights behind a single server-computed "analytics feed," and by design that feed is scoped to one person's entire history, not a slice of it.
One Feed, Requested as scope=self&period=all
The page makes exactly one call: GET /api/analytics/feed?scope=self&period=all. Both parameters are hardcoded in the current UI — there's no date-range picker and no class selector on the page itself. self means the feed is keyed to your own history as the requesting teacher; all means it isn't windowed to a week, a month, or a term. Whatever you've generated and assigned since your account started is what feeds the numbers.
A Cached, Not Recomputed-on-Every-Click, Snapshot
The feed isn't recalculated from scratch on every page load. It's cached as a document in a top-level analyticsSnapshots collection, keyed to your user ID, scope, and period, and treated as fresh for six hours. Open Insights twice in the same afternoon and the second load reads the cached snapshot; past that window, the server recomputes and writes a fresh one through.
It Explains — It Doesn't Generate or Recommend
Worth naming plainly: Insights is built as an evidence surface. It shows you what happened and links to where you can act (a "Build a Practice Worksheet to strengthen Apply" button, for instance), but it doesn't generate content or hand you a prescriptive plan — that's a deliberate line between Insights and EduGenius's other teacher tools, including the AI coach, which sits closer to the recommend-and-act side.
How Bloom's-Level Mastery Gets Computed
The headline widget on the page is a six-pillar Bloom's coverage score, and it isn't a subjective label — it's arithmetic run over your real content history.
Six Levels, One Format Registry
EduGenius scores against the standard six Bloom's levels — Remember, Understand, Apply, Analyze, Evaluate, Create — in that ascending order of cognitive complexity. Every content format you can generate is mapped to a primary Bloom's level (and often a secondary one) in a single shared registry: a multiple-choice quiz maps primarily to Remember, a worksheet to Apply, an essay-question set to Evaluate, a mind map to Analyze, a slide deck or hands-on project to Create, and so on.
If a piece of content carries an explicit per-question Bloom's tag, that tag is used directly; otherwise the format's registered level is inferred. Either way, the level assigned to a session traces back to something you actually generated — never a guess made after the fact.
The Score Blends Breadth and Depth
For each level, the dashboard computes a 0-100 score as a blend of two signals: roughly 60% is how often that level shows up across your sessions (breadth of engagement), and roughly 40% is a points-based measure that factors in each session's difficulty setting — easy, medium, hard, or advanced content is weighted differently — and whether the content was assessment-style.
A teacher who generates almost nothing but recall quizzes will show a high Remember score and a near-zero Create score; that's the mechanism working as intended, not a bug.
One Overall Score, Weighted Toward Higher-Order Thinking
Above the six pillars sits a single overall mastery number, and it isn't a flat average. It's a weighted average across the six levels where higher-order levels carry more weight — Create counts roughly six times as much as Remember in that weighted sum. The practical effect: a teacher whose generated content skews heavily toward recall-level quizzes will see a noticeably lower overall score than the six-pillar breakdown alone might suggest, which is a deliberate design choice to keep the single headline number from flattering recall-heavy content.
| Bloom's level | What it measures | Example format that primarily maps here |
|---|---|---|
| Remember | Recall facts, terms, basic definitions | Multiple-choice quiz, flashcards |
| Understand | Explain, summarize, classify ideas | Study guide, reading passage |
| Apply | Use knowledge in a new situation | Worksheet, homework assignment |
| Analyze | Break information into parts, find patterns | Mind map, case study |
| Evaluate | Justify, critique, assess | Essay questions, long-format exam |
| Create | Produce original work, design, construct | Slide deck, hands-on project |
The table above is the same six-level structure the dashboard renders as a radar chart by default, with a bar-chart "Levels" tab for a more precise read and an "Action plan" tab that links each lagging level to the content format most likely to strengthen it.
Tracking Mastery Over Time, Not Just a Snapshot
The word "over time" in the dashboard's job isn't decorative. There's a real daily record behind the trend line, separate from the aggregate score.
Real Daily Snapshots, Not an Interpolated Line
Each day you have qualifying activity, EduGenius writes a per-day snapshot — that day's Bloom's scores, overall score, session count, and strengths/weaknesses — into a dated record under your account. The trend chart on Insights is built by reading a run of those actual daily records back out, not by interpolating between two distant points.
When at least two days of graded activity exist, the dashboard renders a real sparkline. Below that threshold, it shows an honest "a trend line appears once there are at least two days of activity" message instead of a flat or fabricated line.
What "Over Time" Covers, in Practice
Two different windows are worth distinguishing here, because they don't match. The Bloom's coverage scores and overall mastery number draw on your session history going back as far as roughly ten years — in effect, everything, since that's a null request paired with a soft cap of your 200 most recent content-generation sessions.
The trend line, by contrast, is built from daily snapshots capped at the most recent 90 days — so even under the "all" period, the visible trend is a 90-day-or-shorter window, while the pillar scores it's plotting reach further back. That's a real, deliberate distinction in how the two pieces are computed, not an inconsistency to be alarmed by.
An Honest Empty State When There's Nothing Yet
A brand-new account, or one that hasn't generated anything in a while, doesn't get a fabricated curve. Every card on the page — the coverage widget, the trend line, the KPI tiles — is built to render an explicit "not enough signal yet" message rather than a zeroed-out chart that looks broken. That pattern holds across EduGenius's teacher surfaces: an empty state is always distinguishable from a real zero.
Where the Assignment Numbers Come From
Below the Bloom's widget, a set of KPI tiles surface assignment-level numbers, and this is the part of the feed with the least ambiguity about scope.
Summed Across Every Assignment You've Ever Published
The dashboard's assignment average, scored count, and submission count are computed by reading every assignment record you own and summing their stored stats — total score, scored-submission count, and total submissions — with no date filter and no class filter applied at that step. If you've published forty assignments since you started using EduGenius, all forty contribute to that one average. This is the piece of the feed that most literally earns the word "everything" in "everything you've assigned."
Weak and Strong Areas, Surfaced Plainly
A "Focus areas" card labels what's "Landing well" versus what "Needs attention," and both lists are populated from the same real classification the coverage score is built on, not a static list of common trouble spots. Today that classification operates at the Bloom's-level grain — a level scoring 65 or above counts as a strength, below 40 as needing attention, and anything between as a middle-ground "opportunity" that doesn't surface as either chip.
It's a real read on your history, expressed at the cognitive-level layer rather than a granular topic like "photosynthesis" or "linear equations."
| KPI tile | What it sums | Scope |
|---|---|---|
| Materials analysed | Content-generation sessions in the analysis window | Most recent ~200 sessions |
| Submissions | Total assignment submissions received | Every assignment you own |
| Assignment average | Average score across all scored submissions | Every assignment you own |
| Overall mastery | Weighted Bloom's overall score | Full session history |
Why Track Mastery Across a Whole Body of Work, Not Just One Quiz
The design choice to aggregate rather than isolate one class or one date range isn't arbitrary — it tracks a real pattern in how formative data is supposed to function in a classroom.
The Research Case for Looking at Data Over Time, Not Just Per-Event
Black and Wiliam's foundational review of classroom formative assessment found that data only functions as formative when it's actually used to adjust teaching going forward — a single quiz score reviewed once and filed away doesn't do that work, no matter how well the quiz was written (Black & Wiliam, 1998).
A dashboard that only ever shows the last assignment's numbers structurally discourages the longitudinal comparison that finding depends on. One that holds your whole history side by side makes that comparison the default view, instead of something a teacher has to reconstruct by hand.
Hattie and Timperley's influential synthesis of feedback research reached a related point from the teacher's side of the loop: feedback's effect on learning depends heavily on how specific and well-targeted it is, not just on whether it happens (Hattie & Timperley, 2007).
A cognitive-level breakdown — "your Create-level output has been thin for two months" — is a more specific, actionable signal than "your last quiz averaged 74%," precisely because it points at a pattern rather than a single event.
How This Differs From the Assign Feature's Per-Assignment Report
It's worth being explicit about the boundary, because EduGenius has both kinds of view and they answer different questions. The Assign feature's report is scoped to one published assignment: which specific wrong answer a class converged on, average score, on-time completion — all for that one piece of work.
Insights is the opposite zoom level: no single-assignment detail, but the full-history rollup across Bloom's levels, a trend line, and assignment stats summed across everything. Neither replaces the other — a teacher checking "did this Friday's quiz land" wants Assign's report, and a teacher checking "has my teaching shifted toward higher-order thinking this term" wants Insights.
A Brief, Honest Note on Demo Mode
Like several other EduGenius teacher surfaces, Insights has a real demo-mode substitution: toggling demo data swaps the entire feed for a fully populated fixture — Bloom's scores across all six levels, a trend, focus areas — so a visitor can see what a mature account's dashboard looks like before generating anything real. It's a genuine substitution, not a card stacked on top of your real (likely still-empty) data. If you haven't tried it, the demo-mode walkthrough covers how that toggle works across the rest of the app.
Honest Limits: Access, Gating, and What Isn't Live Yet
EduGenius's own product documentation for this feature is direct about one gap, and it's worth stating with the same directness here rather than glossing over it.
Gated by Persona, Not Plan or Credits
Access to Insights is checked exactly one way: does your account hold a teacher-family role — K-12 teacher, higher-ed instructor, homeschool educator, or tutor/trainer? If yes, the page loads. If not, you're redirected to the dashboard. There's no plan-tier check anywhere in the route and no credit deduction tied to viewing it — Insights costs nothing beyond having a qualifying persona, on any plan, free or paid.
Class and Section Views Are Built Into the Data Model — Just Not Live
Here's the part worth naming directly instead of skipping past: the underlying feed contract already defines three scopes — self, class, and section — and the class/section variants are meant to eventually let you view mastery trends for one Teaching Space or one section at a time, the same way you can already view your full aggregate. As shipped today, only self actually computes anything.
Request a class- or section-scoped view and the server returns a valid, honestly-empty result rather than an error or a fabricated number — but it's empty all the same, because that producer isn't wired up to real data yet. If your workflow depends on comparing Period 3 against Period 6 inside Insights specifically, that comparison isn't available today; the aggregate across everything is the only live view.
What This Means in Practice
For a single-class teacher, the aggregate-only scope barely matters — "everything I've assigned" and "my one class" are nearly the same data. For a teacher juggling several sections, it means Insights can answer "how is my teaching trending overall" but not yet "how is 2nd period doing versus 5th period." That second question is a real, acknowledged direction for the feature, just not one it fulfills today.
Pro Tips
- Check the "Levels" tab, not just the radar, when you want precise numbers. The radar chart is the default view and reads fast at a glance, but the bar-chart Levels tab gives you the actual rounded score per pillar plus the assignment average and lowest-coverage areas in one place.
- Give the trend line time before reading much into its shape. It needs at least two days of real activity to render at all, and it's built from a 90-day window of daily snapshots — a single unusual week won't move it much either direction.
- Use the "Action plan" tab as a starting point, not a verdict. It links your lowest-scoring Bloom's levels to a specific content format to generate next — a fast way to close a gap the dashboard just showed you, without leaving the page.
- Don't expect Insights to explain any one assignment's wrong answers. For that level of detail, go to that assignment's own report through Assign — Insights is deliberately the aggregate view, not a replacement for it.
- Revisit Insights over a term, not daily. Because it's an aggregate across your whole history and caches for six hours at a time, it's built to answer a slower question than "how did today go" — treat it as a periodic check-in rather than a live feed.
What to Avoid
- Don't assume a class or section filter exists on the page. There isn't one in the shipped UI, and requesting that scope server-side returns an honestly empty result, not class-specific numbers.
- Don't read "Overall mastery" as a grade. It's a weighted Bloom's-level composite that deliberately favors higher-order thinking over recall — two teachers with identical quiz-average scores can show very different overall mastery numbers if their content mix differs.
- Don't expect "Focus areas" to name specific curriculum topics. As shipped, strengths and weak areas are expressed at the Bloom's cognitive-level grain (Remember, Analyze, Create, and so on), not as flagged subject-matter topics like a specific unit or standard.
- Don't confuse the trend line's window with the coverage score's window. The pillar scores can reach back further into your history than the 90-day trend line does — they're two different computations reading from two different sources.
- Don't expect the numbers to update the instant you generate something. The feed is cached for up to six hours; a just-published assignment or just-generated quiz may not move the dashboard until that cache expires or a fresh compute is triggered.
Key Takeaways
- Insights aggregates across your entire teaching history — every generated session and every published assignment — not one class or one date range, via a single
scope=self&period=allrequest. - Bloom's coverage is computed, not guessed: each of the six levels gets a 0-100 score blending how often you engage that level with a difficulty-weighted depth measure, plus one overall score weighted toward higher-order thinking.
- The trend line is built from real daily snapshots, capped at a 90-day window, distinct from the longer history feeding the coverage scores themselves.
- Assignment stats are summed across every assignment you've ever published — average score, scored count, submission count — with no per-class filter applied.
- Access is gated by persona only — any teacher-family role, on any plan — with no plan tier or credit cost attached to viewing the dashboard.
- Class and section scoping is a real, defined part of the data contract but not live yet: requesting it returns an honestly empty result, not an error or fabricated numbers.
- Insights and the Assign report answer different questions: one assignment's wrong-answer detail lives in Assign; the cross-everything Bloom's and trend view lives here.
Frequently Asked Questions
Does Insights show data for just one class?
Not currently. The dashboard's data contract defines class and section scopes, but only the full aggregate across everything you've created and assigned is actually computed and shown today; class- and section-scoped requests return an empty result rather than filtered numbers.
Is the Insights dashboard mocked or does it use real data?
It uses real data. In the non-demo path, it reads from your actual Firestore content-session, daily Bloom's snapshot, and assignment records — the same underlying history that powers the rest of your account, not a sample or a canned dataset.
Do I need a paid plan to use Insights?
No. Access is gated only by having a teacher-family persona (K-12 teacher, higher-ed instructor, homeschool educator, or tutor/trainer). There's no plan-tier requirement and no credit cost tied to viewing the dashboard.
How is the "overall mastery" score calculated?
It's a weighted average across all six Bloom's levels, where higher-order levels like Create and Evaluate count for meaningfully more than recall-level Remember. A teacher whose content skews toward recall quizzes will see a lower overall score than a flat average of the six pillars would produce.
How far back does the trend line go?
The trend line is built from daily snapshots capped at the most recent 90 days, even though the Bloom's-level pillar scores it's plotted alongside draw on a longer stretch of your session history. It also needs at least two days of recorded activity before it renders at all.
Does Insights tell me which specific topic my class is struggling with?
Not at the subject-matter level today. Its weak/strong flags operate at the Bloom's cognitive-level grain — which levels like Analyze or Create are lagging — rather than naming a specific curriculum topic or unit.
How is Insights different from an individual assignment's report?
An individual assignment's report, reached through Assign, shows wrong-answer clustering and completion data for that one assignment. Insights is the opposite zoom level — a rollup across every assignment and every generated session you have, with no single-assignment detail.