Built for Gymi prep

A quiet companion for Gymi math prep.

Eli sits beside your kid on the iPad — pen-and-paper canvas, gentle hints, and a clear voice that only speaks when asked. No nagging, no flashy rewards. Just the room to think.

Available for iPad · designed for ages 9–14
Step 1 — draw it
12 12 12
A = 288 m²
units! ✓
eli
Math · Geometry
Areas & paths
Ask eli.
Hint
Check
What's inside

The right tools, none of the noise.

Every feature exists because a kid actually needs it for a Gymi-style word problem — not because it looks good in a screenshot.

Real pen, real paper.

A gridded notebook canvas with Apple Pencil precision. Sketch the problem, write your work, box your answer — like you would on paper.

Ruler, protractor, compass.

Draggable, snap-to-edge tools that latch onto the pen. Geometry stops being a guessing game.

Hints that nudge, not solve.

Tap "Hint" and get the smallest possible push — usually a question, not an answer. The thinking stays with the kid.

Quiet by default.

Eli doesn't pop up uninvited. A small avatar in the corner — tap it when you want help, ignore it when you don't.

Check work, not just answers.

Eli reads the handwritten work and points to the step where things went sideways — not just whether the final number is right.

Calculator on hand.

A four-function calculator lives in the sidebar. Keyboard shortcuts work too — the way arithmetic should feel.

Method

Built on what the research actually shows works.

Ten months from now, the Kanton Zürich Kurzgymnasium ZAP sits on Monday 8 March 2027. Here's how we plan to use the time — phase by phase, with the formula that drives every daily session, and the exact data we record to make it work.

The plan is diagnostic + adaptive priority queue. After a baseline paper, every daily session is generated from a per-skill priority score; weak skills surface first, mastered skills reappear on a spaced schedule, and one timed mock paper per week tracks readiness. There is no curriculum to "get through" — the queue regenerates each day from real performance data.

Why this works

Three evidence-backed principles, applied directly.

Cognitive science of learning gives us three findings that are unusually well-replicated for this kind of decision. We map each one to a concrete app behaviour rather than to an aspirational principle.

Principle 1

Interleaving

Mixing different problem types within a single session beats drilling one type at a time. The student must choose a strategy each time — which is exactly what the exam tests.

Effect size d = 0.42–0.79 on math tests. Rohrer et al.

Principle 2

Spaced retrieval

Re-encountering a problem after a 2–7 day gap, with the answer hidden, is dramatically better than re-reading worked solutions. We schedule mastered skills at expanding intervals (3d → 7d → 14d → 30d).

Hundreds of replications. Kang, 2016.

Principle 3

Successive relearning

Test → restudy what was missed → test again next session. The single highest-yield pattern for the time invested. Every "Check work" event records a self-marked outcome that feeds the next day's queue.

Best in show for transfer. APA, Successive Relearning.

The 10-month arc

Five phases, ~30 minutes a day.

Daily volume stays roughly constant; what changes is the mix between adaptive practice and timed mock papers. The shift toward simulation in the final eight weeks is deliberate — exam-format familiarity is a separate skill from math itself.

Phase When Daily mix Mock papers
0Diagnostic Week 1 (now) One untimed past paper (kurz 2024)
1Build core Jun–Aug 2026 100% adaptive queue, top-15 skills first Optional, untimed
2Broaden Sep–Dec 2026 80% queue / 20% mock 1 timed paper / week
3Simulate Jan–early Mar 2027 40% queue / 60% mock 2 timed papers / week
4Taper Final week Light review only — no new material
The engine

One formula, run nightly.

The daily queue is generated by a single priority score per skill. Top-3 skills × 2–3 questions each, interleaved order, plus 1–2 spaced-review items mixed in. That's the entire engine.

-- Per-skill priority, computed nightly
priority = (1 − mastery)
         × kurz_frequency
         × recency_weight

-- Daily queue (6–8 questions)
queue = top_3_skills(priority)
         × 23 questions each
         + 12 spaced_review items
          shuffled (interleaved order)
  • mastery — rolling % correct on this skill across the last N attempts (we'll start with N = 5).
  • kurz_frequency — number of past kurz questions tagged with this skill as primary, confidence ≥ 0.7. Pre-computed from question_skills.
  • recency_weight — boost for skills appearing in 2022–2025 papers. Linear weight: 1.0 for 2025, 0.95 for 2024, … down to 0.5 for 2015.
  • A skill is mastered at ≥ 80% over its last 5 attempts; it then enters a spaced schedule (3d → 7d → 14d → 30d) and falls out of the priority pool unless mastery decays.
Data model

Three new tables. Nothing existing changes.

The existing eli_math.sqlite already holds 251 kurz questions, 423 skills, 1127 question→skill links with confidence + role, and source PDFs/images. We add three tables to track what the student does.

-- Every "Check work" event becomes a row.
CREATE TABLE attempts (
  id              INTEGER PRIMARY KEY,
  question_id     INTEGER NOT NULL REFERENCES questions(id),
  started_at      TEXT NOT NULL,
  completed_at    TEXT,
  self_marked     TEXT CHECK (self_marked IN
                    ('correct', 'partial', 'wrong', 'skip')),
  elapsed_seconds INTEGER,
  notes           TEXT
);

-- Rolling mastery state per skill, recomputed on each attempt.
CREATE TABLE skill_mastery (
  skill_id        INTEGER PRIMARY KEY REFERENCES skills(id),
  attempts        INTEGER NOT NULL DEFAULT 0,
  correct         INTEGER NOT NULL DEFAULT 0,
  last_seen_at    TEXT,
  next_review_at  TEXT,                  -- spaced-review schedule
  mastery_state   TEXT CHECK (mastery_state IN
                    ('new', 'learning', 'mastered', 'lapsed'))
);

-- Each timed mock-paper sitting.
CREATE TABLE mock_papers (
  id              INTEGER PRIMARY KEY,
  gymi            TEXT,
  year            INTEGER,
  started_at      TEXT,
  completed_at    TEXT,
  elapsed_seconds INTEGER,
  score_raw       REAL,
  score_max       REAL,
  notes           TEXT
);
App surfaces

Four views, in build order.

The website exposes the engine through four screens. We build them in priority order; the first one is 90% of daily usage and unlocks everything else.

1

Today Spine

The daily queue. 6–8 problems, one per screen, canvas to work on, "Check work" reveals the rendered solution. She self-marks correct / partial / wrong; that single action drives mastery, the priority queue, and the spaced schedule.

2

Mock paper

Pick a kurz year (2015–2025), timed clock, all questions in order. Outputs a per-skill scorecard at the end that feeds back into the priority queue. Becomes weekly from September; twice-weekly from January.

3

Topics

The skill mind map (already prototyped in tmp/skill-mindmap-kurz.html) augmented with mastery % per skill. An exploration view, not the daily-practice surface.

4

Tutor report

One-page weekly summary: weakest skills, recent mistakes, mock-paper trend. Copy-paste into a message to the tutor. The handoff that lets paid instruction stay targeted.

Why the tutor report matters

External instruction (tutor or paid prep course) handles teaching new concepts; the website handles drill volume and progress. The tutor report is the integration point — it tells the tutor what to focus on next session, with no parent translation in between.

What we start from

11 years of kurz papers, fully annotated.

The corpus is already in place. The plan rides on top of existing data — no annotation work is required to begin.

-- From data/eli_math.sqlite
22 kurz PDFs        -- 2015–2025, tasks + solutions
251 kurz questions  -- every one annotated:
                    --   task_type, expected_answer_type,
                    --   difficulty, has_diagram, points
423 skills          -- across 11 domains, tiered
1127 q→skill links  -- primary/supporting + confidence
413 question→answer rows
413 problem→solution links

-- Top-15 most-tested kurz skills cover ~70% of every paper.
-- These are the priority targets for Phase 1.
How it works

From problem to "got it" in three steps.

1

Pick a session

Five Gymi-style problems on one topic — geometry, fractions, percentages, time. Three to five minutes each.

2

Work it out

Read the problem, sketch on the canvas, use the calculator. The thinking is the point.

3

Check & learn

Tap "Check work." Eli walks through the steps with you and shows what to revisit next time.

Kanton Zürich math prep, finally clear.

Sign up for early access. We'll send a single email when eli is ready for your iPad.