projects / easemysemester / decisions
Coverage weighted by topic recurrence, declined questions excluded
v2's per-subject coverage bar weights a read question by its topic's paper count rather than counting questions flat, and drops the 82 declined questions from both sides of the fraction.
decision · current · updated 2026-09-15 · EaseMySemester case study
See overview, mobile PWA design and the build.
Context
The coverage strip is the app's only pull-back mechanic, so its percentage has to mean something. A flat count of questions read treats a high-yield topic and an obscure one as equal, which would let a student read thirty trivia questions and read as 40% prepared.
Decision
Weight a read question by its topic's distinct paper count, the same recurrence figure the band chips use, and divide by the same weighted sum over every answerable question in the subject. Declined questions, the 82 of 809 with no written answer, are excluded from both the numerator and the denominator, so a student who has read everything available reaches exactly 100 percent rather than capping in the high 80s or 90s.
Alternatives rejected
- Flat percentage of questions read. Rejected: discards the recurrence data that is the whole point of the product; produces near-identical, uninformative numbers whether a student read high-yield or trivial topics.
- Square-root of paper count as the weight. Rejected: no sentence explains it to a student, unlike "a question that came up in 11 of 23 papers counts eleven times as much as one that came up once."
- Leaving declined questions in the denominator. Rejected as a defect, not a formula choice: it caps every student below 100 percent (86 to 95 percent by subject) with no way to close the gap, since the missing answer is not something a student can act on.
Why
The weighting is stateable in one sentence and reuses the same recurrence number the band chips already show, so the coverage bar and the band chips never disagree on screen.
Consequences
When later answer work fills in some of the 82 declined questions, they enter the denominator and every student's percentage drops slightly. That is expected and worth a release note, not a bug report. The formula is pinned by a database test asserting a known read history produces a known percentage.
Status
Confirmed by the product owner 2026-09-09 as "B with declined excluded" and shipped the same day.