HandbookFoundation41

Analytics & intelligence.

Every other module in YESS produces data; this one turns it into a decision. There are three readers and three surfaces. The analyst opens a workbench with ten tabs and a builder. The leader opens a briefing written like a letter — a verdict, the few things that need them today, the numbers in plain words. The board reads a pack of chapters, each a live page rather than a stale PDF. Underneath, most of it is computed live from the operational tables the moment you ask; a thin layer of heavier models — risk scores, subject correlations — is pre-computed on a schedule. This handbook is how to read the school as numbers, and act on them.

  • 10workbench tabs
  • 13owner chapters
  • live+ scheduled models
  • ≈16 minto read

Prologue

Three readers, three surfaces#

Analytics in YESS is not one screen — it is a stack tuned to who is asking. The analyst (a data-minded admin) wants to slice everything by campus, year, term, and class; they live in the workbench. The leader (the principal or proprietor) wants a verdict and a short list of things that need them; they read the briefing. The board wants a pack of chapters they can trust; they open the owner reports.

A single truth runs under all three: most analytics are computed live. The owner briefing, the financial chapter, the academic pass-rate story — they query the operational tables (invoices, student_scores, student_attendance, the payroll runs) at the moment you open the page, so the number a leader sees on Friday afternoon is the same number the bursar worked with on Friday morning. Only a few heavier models are pre-computed on a schedule — early-warning risk scores and subject-pair correlations — and the handbook says clearly where those are.

The whole school, as numbers a leader can act on — live, in plain words, with the decision attached.

Chapter one

A Monday in the owner's chair#

The proprietor opens /owner on her phone at 07:40. What loads is not a dashboard of charts — it is a briefing, written like a letter, top to bottom.

The masthead greets her by school and date. Below it, today's pulse — what is happening right now. Then the verdict: a plain-language health line and a single ring scored out of 100 with a letter band, so she knows in one glance whether the week starts green or red.

"Needs you" is the part she reads first on a busy day: the few things that need the owner personally — invoices past 90 days, contracts expiring, a settlement owed, margin under target, collection slipping. Each is a glyph and a deep link straight to the chapter that explains it. Then the numbers, in plain words — a rail of headline figures, each with a sparkline and two clauses: how it moved versus last period, and how it sits against her own target.

She taps the collection figure; it carries her to /owner/financials, where the same number opens into the full money story. Two minutes, one screen, and she knows exactly which conversation Monday needs.

Chapter two

The analytics workbench#

The workbench at /dashboard/analytics is the analyst's home. A global filter bar across the top — campus, academic year, term, class — narrows everything below it at once, and ten tabs cover the school cluster by cluster:

Ten lenses

  1. 1

    Executive & Financial

    The cross-cluster overview and the money lens — revenue, collection, spend — computed live from invoices, payments, and expenses.

  2. 2

    Academic

    Pass rates, subject high/low, and teacher effectiveness, read from compiled_results (one row per student per term) and student_scores (the per-subject percentages), with the pass mark drawn from grade_boundaries.

  3. 3

    Attendance & Conduct

    Daily rates, chronic-absence signals, and the behaviour register, from student_attendance and the conduct tables.

  4. 4

    Enrollment & Staff

    Capacity fill, composition, the admissions funnel, and the staff radiography — workload and payroll read live from the HR tables.

  5. 5

    LMS

    Course engagement and assignment activity for schools running the learning module.

  6. 6

    BI & Report Builder

    The business-intelligence overview, and the builder where a saved report is defined and a schedule attached.

Every tab renders from live hooks and supports export to CSV, PDF, or Excel. Nothing here is a stored snapshot waiting to go stale — change a score or record a payment and the relevant tab reflects it on the next load.

One filter bar, ten tabs — campus, year, term, and class narrow the whole school at once.

Chapter three

Heuristic intelligence#

Where the workbench reports what happened, the intelligence hub at /dashboard/intelligence looks for patterns. It is deliberately heuristic — statistical signals a head of department can read, not a black-box AI verdict. Three artefacts:

Subject-pair correlations — a Pearson correlation between every pair of subjects within a term (computed in the subject_pair_correlations materialized view), surfacing where a struggle in one subject tends to travel with another, and how many students are jointly at risk in both. Teacher impact — each class average set against the programme baseline (the teacher_impact_metrics view), expressed as a delta and a percentile, so "effective" means measured against peers teaching the same level. Cognitive load — a check of how much heavy work lands on one section on one date, so a coordinator can spot the day three big assignments collide.

Chapter four

The early-warning score#

One stored model deserves its own chapter because it drives intervention, not just reporting. The student_overall_risk_scores table holds, for each student in a term, a single risk score and a level — low, medium, high, or critical — built from four weighted factors: attendance, grades, behaviour, and lateness. The weights are fixed and visible: grades carry the most, attendance next, then behaviour and lateness.

A database function (compute_student_overall_risk, and its bulk sibling) reads the operational tables and writes the score; the permissions that gate it — at_risk.view, at_risk.evaluate, at_risk.manage — decide who can run an evaluation and who can acknowledge a flag. The acknowledgement is recorded on the row with a note, so a high-risk student is not just detected but owned: a name, a time, and a plan attached.

Chapter five

The owner's briefing, in depth#

The briefing at /owner reads against the owner's own targets, which is what turns a number into a judgement. Those targets — a revenue goal, a margin floor, a collection-rate floor, a payroll-to-fees ceiling, an enrolment goal — are set once and stored under the owner_targets key in the school settings, then read on every briefing.

So the collection figure does not just say "74%" — it says 74% against a 90% target, down from last period, and it routes that verdict into the "needs you" list when it breaches. The whole briefing is the same idea repeated: every headline number carries its movement and its distance from the line the owner drew. First paint loads on the financial and enrolment figures; the heavier HR and academic numbers fill in behind them, so the page is useful in under a second.

Chapter six

The chapters of the board pack#

Each headline in the briefing opens into a full chapter. Together they are the board pack — but as live pages, not a PDF that was true last Tuesday. The owner reports index at /owner/reports lists them and links straight through:

The owner chapters

  1. 1

    Financials

    At /owner/financials — the margin ring, the P&L story, collections aged into buckets, fee-integrity (expected vs billed vs collected), per-student economics, and the spend breakdown.

  2. 2

    Academics

    At /owner/academics — the pass-rate story, subject highs and lows, and teacher effectiveness, read from the real grading tables.

  3. 3

    Attendance

    At /owner/attendance — today's pulse, attendance by class, chronic absentees, and staff attendance alongside.

  4. 4

    Enrollment

    At /owner/enrollment — capacity fill against seats, composition, retention and movement, and the admissions funnel.

  5. 5

    Staff & compliance

    At /owner/staff (with per-staff detail at /owner/staff/[id]) the People & Payroll radiography; at /owner/compliance a data-backed risk posture, severity-ranked, with the action that clears each one.

  6. 6

    Engagement & campuses

    At /owner/yess-analytics the YELE/engagement and ROI chapter; at /owner/campuses the federated comparison that ranks every campus on enrolment, collection, and presence.

Chapter seven

Saved and scheduled reports#

The report center at /dashboard/reports has two tabs: a set of pre-built operational reports, and a custom builder. The builder also lives as a tab inside the workbench. A custom report is a saved definition — you name it, pick a data source, toggle the fields you want, set grouping, sorting, and a chart type, and save. That record lands in the saved_reports table and re-runs live whenever you open it.

On a saved report you can attach a schedule: a row in scheduled_reports with a frequency of weekly, monthly, or term-end, a day-of-week or day-of-month, a recipient list, and an enabled flag. The definition and the schedule both persist today. The delivery worker that actually mails a scheduled report on its next_run_at is the part still being rolled out — so treat the schedule as set-and-stored, with delivery arriving in a near release.

Chapter eight

The board-intelligence digest#

The one piece of analytics that comes to the owner rather than waiting to be opened is the digest, configured from a card on the briefing itself. The owner picks the sections to include — what needs a decision, the health verdict, today's pulse, the key numbers, the year-over-year — chooses a frequency (daily or weekly) and a time, and sets a recipient email (their login by default). Every change auto-saves under the owner_digest key in school settings, and a live preview renders the exact email in place.

"Send me one now" delivers the digest to the owner's inbox immediately via the platform email provider. The scheduled path runs as an hourly job that reads the saved preferences, builds the same HTML, and hands it to the notification pipeline as a newsletter.

What makes it elite

What makes this analytics elite#

Six things that make this elite

  1. 1

    Live by default, stored only where it must be

    The briefing and the chapters query the operational tables at open time, so the owner reads today's truth. Only the heavier models — risk scores, subject correlations — are pre-computed, and the pages say so.

  2. 2

    Numbers judged against the owner's own line

    Targets for revenue, margin, collection, payroll ratio, and enrolment are set once; every headline then carries its movement and its distance from that line, turning a figure into a verdict.

  3. 3

    A briefing, not a dashboard

    The owner home is written like a letter — verdict, the few things that need you, the numbers in plain words — because a proprietor needs a decision, not a wall of charts.

  4. 4

    Whole-child early warning

    Risk scores blend attendance, grades, behaviour, and lateness into one level a head of pastoral care reads first thing, with the acknowledgement owned by a name and a note.

  5. 5

    Heuristic intelligence you can read

    Subject correlations, teacher impact versus the programme baseline, cognitive-load collisions — statistical signals a human can interpret, not an opaque AI score.

  6. 6

    Honest empty states

    When a materialized view has not refreshed or an LMS table is absent, the page says so instead of fabricating a number. A blank that tells the truth beats a chart that lies.

Planned features

What comes next#

The analytics surfaces, the briefing, the chapters, the risk model, and the digest are live. The honest gaps below are the parts still being finished, listed here so you can plan around them.

Five honest gaps

  1. 1

    Scheduled-report delivery

    A saved report and its schedule both persist today; the worker that mails a scheduled report on its next-run date is the piece still rolling out. Build your schedules now — they will start delivering when the worker lands.

  2. 2

    Board-pack assembly

    The owner reports index links to live chapters; assembling and delivering them as a single board-pack file is on the roadmap and flagged in-page. For now the pack is read on screen.

  3. 3

    Digest on WhatsApp & SMS

    The digest delivers by email today. WhatsApp and SMS choices are saved on the preferences, but those channels need a platform messaging provider (and, for WhatsApp, an approved template and consent) before they deliver.

  4. 4

    Nightly model refresh visibility

    Subject-pair correlations refresh on a schedule; making the last-refresh time visible on the intelligence hub, and offering an on-demand refresh, is a planned nicety.

  5. 5

    Per-chapter campus filter

    The campus comparison is live, but a consistent campus selector across every owner chapter (financials, academics, attendance) is still being propagated.

Adjacent modules

Where analytics connects#

Tutorial

Do it step by step#

Set the school's targets, read the briefing they make meaningful, schedule the digest, and save a report you can rerun any time. Five steps, in the order a leader actually adopts analytics.

  1. 1

    Set the owner's targets

    On /owner open the targets control and set your revenue goal, margin floor, collection-rate floor, payroll-to-fees ceiling, and enrolment goal. These are what turn every headline number into a verdict.

    Targets are stored once under the owner_targets setting and read on every briefing — you only set them when they change.

  2. 2

    Read the briefing

    Reload /owner. Read the verdict ring, work the "needs you" list top to bottom, then scan the numbers rail — each figure shows its movement and its distance from the target you just set.
  3. 3

    Open a chapter

    Tap any headline to open its full chapter — say /owner/financials for the money story or /owner/academics for the pass-rate detail. Each is a live page, not a stale export.
  4. 4

    Configure the digest

    Back on the briefing, open the digest card. Pick the sections to include, choose daily or weekly and a time, set the recipient email, and click Send me one now to see it land in your inbox.

    Email delivers today; WhatsApp and SMS choices save but wait on a platform messaging provider.

  5. 5

    Save and schedule a report

    Open /dashboard/reports (or the builder tab in /dashboard/analytics), define a custom report — data source, fields, grouping, chart — save it, then attach a weekly or term-end schedule with a recipient list.

Targets set, briefing read, digest scheduled — the school is now a number you act on, not a spreadsheet you chase.