🔑 Your Data Always Belongs to You▾
Student Insight never treats the browser as permanent storage.
Your institution's information is stored only in files that you own.
Every project can be imported, analyzed, updated, exported, shared, archived, or backed up without depending on an online account or remote server.
If you move to another computer, your project moves with you. If you disconnect from the internet, your project continues to work.
Your data remains yours.
🌐 Built for GitHub Pages and Static Hosting▾
Student Insight is intentionally designed to run from a single static website. It works equally well whether it is opened from:
No installation. No server. No database. No subscriptions. No vendor lock-in.
🛡️ Privacy by Design▾
Educational records are among the most sensitive types of information.
Student Insight is designed so that student information never needs to leave the educator's device. The application does not require:
The browser simply processes the data that you choose to open.
📊 Your Spreadsheet is the Source of Truth▾
Traditional systems store information inside databases. Student Insight stores knowledge inside educator-owned project files.
The application can always reconstruct the complete working environment from those files.
Nothing important depends on browser memory. Nothing important depends on server storage.
This carries through the whole academic year, not just a single test. As Test 2 and Test 3 come in, the same file grows to hold them — the Setup step can load an already-filled sheet and add the next test's columns onto it directly, so nothing already recorded is ever re-entered or discarded along the way.
Your project remains portable, transparent, and future-proof.
🏫 Designed for Every Educational Institution▾
Its architecture is designed to support:
🎯 Beyond Marks and Attendance▾
Student Insight is not another student management system. Its purpose is to help educators understand learning.
The goal is not simply to collect data.
The goal is to transform educational data into educational intelligence.
🔌 Offline First. Stateless by Design.▾
Every institution owns its own data.
Every project remains independent.
No shared storage.
No hidden cloud dependency.
Your project is permanent.
📂 Open, Portable and Future Ready▾
Because Student Insight is built around open file formats and educator-owned data, institutions remain free to archive, migrate, or extend their projects without being tied to proprietary infrastructure.
"Student Insight is a privacy-first, offline education analytics platform where educators own their data, projects live in user-controlled files, and the application serves only as an intelligent analysis engine."
— Our Philosophy🎓From the PrincipalMoney, liability, reputation▾
QIs this free forever, or a trial that starts charging later?Serious▾
QWhat's the catch — what are you getting out of this?Serious▾
QWho else is using this? Can you name another school?Serious▾
QIf a grade comes out wrong on a report card, who's responsible?Serious▾
QDo you have a registered company?Serious▾
QWhat happens if you stop maintaining this next year?Serious▾
QDoes this replace our school ERP?Practical▾
QDid you build this alone? Are you even a teacher?Silly▾
🧭From the VP / Academic CoordinatorProcess & control▾
QDoes this integrate with our existing student database?Serious▾
QOur teachers struggle with Excel — will they manage?Practical▾
QWho trains the teachers on this?Practical▾
QCan a coordinator see all teachers' data, and teachers only their own?Serious▾
QDoes it catch teacher data-entry mistakes?Practical▾
QDoes it handle CBSE/ICSE/State board grading differences?Practical▾
QWhat about students with different elective subject combinations?Serious▾
QCan I customize the report card layout?Practical▾
QDoes it work if our internet is down?Practical▾
🖥️From the IT-in-chargeHosting & data location▾
QWhere exactly is our data stored?Serious▾
QIs this hosted on a government-approved server?Serious▾
QYou said no login — so how do you stop misuse?Serious▾
QInstalled app, or does it run in a browser?Practical▾
QIs this on the Play Store / App Store?Practical▾
QCan we host this on our own school website instead?Practical▾
QWhat if our ISP blocks GitHub Pages?Silly▾
👩🏫From a Regular TeacherThe actual daily user▾
QHow much time will this actually save me?Practical▾
QCan I edit the AI-generated remarks, or are they locked?Practical▾
QHow does it handle a student absent for a whole test?Practical▾
QCan I save my work and come back tomorrow?Serious▾
QWhy do I need an app for something I can do in Excel myself?Serious▾
QWill this replace my judgment as a teacher?Serious▾
QCould the AI say something insensitive about a student?Serious▾
QCan I do this on my phone, or only a laptop?Practical▾
QCan I fix a mistake by re-uploading, or do I start over?Practical▾
QWill parents see this directly?Practical▾
QDoes it support regional-language names with special characters?Practical▾
QDoes it print directly, or save PDF first?Silly▾
QCan I put my school's logo on the report card?Silly▾
QIs there a WhatsApp group for support?Silly▾
👨👩👧Parent-Facing ConcernsWhat the principal anticipates▾
QWhy does it say my child is at "burnout risk"?Serious▾
QIs this leaking data to an ad company?Serious▾
QIs this like a "free VPN" that secretly sells your data?Silly▾
💰From the Finance / Admin OfficeBudget & paperwork▾
QWill there be a per-student or per-teacher fee later?Serious▾
QDo we need to sign an MOU or agreement?Serious▾
QIs there a paid version with more features?Practical▾
🔎The Nitpicky (But Real) OnesYou'll actually hear these▾
QDoes it work on Internet Explorer?Silly▾
QCan it detect if a teacher marked a student unfairly?Silly▾
QWhy "Insight" — does it predict the future?Silly▾
QIf two teachers open it at once, will it get confused?Silly▾
QWhat's the AI's error rate?Practical▾
QIs this connected to ChatGPT — is my data going to OpenAI?Serious▾
QWhat if I close the tab by mistake?Serious▾
📐Exact Formulas & Calculation LogicFor maths/statistics/analytics reviewers — every number, in writing▾
ΣHow is a test percentage calculated?Core▾
Test % = ( Σ min(marks scored, subject max) ) ÷ ( Σ subject max ) × 100, summed across every subject the student attempted in that test, then rounded to the nearest whole number. A subject with no mark entered is excluded from both the numerator and denominator for that test (it doesn't count as zero). If an entered mark exceeds the subject's max, it's clamped down to the max for this calculation and separately flagged as a data-entry issue.ΣHow is the Overall Average calculated?Core▾
Overall Avg = ( Σ marks scored across ALL tests ) ÷ ( Σ max marks across ALL tests ) × 100, rounded once at the end. This is deliberately not a simple average of the already-rounded per-test percentages — averaging pre-rounded numbers compounds rounding error test over test. Working from raw cumulative totals and rounding only once keeps the final figure accurate to the source marksheet.ΣWhat are the grade bands?Core▾
A+ ≥90 · A ≥80 · B ≥70 · C ≥60 · D ≥ Pass Threshold · F below Pass Threshold. The Pass Threshold itself is set per-institute in Setup (default 35%), so D/F cut-offs move with whatever threshold was configured — the A+/A/B/C bands are fixed.ΣHow is class Rank decided, including ties?Core▾
ΣHow is Percentile calculated?Core▾
i (0-indexed) out of n students: Percentile = round( i ÷ (n−1) × 100 ). With only 1 student in the class, percentile is defined as 100.ΣHow is Trend (Improving/Declining/Stable) decided?Core▾
diff = (latest test %) − (first test %). Improving if diff ≥ +5, Declining if diff ≤ −5, otherwise Stable. It only compares the first and most recent test — it does not fit a trendline through every point in between.ΣHow is the Predicted Next Score calculated?Core▾
slope = (latest % − first %) ÷ (number of valid tests − 1), then Prediction = latest % + slope, clamped to 0–100. This is "if the average trend so far continues by one more step" — a straight-line projection, not a statistical forecasting model.ΣHow is SD (Standard Deviation) calculated, at class and student level?Core▾
SD = √( Σ(x − mean)² ÷ n ). At class level, x = each student's Overall Average. At student level (used for Volatile and Consistency Score below), x = each of that student's own valid test percentages.ΣHow are Median, Q1 and Q3 calculated?Core▾
floor(n × 0.25). Q3: the value at index floor(n × 0.75). This is one accepted quartile convention among several used in statistics software — with small class sizes, different conventions can shift Q1/Q3 by a mark or two, which is normal.ΣHow is Consistency Score calculated?App-defined▾
Consistency = max(0, round(100 − 2 × SD)) of the student's own valid test percentages. It's mathematically the inverse of that student's own volatility — a design choice to turn "spread" into a 0–100 "steadiness" number that reads intuitively on a report card.ΣHow is Growth Rate calculated?App-defined▾
Growth Rate = round( (latest % − first %) ÷ max(first %, 1) × 100 ), clamped to ±300%. The clamp exists because a near-zero starting score (e.g. 0% → 50%) produces a mathematically correct but meaningless "+5000%" — clamping keeps the number informative instead of alarming on a parent-facing report.ΣHow is the Health Score calculated?App-defined▾
Health = 0.4×Academic + 0.2×Consistency + 0.2×Trend + 0.2×Engagement. Academic = Overall Average (capped at 100). Consistency = as defined above. Trend = 100 if Improving, 60 if Stable, 20 if Declining. Engagement = the Engagement Index defined below. Bands: Excellent ≥80, Good ≥65, Average ≥50, Below Average ≥35, Needs Support below 35. The 40/20/20/20 weighting is this app's own design choice, not a published or standardized formula — stated plainly so it isn't mistaken for a clinical or peer-reviewed instrument.ΣHow is the Engagement Index calculated?App-defined▾
absentPct = min(100, totalAbsences ÷ (number of tests × 3) × 100), then Engagement = min(100, round( (100 − absentPct) × trendMultiplier )), where trendMultiplier is 1.1 for Improving, 0.8 for Declining, 1.0 for Stable. It is an attendance-and-trend based proxy — the app has no way to directly measure classroom participation.ΣHow is the Stress Score calculated?App-defined▾
Stress = min(100, (totalAbsences × 5) + (30 if Declining) + (40 if below Pass Threshold)). Wellbeing Flag: High ≥60, Moderate ≥30, Low below 30. Built from absence frequency and performance trend only — not a certified wellbeing or psychological assessment.ΣHow is the Early Warning Score calculated?App-defined▾
At Risk +40 · Sharp Drop +20 · High Absence +15 · Volatile +10 · Burnout Risk +15. It's an additive composite of existing flags, not an independently derived statistic.ΣWhat exactly triggers each flag (Volatile, Sharp Drop, Plateau, Burnout, Resilient)?App-defined▾
(max − min) ≤ 8 points, and Overall Average is below 70 (a high-scorer holding steady near the top isn't flagged). Burnout Risk: first valid test ≥70% AND latest valid test is more than 15 points below the first. Resilient: at any point in the sequence, a test dropped ≥10 points from two tests prior, and the very next test recovered by ≥8 points from that dip.ΣHow is a Subject Average calculated, and Subject-vs-Class Delta?App-defined▾
(marks ÷ subject max × 100, capped at 100) across every test where it was attempted, rounded. Subject-vs-Class Delta = that student's Subject Average minus the class-wide average for the same subject — a signed number showing exactly how far above/below the class norm a student sits in one subject.ΣHow is class-level Subject Weakness identified?App-defined▾
% of class below Pass Threshold in that subject, plus the class-wide subject average. Subjects are then ranked by that percentage, worst first — this identifies which subject needs curriculum attention, distinct from which individual student needs attention.ΣHow is the Attendance-vs-Performance correlation calculated?App-defined▾
ΣWhere in the code do these formulas actually live?For reviewers▾
computeAnalysis() (per-student scores, flags, grades), computeExtraInsights() (subject deltas, rank movement) and computeClassStats() (mean/median/SD/quartiles/correlations). Anyone with browser dev-tools access can inspect the exact running code — nothing is computed on a server or hidden behind an API.