How the Nexus Engine works

Student data → algorithms → insights.

ThirtyPlus runs the Nexus Engine, a deterministic intelligence engine. Every mastery number, recommendation, and score projection traces to a statistical model over your answers, not a language model guessing. No LLM makes a decision.

The pipeline

How a single answer becomes insight.

Every answer you give runs through the same deterministic path. Never question → LLM → opinion.

1Your answers

correctness · timing · concept tags

2Deterministic algorithms

Bayesian · IRT · graph · forgetting

3Structured insights

beliefs · recommendations · Δ

4Templated prose

rendered for you

Concepts are the source of truth

A belief per concept, not a tally per question.

You don't learn questions. You learn concepts. So the Nexus Engine keeps a belief per concept, not a score per question. Every answer updates a Beta(α, β)posterior over your competence on that question's concept tag(s). The “X% mastery” you see is that posterior's mean (recency-decayed), not a naive correct-÷-total that forgets which questions you missed. Evidence shifts the whole distribution, so a single surprising answer moves it more than a single expected one.

What most apps do

Per-question tally

6 of 10 questions right · “60%” · which questions, and how hard, is already gone.

What the Nexus Engine does

Concept belief

A Beta(α, β) posterior · mean + a 90% band · every answer shifts it.

Hybrid Bayesian + IRT

A miss on an easy item is more informative.

Per concept you hold a competence belief (Beta). Per section you hold a latent ability θ, a Gaussian the engine refines with every answer in that section. A three-parameter logistic (3PL) model turns each question's difficulty into P(you get this right | your θ). That probability is what makes answers comparable across questions of different difficulty, and it is what powers the surprise weighting below.

When you miss a question the engine expected you to get right, that is strong signal. It shifts beliefs hard. When you miss one it expected you to miss, that is barely information at all. Every answer is weighted by |outcome − P(correct)|, so a careless miss on an easy item moves your competence far more than a forgivable miss on a hard one.

Easy item. You miss

P(correct) going in85%

you missed →

signal (surprise)85%

Strong signal. Belief moves hard

Hard item. You miss

P(correct) going in35%

you missed →

signal (surprise)35%

Weak signal. Belief barely moves

Honest confidence

A clean number is never worth a lie.

Every belief ships with a 90% credible interval. A concept you've practiced twenty times carries a tight band. One you've seen twice carries a band that spans nearly the whole range, and the engine says “low confidence” out loud instead of hiding it behind a tidy percentage. The projection gate goes further: until you have at least fiveattempts, the engine refuses to print a projected score at all. It prints “still building your signal.”

The 90% credible interval narrows as evidence accrues

0 attempts: uniform priorwide band
5 attempts: first honest projectionnarrower
20 attempts: practicedtight band
5-attempt honesty gatefewer than five attempts → no projected score, no fabricated number.
Forgetting is part of mastery

A concept you nailed two months ago is not the same as one you nailed yesterday.

The engine folds an Ebbinghaus-style recency decay into every concept's effective competence with a roughly 14-day half-life (conservative, the one parameter worth tuning once there's enough data). A belief drifts back toward the prior as time passes. Recommendations read effective mastery, not raw stored competence, which is why a stale-but-once-mastered concept can resurface as a mission even though its stored value never dropped.

prior ≈ 50%day 0day 14day 28fresh ≈ 85%half-life: half the gap back to prior

Illustrative decay shape on the real forgetting model.

A knowledge graph propagates a miss

Concepts aren't independent. The engine knows the ladder.

The engine carries a prerequisite graph. Algebra gates trigonometry, which gates pre-calculus, and propagates a miss upstream: a miss on a trigonometry question implicates algebra and geometry (its prerequisites), while a correct answer lifts the concepts that depend on it. Recommendations respect the ladder: if your weakest concept is gated by an unmastered prerequisite, the engine points you at the gate, not the gated concept. Practicing the blocker unblocks everything downstream.

Prerequisites: a miss propagates upstream

AlgebraGeometrygateTrigonometry(you just missed this)

Depends on this: a win lifts downstream

TrigonometryPre-Calculus
Recommendations are an objective

“What should I study next?” is an optimization, not a vibe.

The Nexus Engine ranks candidate missions by expected score improvement per study minute, a real Δ-composite from the objective model, divided by real ACT-tempo minutes, then schedules them under your time budget, section balance, and prerequisite ordering. The study planner is shaped like an integer linear program (maximize total Δ subject to those constraints). Today it is a greedy solve, written so promoting to a true LP solver is one call swap, not a redesign. The greedy reports exactly what it relaxed, so nothing is silently truncated.

Ranked by expected Δ per minute

  1. 1Algebra Accuracy+0.4 pts · 12 min≈ 0.033 Δ/minrecommended
  2. 2Reading Inference+0.2 pts · 11 min
  3. 3Grammar Precision+0.1 pts · 10 min
time budgetsection balanceprerequisite order
Cold start is honest, not empty

No fake numbers before you've earned them.

A brand-new student gets a cold-start prior: per-concept Beta(1, 1) (uniform, 50% mean), section θ = 0 (the population mean), and an empty mastery graph. The engine does not hallucinate a starting profile. It admits ignorance with clean priors and updates from the first answer. The first mission is still intelligent: it targets the section with the widest uncertainty band (exploration) and the concept with the steepest prerequisite fan-out (leverage). As evidence accrues, the prior's influence shrinks and the engine transitions to exploitation automatically. No setup wizard, no personality quiz.

AOfficial ACT score

if you share one

BDiagnostic result

section scores, anchored

Cθ per section

seeds the 3PL model

DFirst mission

already informed

The platform learns anonymously

Every student's answers make the engine smarter, without knowing who anyone is.

An operator-run batch job pools successes, pacing, and distractor-pick frequencies across the platform. It uses only counts: no uid, no email, no per-student identity, to calibrate each question's difficulty (the IRT b parameter). The engine then blends that calibrated difficulty toward the bank's prior. Your Firestore data is yours alone: the security rules forbid any student from reading another student's contributions. Only the pooled, contribution-anonymous aggregate ever feeds back, and today even that flows through an admin-run batch, not live client reads.

αMany students' answers

pooled as counts only

βStrip identity

no uid · no email

γAdmin-run batch

calibrates difficulty b

δEngine improves

for the next student

No PII in aggregatesCross-user reads forbidden: firestore.rulesToday an admin batch: a live read path is the follow-up
No LLM, no hallucination

Every sentence you read is rendered from a structure.

The recommendation's reason, the wrong-answer diagnosis, the score projection — none are generated by a language model. The Nexus Engine produces a ReasonObject, a deterministic renderer turns it into prose. Adding a new kind of explanation is one new template branch, not retraining a model. An LLM would never choose your next mission, diagnose your miss, or project your score. Those are the engine's job, and the engine is deterministic.

Answer folds in

engine updates beliefs

ReasonObject

structured, typed

reasonRender

deterministic templates

Prose for you

no generation, no hallucination