Indian Medical PG (NEET-PG) Rezzy
Learner state: a PYQ set yesterday, 9 misses across two subjects
You had 9 misses in yesterday's PYQ set, 7 of them in Internal Medicine. Want to walk through them?








Work in progress, round 7 of the council loop. Scores, captures and code are still changing; this page is redeployed at the same address as rounds land.
Prototype · ONC2-8580 · staging data and staging QA accounts only · not shipped · api 7928fbbe, app beabfe143
When a learner opens Home, their course's tutor (Rezzy for the medical courses, Savvy for CFA and CPA, Casey for LSAT and the Bar) opens with one short message about what the learner did last, and one or two things it can do about it right now: a quiz on the exact questions they missed, their due cards, the lesson they should read next, or a question they can answer with a tap. Each tap lands where it says: a quiz already built, a screen, or a chat that starts from the card.
Code decides what is possible and true; one model call decides what is worth saying today and says it in the tutor's voice; code checks the result before the learner sees it.
The model picks components by reference; the app draws them from design-system parts. It can't put a number or an id in one.
| Component | What it shows |
|---|---|
question_set | The set an offer is about: topics, "4 missed of 10", source, when. From the offer's facts, never model text. |
flashcard_peek | How many cards, the topic, and the front of the shortest card (a cloze is blanked). |
lesson_peek | The lesson's title, subject and minutes. |
subject_bars | Readiness bars for the subjects the message names, with their trend. |
Buttons | One or two actions, the first primary. Each is an offer id. |
Chips | Replies: a check-in's answers, or "Something else" to answer in their own words. |
| Offer kind | Opens | Resolved as |
|---|---|---|
quiz_set | A quiz on the exact questions they missed | a test template made at tap time, one per card and offer |
quiz_topic | New questions on a subject or topics (PYQs where the course has them; five easier ones as a small win) | picked at tap time |
flashcards_due | Review of their due cards in this course | route |
flashcards_ids | Review of exact cards (forgotten 3+ times, never reviewed) | route |
lesson | A lesson by id | route |
game | A game on a subject where the course has it | route |
open_chat | The walkthrough chat they left, at the question they reached ("Pick up at Q3") | route to that chat |
chat | The tutor's chat, seeded: explain misses, cards from misses or a lesson, review cards, mini lesson, summary, plan the exam, check-ins | chat with a server-side plan |
Eval v5 at api 7928fbbe: 36 synthetic learners across the nine courses (the situations each course meets: misses, a lesson read, due cards, an exam passed, a walkthrough left part way, a new learner), one Gemini 3.5 Flash Lite compose each through the api's provider setup, one retry with the validator's errors, then the rules' card. A second model (Gemini 3.6 Flash) judges each valid card.
| Model | Runs | Valid first try | Valid after retry | Fallbacks | First call p50 / p95 / max | Whole compose p50 / p95 / max | Mean cost |
|---|---|---|---|---|---|---|---|
| gemini-3.5-flash-lite | 36 | 27 | 35 | 1 | 1453 / 2003 / 2098 ms | 1608 / 3323 / 4177 ms | $0.00122 |
| Model | Judged | Pass all four (person, times, claims, fit) | Mean voice (1-5) |
|---|---|---|---|
| gemini-3.5-flash-lite | 35 | 34 | 4.4 |
On staging, a cold open composes inline in 1.5-5 s; a stored card returns in about 0.1-0.2 s. At one fresh card per active learner per day, 10,000 learners cost about $12 a day.
Learner state: a PYQ set yesterday, 9 misses across two subjects
You had 9 misses in yesterday's PYQ set, 7 of them in Internal Medicine. Want to walk through them?








Learner state: read a lesson today, no questions on it since
You have 40 unreviewed flashcards in Antimicrobials waiting for you. Want to review them now?





Learner state: exam month set months ago, back after a break
Still aiming for December?






Learner state: a quiz four days ago, 3 misses; prefers flashcards
You missed 2 in Medication Administration Fundamentals and 1 in Mobility, Body Mechanics & Positioning 4 days ago. Want to walk through them?






Learner state: exam date has just passed
Your MCAT test date was 5 days ago. How did it go?






Learner state: a quiz three days ago, misses in Fixed Income
Fixed Income is where it slipped, with misses spread over 5 topics when you did the quiz 3 days ago. Let's work through them.






Learner state: a weak set yesterday, 7 misses
Of your 7 misses in Assessing Risk and Developing a Planned Response yesterday, 2 were in Materiality. Let's walk through them or try them again.






Learner state: new, told the tutor about a worry (pacing)
You mentioned running out of time on timed sections, so let's go at your own pace with Strengthening, weakening, and explaining: reasoning before speed. Start there, or talk it through first?






Learner state: retaker, misses in Contracts two days ago
You missed 4 in Contracts 2 days ago across formation, content, defenses, and performance. Let's walk through them.








No recordings yet.
Recordings come with the final version of this page.
Real: snapshot from staging data, offers with real ids, the model call through the api's provider setup, validation, fallback, caching, the act endpoint (test templates, flashcard ids, routes), the seeded chat with server-side turn instructions, analytics events. Seeded: the staging QA learners' history (wrong answers, lessons read, due cards, exam dates, memories) written by a staging-only script; flashcards are the course's own cards or built from the course's own plain MCQs, never another learner's. Not built: the Trigger.dev precompute (designed, not deployed), a persisted events table (Redis + PostHog only), games filtered by topic (games open on a subject where they can).
invite.snapshot.unit.test.ts).nav: "approach_b" literally, like the rest of approach-B Home; the card renders only there.Two councils (Claude Opus 5.5 and GPT-6.1-Sol), each with learner reviewers for a Rezzy, a Savvy and a Casey course and an engineering reviewer, fresh every round. The bar is 9/10 on both axes from both councils. Round 7 is in progress.
| Round | Opus learner | Opus engineer | Sol learner | Sol engineer | Top finding |
|---|---|---|---|---|---|
| 1 | 6 | 6 | 6 | 5 | Numbers on cards weren't all grounded in the data, and a late model could show a different fallback on every open. |
| 2 | 6 | 7 | 7 | 6 | A tap didn't always open what the button promised (quiz fills short of the count, due-card counts that drifted). |
| 3 | 6 | 7 | 7 | 7 | A quiz "on a lesson" opened loosely tagged questions; counts on buttons weren't exact against the bank. |
| 4 | 7 (7/7/8) | 7 | 8 (8/8/9) | 6 | A tap on a card replaced while it was on screen could fail; quiz resizing rewrote unrelated facts. |
| 5 | 7 (7/7/7) | 7 | 8 (8/8.5/8) | 7 | Check-in chips and timing ("results out yet?" five days after the MCAT); flashcard learners offered the wrong step. |
| 6 | 7 (7/7/7) | 7 | 8 (8/8/8) | 7 | Opening a walkthrough marked the whole set done, so Home moved on before the learner finished. |