After the Count / 30 October 2026

Easier to enter.
Still demanding to think through.

Five independent novice-student perspectives and three faculty perspectives pressure-tested the same frozen game, then discussed the findings and the revision.

Open the revised game

This is an AI design review, not a human student study. The five novice roles use the perspective of ordinary 18-year-old first-year students, with different reading and use assumptions. They are not actual students, a representative Gen Z sample, or evidence of measured comprehension. The reviewers did not observe learning gains, enjoyment or completion times. Faculty roles are simulated analytical perspectives, not recruited professors.

What the pressure-test found

The central intellectual sequence held up: local victories versus national totals; ballot validity versus list qualification; net totals versus individual voter movements; and local seats inside a party’s overall allocation. Faculty checks found no major numerical error in the supplied comparisons. This was an internal consistency and inference review, not a fresh audit of every historical archive.

The remaining friction came mainly from entering without orientation, meeting technical words before their meanings, recovering context after a click, and assembling a demanding argument from scattered instructions. Several genuine record and navigation bugs also emerged.

FindingRevisionDemand retained
Country cards bypassed the briefingEvery fresh entry receives the same orientation, preserves the selected country and offers the recommended UK-first route.Four cases, four briefs and the final comparison.
Vocabulary arrived before meaningNeutral priority explanations; case-specific term controls with hover/focus previews, Escape dismissal and click/tap definitions; a persistent Terms panel; numbered NZ rule steps.Students still apply the technical concepts; core rules remain visible without opening a definition.
Percentages and models could be misreadUK seat/vote denominators and candidate-vote measurement; model boundaries beside writing; Israeli lists separated from parties and government partners; optional NZ overhang limit.Exact cutoff and net-change calculations, fixed-input assumptions and limits of inference.
Writing requirements were scatteredVisible, content-neutral argument plans; matching record labels; figures and supplied rules available while writing; no restrictive sentence ceiling.Two settings, mechanism, evidence, valued consequence, accepted cost, further evidence and developed opening inquiry.
Institutions could be conflatedEarly and final distinctions between dividing many assembly seats and selecting one president. Liberia’s heading and writing plan distinguish selection standards from changed November votes.A two-case argument that states what transfers and where comparison stops.
Saved work and filed work looked identical after editsCase ticks, counts, filing buttons and draft notices update immediately. Missing-field alerts focus the relevant control and persist beside it.Changed work still needs filing and, when appropriate, rechecking.
Returning students could resume the wrong taskContinue returns to the final draft after all four briefs. The notebook names and opens the same unfinished case. Browser Back/Forward retains current work and enforces stage prerequisites.Checks and comparisons cannot be bypassed by history navigation.
Evidence closed during a comparison or checkOpened records survive feedback, hint and model-setting rerenders.The student still interprets the record; access no longer depends on reopening it.
The apparent first thought or help history could changeOriginal submitted thoughts appear separately from current drafts, including print. Stage tabs capture the original too. Pass labels use help recorded before the successful submission; post-pass hints are disabled.Revision and assistance remain auditable without inventing a missing legacy history.
Clicks and exposure could imply understanding“Viewed settings” and “worked example shown” describe what was recorded. Optional fresh oral applications and an unresolved-check reminder support practice.Worked support permits progress; it does not certify unaided mastery. Instructors assess argument quality.

Decisions from the discussion

The panel did not agree that more compulsory tasks would improve this release. The final decision preserves the two-attempt supported path, the ordinary opening inquiry choices and instructor judgment. It adds no mandatory essay field, arbitrary word minimum, countdown or automatic political/prose score.

How the blind round worked

All eight reviewers received the same frozen student product from Site version 2, source commit dbd6dd8c773e55e9c3a836e1a1a4fd5e38ab7804. Their separate contexts omitted prior conversations and earlier reviews. Each read the complete permitted student flow and was instructed to keep the intellectual challenge. Instructor documents and the embedded earlier review report were excluded. The baseline source hashes are preserved with the project’s review records.

After all independent reports were complete, each reviewer read designated other reports, a discussion docket and the revised source. Their eight separate responses record agreement, dissent and remaining risks. This sequence supports independence from the previous review history; it does not turn simulated perspectives into human subjects.

Reviewer rolePrimary lens
Novice perspective 1First entry, task purpose and unfamiliar units
Novice perspective 2Percentages, tables and exact boundaries
Novice perspective 3Phone reading, interruptions and navigation
Novice perspective 4Feedback, engagement and evidence of understanding
Novice perspective 5Plain language and composing an argument
Faculty perspective 1Comparative electoral systems and model precision
Faculty perspective 2Measurement, inference and assistance chronology
Faculty perspective 3Introductory pedagogy and assessment validity

Verification and limits

The application retains the historical datasets, calculation engine, correct-answer values and legacy notebook format. Targeted regression checks address the actual bugs; browser checks address interactions the source harness cannot represent.

Automated calculation and behavior checks44 passed, 0 failed. Includes all four cases, exact arithmetic, legacy imports, new orientation, first-thought capture, help chronology, filing status, resume destination and history phase gates.
Browser: main gameVerified first-entry card orientation, chosen destination, keyboard definition preview and Escape, click definition panel, missing-field focus, exact comma-formatted cutoff, successful filing, immediate draft/tick update, notebook resume, native Back/Forward, preserved opened records and the full 40-list threshold table across settings.
Narrow screen390-pixel iframe test: viewport/document/body width 375 pixels after the vertical scrollbar, no horizontal page overflow, all displayed images loaded, 44-pixel term targets, readable click definition panel. This is a browser viewport check, not a real touch-device or screen-reader audit.
Standalone editionRebuilt as one HTML with embedded data, CSS, nine images and five instructor/report documents. Browser verified load, click definitions, changed threshold controls, loaded Blob image, JSON notebook download, original thought captured via stage tab, TXT instructor download, and the offline review-reading panel with all 16 independent/discussion records. HTML report downloads did not complete in this browser, so report links were changed to the verified embedded reading panel.
Human learning and timingNot measured. AI role reviews and source execution do not establish actual novice understanding, enjoyment, classroom completion time or unaided mastery.
Local assets and documentsAll referenced local image and instructor/report files exist. Embedded document bytes are checked against the matching source files. Existing external archive availability was not fully retested.

The optional overhang clarification was checked against the New Zealand Electoral Commission’s explanation of electorate seats, ranked party lists and overhangs. The 2020 case is kept separate from later elections. Existing historical source links retain their earlier audit limitations; this round does not claim all remote archives were retested or accessible.

What remains uncertain: whether actual introductory students understand the terms, use the optional help, explain mechanisms without copying, or complete the work in the planned time. The existing roughly 75-minute instructor plan is a planning estimate. An observed novice pilot and instructor reading of the arguments are still needed to establish suitability and learning.

The complete reviews and discussion

Each independent report is preserved separately from its later response. Their original wording can refer to defects that the revision subsequently fixed; the table above records the final disposition.

Novice perspective 1 · independent blind review

Independent novice-student pressure test

Reviewer perspective: a motivated 18-year-old first-year student with ordinary reading and numeracy, no political science vocabulary, and no prior knowledge of these countries. This is an AI source-based walkthrough, not a human student study. All likely interpretations below are inferences. No browser interaction, student quotes, or completion-time measurements are claimed.

I read REVIEW_SCOPE.txt first, then the student flow in app.mjs, data.json, elections.mjs, index.html, style.css, and photos.json. I did not open instructor documents, standalone HTML, embedded review reports, other reviews, or parent context. The app was not edited. The findings concern avoidable friction while retaining the analytical demands.

Overall assessment

The activity has a coherent intellectual progression: distinguish votes from seats, distinguish accepted votes from eligible lists, distinguish net changes from individual movements, and combine local and national rules. A novice can follow that progression with the supplied evidence. The main access problem is that navigation and terminology occasionally assume the orientation the student is still trying to acquire. The most useful changes would make the task and the units legible earlier, without supplying the answers or removing comparisons.

There are no critical blockers established by this source review. Two high-priority orientation issues and five medium-priority issues follow. High means a common entry path can miss essential orientation or require unfamiliar foundational language; medium means a recoverable ambiguity can redirect effort or weaken the argument.

What a novice is likely to understand at each stage

The opening rows address the requested first-five-minute lens; this is an anticipated early journey, not a claim that a student reaches any stage within a measured duration.

StageAvailable understandingLikely mistaken interpretation or uncertainty, inferred from the source
HomeFour real elections; investigate surprising outcomes, change a rule, defend a consequence. The archive button is an evident start.The equally clickable country cards may look like equally complete starts. The student does not know one route includes the assignment briefing and another bypasses it. “Seats,” “MPs,” and the numerical puzzles may still lack concrete meaning.
Assignment briefingFour repeated steps, individual notebook, political preferences are not scored, work saves locally, and submission requires export. The strategic-voting example helps distinguish a calculation from possible behavior.“National proportionality” and “local representation” invite value choices before their meaning is explained. A student may choose the most familiar-looking phrase rather than a considered priority.
UK first thoughtReform has a higher national percentage but many fewer seats than the Liberal Democrats; choose an investigative question. Optional free text has a low barrier.A student may treat the question as a graded rule quiz, or not yet know that MPs are people elected in many local contests. Technical alternatives such as “nationwide threshold” are unfamiliar.
UK evidence and checkThe rule and definitions explain constituency, seat, and plurality. Local examples connect first places to seats. R3 separates second place from a narrow margin.R3 must be opened to answer its question. The matching label makes this discoverable; the larger remaining uncertainty is how party totals relate to the individual candidates called MPs.
Check feedback and supportSpecific repairs identify the wrong reasoning; a hint and later worked representation support progress.Before the worked step appears, the student may not know that another unsuccessful submission opens a supported continuation. “Repairs” is less concrete than “attempts.”
UK labThe same votes can produce a very different comparison with national proportionality. Direct labels, common scales, and fractional-seat warnings are useful.“Benchmark” may still mean a proposed seat plan to a novice. The hybrid list-tier recommendation appears later without an example of that design in the lab.
Case briefChoose a rule, cite a record, explain evidence, acknowledge a cost, and name useful further evidence. Compared results remain available while writing.The student must assemble a fairly long checklist from several small-text prompts, then fit it into “two or three connected sentences.” Attaching a historical record may be confused with citing the lab calculation used in the explanation.
IsraelAccepted ballots and lists eligible for allocation are different. The integer cutoff tests the meaning of a boundary, not only percentage calculation. The lab makes excluded valid votes visible.“List” may mean a row of data rather than a party's candidates. “Fragmentation,” “coalition bargaining,” and the relationship between parties and government are not yet concrete enough to support an independent cost argument.
LiberiaA new election with two finalists differs from selecting October's leader. Smaller second-round participation and net gain do not identify individual vote flows.A student may initially confuse net gains with actual transfers; the activity directly addresses and repairs that error. The fresh-ballot labels and dates make this the clearest novice case.
New Zealand transferTwo votes and two qualification routes combine earlier ideas. Electorate seats fill part of the total, and list seats complete it. The changed Green example requires applying the rule.“Electorate,” “entitlement,” “list top-up,” and “MMP” arrive close together. In the brief, R3 is offered as a record even though the rule is not visibly labeled R3 in the evidence screen.
Notebook and final comparisonA final argument should compare two cases, specify the institution and a priority, state limits, and explain reconsideration.Opening Notebook during a case exposes the final assignment before the current case record. The next action can appear to be the final comparison even while four case briefs remain unfinished. “Assembly” is new language for the earlier Parliaments/Knesset.
Completion/export/revisitLocal save is distinct from submission; TXT, JSON and print remain available. Reopening a case is possible.The format distinction requires some digital knowledge, but the repeated instruction to download or print is clear. The label “Download / restore JSON” is less clear than the separate actual Restore JSON button. This is a minor polish issue, not a ranked finding.

Ranked actionable findings

1. A first-time country-card route bypasses essential orientation — High

Evidence: home() renders four cards with data-action="case" (app.mjs:82). The click handler at app.mjs:165 sends them directly to goto('case', ...). Only start checks for a fresh session and opens briefing() (163). The briefing contains the historical/model distinction, political-choice reassurance, partner instructions, priorities, and the local-save/export explanation (83).

Novice consequence, inferred: A student selecting a country card can enter without knowing the overall deliverable, how model results differ from historical records, or that local saving is not submission. New Zealand can be entered as the first case although its task assumes prior ideas.

Fix: On the first case-card entry, show the same brief orientation and preserve the chosen case as the destination. Make the recommended UK-first route explicit while still allowing deliberate navigation. Alternatively place the essential orientation in a short persistent first-entry panel shared by all entry routes.

Risk to rigor: None if this explains the workflow and evidence types without explaining the case mechanism. Do not lock the student into a long compulsory tutorial.

2. Basic units and values need plain-language glosses before use — High

Evidence: PRIORITIES is “National proportionality,” “Local representation,” “Majority support for a winner,” and “Access for smaller parties” (18). briefing() asks students to choose them without glosses (83). The UK opening context uses “650 MPs” and its first table uses “seats” (13, 87, 96); the seat/constituency/plurality definitions appear only in evidence() through TEACHING.background (13, 111). MP is not expanded there. Israel's background defines list PR through “party lists” without defining a list (14); fragmentation is defined only in brief(), after the lab has used it (114, 120).

Novice consequence, inferred: The student can make a preference selection or read a puzzle without a stable understanding of what is counted. Later, a concern about fragmentation can sound like a judgment that more parties are inherently undesirable instead of an issue requiring evidence.

Fix: Add short neutral glosses next to the opening priorities and basic table units. For example, national proportionality means seat shares broadly matching vote shares; an MP is a person elected to Parliament; a party fields candidates in many local contests. Define party list, coalition, and fragmentation at their first use. Keep detailed rule explanations after the first thought.

Risk to rigor: Low. Define the objects and vocabulary; preserve the student's job of working out the mechanism and defending its consequences. A glossary must be keyboard/touch accessible, not hover-only.

3. Notebook entry gives an unfinished student the final assignment before their current work — Medium

Evidence: header() and sidebar() prominently offer Notebook (79, 84); notebook goes straight to portfolio() (175). In portfolio(), the comparative brief and its completion control precede all case records (128). all changes the title and a return button but does not change that ordering. finish() only then explains that all four briefs must be filed (159).

Novice consequence, inferred: A student checking that their first answer saved may conclude that the comparative paragraph is the next required task. Locating the current case record requires going past the large final form. “Return to investigations” does not name the saved stage or make the current task visible.

Fix: When cases remain incomplete, lead with current progress, the current case record, and “Continue [country] — [stage].” Keep the final assignment available as a clearly labeled preview or collapsible draft. After four briefs, lead with the comparative task as now.

Risk to rigor: None. Retain advance visibility of the final goal and all existing writing requirements.

4. The writing checklist is scattered across prompts and understated by the length guidance — Medium

Evidence: brief() asks for two compared settings, a defended consequence, a cost, a record, a figure, confirmation/revision of the first thought, and separate further evidence, while saying “Two or three connected sentences are enough” (120). New Zealand also requires a connection to an earlier case. portfolio() adds a figure from each case, rule, accepted cost, fixed input, possible strategic response, and limits of cross-institution comparison under “A short paragraph is enough” (128). The initial briefing only previews a “short recommendation” (83).

Novice consequence, inferred: A student may write a sensible one-setting recommendation and discover several obligations only while filing it. Others may treat the paragraph length as a stronger instruction than the reasoning requirements and omit the first-thought revision or comparison limits.

Fix: Show a compact visible checklist above each writing box, with the same terms used in feedback and the final task. Separate the paragraph's jobs into a neutral optional structure: choice; comparison with numbers; mechanism and valued consequence; cost/limit. Explain the final comparison requirements in the assignment overview. Retain the further-evidence prompt.

Risk to rigor: Low if the structure is content-neutral. Do not provide a case-specific completed paragraph or require formulaic sentence counts. Keep all reasoning demands.

5. Record labels and the historical/model citation task do not fully line up — Medium

Evidence: The New Zealand source choices are “R1 Party votes and final seats,” “R2 Electorate wins and list top-ups,” and “R3 The 5% or electorate qualification rule” (16). Its full table is captioned R2 in historicalTable() (91), and its rule is shown in an unnumbered rule-box (111); no visible R3 rule heading is rendered. Across all briefs, the source field says “Attach the historical record you are using” even though the explanation may use a figure from “records or lab” and must compare lab settings (120).

Novice consequence, inferred: A student can select the record that sounds closest without being able to point back to it. A fractional benchmark or alternative threshold result can be mentally filed as a historical result because the required attachment only offers historical-record labels.

Fix: Give every citeable record a stable matching on-screen label, including the supplied rule. Make historical evidence and lab comparison evidence separately nameable, or have the comparison card automatically carry a model citation while the student chooses a historical record. The student should still justify why the evidence supports the claim.

Risk to rigor: None; this strengthens the intended source-evaluation task rather than automating relevance judgment.

6. The UK hybrid recommendation needs a small explanatory bridge — Medium

Evidence: ukLab() compares observed local results with a “National proportional benchmark,” explicitly fractional rather than an actual reform (113). brief() then offers “Keep local MPs and explore a compensatory list tier” as a third recommendation. The only bridge is “uses list seats to top up parties underrepresented by local victories” (13, 120); its cost prompt adds list selection, compensation, and accountability.

Novice consequence, inferred: The student may treat the hybrid as a compromise that automatically provides both benefits, or avoid it because they have not seen what a list seat is yet. The lab does not show a concrete hybrid setting whose consequences can simply be read off.

Fix: Add a short optional design card explaining in plain language that local winners keep seats and additional party-list places can compensate for underrepresentation. Explicitly say this option is an exploration requiring further rules, and ask what evidence/design choices would be needed. Reuse the New Zealand top-up idea later as a connection, not as a claim that the UK option is identical.

Risk to rigor: Moderate only if the card implies that the fractional benchmark supplies the hybrid's actual seat totals or erases design costs. Avoid exact unmodeled claims; keep the student responsible for the trade-off.

7. Make the supported route visible before a student has to fail twice — Medium

Evidence: evidence() has a disabled next button until a successful check or two submitted attempts, plus a hint button (111). check() displays a worked representation after two unsuccessful submissions (149); nextEvidence() and phase navigation describe “two repairs” (154, 166). The clearest advance explanation is in the optional How it works modal: “after two unsuccessful attempts” (188).

Novice consequence, inferred: A student stuck on whole-vote rounding can see an inactive next step without knowing whether assistance can eventually let them continue. “Repairs” can mean corrected answers rather than a submitted attempt. Knowing the support route exists would reduce uncertainty without reducing the calculation task.

Fix: Put a short persistent line beside the check controls: submit your interpretation; use the feedback or hint; after two unsuccessful submitted attempts a worked example lets you continue with support recorded. Use one term consistently for attempts. Keep the worked example hidden until the chosen support point.

Risk to rigor: Low. This changes the visibility of the existing route, not the answer standard or evidence recorded. Avoid presenting failure as a target to click through.

Strengths to preserve

  • The first-thought free text is optional, and political recommendations are explicitly not scored by preference. This supports participation without removing later evidence requirements.
  • The same four-stage rhythm lowers procedural learning costs across unfamiliar countries. Case titles and country/year threads preserve orientation when the large heading changes.
  • Records are selected and labeled as selected. The UK seat total, exact Israel denominator, and Liberia dates help students track the unit rather than memorize outcomes.
  • Specific feedback targets substantive errors: second place is not closeness, ballot validity is not eligibility, and net gain is not a tracked voter transfer. These are rigorous, transferable distinctions.
  • The worked representations change form and allow supported continuation with support retained in the notebook. Numeric inputs accept commas and whitespace (numeric(), 57), reducing irrelevant formatting errors.
  • Labs state their limits, use exact counts for qualification, preserve historical records, and distinguish fractional benchmarks from seat allocation. The engine's threshold calculation rounds the boundary upward exactly; the New Zealand lab preserves direct local winners.
  • Direct chart labels and common scales reduce the need to decode a legend. Compared results remain available in the brief and selected final cases can reopen their figures.
  • Liberia is especially legible: new dates, fresh ballots, two finalists, distinct vote pools, and explicit warnings about unknown individual movements all reinforce the same mechanism.
  • The New Zealand Green question changes the number of local wins while holding the total entitlement at ten. It demands application rather than copying the displayed 1 + 9 result.
  • Save, export, and submission are distinguished repeatedly, including “Nothing is sent to your instructor automatically.” This clarity should be retained on every entry route.

Concise definition list

These need inline, click, or accessible glossary definitions at first use. Some are already defined later; moving a neutral gloss earlier is sufficient.

TermSuggested plain-language gloss
MP / seatAn MP is an elected member of Parliament; a seat is one member's place.
Parliament / Knesset / assemblyA body of representatives who make laws; Knesset is Israel's Parliament.
National vote shareA party's votes as a percentage of all the counted votes across the country. Specify the relevant valid-vote denominator.
National proportionalitySeat shares broadly matching parties' vote shares.
Local representationA representative elected for a particular area.
Constituency / electorateA local electoral area; in these examples it elects one local representative.
Plurality / majorityMore votes than any other individual competitor / more than half of the relevant valid votes.
Party list / list seatA party's group of candidates for allocated seats / a representative elected through that list route.
Threshold / eligibility / allocationThe entry boundary / whether a party can enter the calculation / the rules deciding how many seats it receives.
Valid ballot / invalid ballotA ballot accepted for counting / one not accepted under the counting rules.
BenchmarkA reference point for comparison; here decimals do not constitute a complete plan for actual seats.
Compensatory / top-upAdditional list seats intended to bring a party's overall representation closer to its allocation.
FragmentationRepresentation spread across more separate parties or lists.
Coalition / coalition bargainingParties cooperating to form or support government / negotiating the terms of that cooperation.
AccountabilityHow voters can identify who is responsible and reward or remove them.
Runoff / net changeA fresh ballot between a smaller set of candidates / the difference between two totals, without identifying people.
MMP / total entitlementMixed-member proportional representation / the overall number of seats allocated to a party before subtracting its local seats to find list top-ups.
Fixed input / strategic responseSomething the comparison holds unchanged / how voters, candidates, or parties might act differently under different rules.

The appropriate next validation is a novice walkthrough that asks students to explain the current task, the counted unit, and what they would click next. This report provides hypotheses for that observation; it does not establish their frequency or measured impact.

Novice perspective 1 · group discussion response

Novice reviewer 1: group discussion

I agree with the docket’s main direction. The current case-card handler now sends first-time users through the briefing while preserving their selected country. PRIORITY_HELP, the assembly/presidency explanation, and caseTerms() address my largest orientation concerns. The visible argument plans replace the earlier compressed sentence allowance without removing any required reasoning. Faculty reviewer 1’s distinction between distributing seats and choosing one person is now explicit. Novice reviewer 3’s interruption concerns are also well founded; retaining opened records and distinguishing a saved draft from a filed brief protect the student’s evidence context.

My concrete disagreement is with faculty reviewer 1’s proposal to require another explanatory line alongside the opening choices. I support the current treatment of those choices as low-stakes inquiry orientation. The later numerical checks, changed Green example, evidence-based brief, and further-evidence prompt already require application and explanation. Another mandatory prose field would add repetition without establishing independent understanding. Keep uncertainty expressible in the optional opening note and assess what evidence adds to the inquiry.

One remaining navigation refinement: the notebook’s new “Your next step” card uses S.caseIndex and that case’s lastPhase. If a student reopens an already filed case while another remains unfinished, it can direct them back to the filed case. Prefer an unfinished case for that card, or label the action “Return to the case you were viewing.” The visible final-draft preview is now clearly explained; this residual issue is recoverable, not a publication blocker.

These revisions preserve rigor. Definitions identify the objects; students still explain the mechanism, calculate exact boundaries, compare settings, accept costs, and state evidential limits. I also support continued access after two meaningful unsuccessful submissions, with support exposure recorded accurately rather than presented as mastery.

I identify no additional publication blocker from this source review. The tooltip and modal CSS still require root’s browser verification; I have not tested actual positioning or keyboard behavior. These judgments remain AI analytical inferences, not classroom findings.

Novice perspective 2 · independent blind review

Independent novice-student pressure test: After the Count

Perspective: an average 18-year-old first-year student who reads ordinary prose, can do basic arithmetic, has low confidence with percentages and tables, and knows none of the countries' electoral systems. This is an AI analytical walkthrough of the frozen student source, not an observed student study. No browser interactions, student quotations, completion times, or empirical success rates are claimed.

Scope: REVIEW_SCOPE.txt, the complete student app.mjs, data.json, elections.mjs, index.html, and style.css. The exact historical records and displayed model outputs were followed through the source; model arithmetic was also evaluated directly from the supplied election module. No instructor files, standalone product, embedded review report, other reviews, or parent project material were consulted. The frozen product was not edited.

Overall judgment

The central reasoning is attainable without country knowledge. The puzzles are concrete, the four-stage rhythm repeats, rules appear with the evidence, and the lab results are carried into the writing screen. A novice can learn that national vote totals do not directly award UK seats, valid Israeli ballots can support an ineligible list, a Liberian runoff is another ballot, and an NZ local win can open an additional eligibility route. The requirement to defend a consequence and accept a cost is a useful form of rigor to retain.

The main avoidable burden is translating between names, units, and stages while also learning the mechanism. In particular, the exact Israeli cutoff calculation can become a confidence barrier, several prerequisite terms are used before they are explained, and the UK lab asks students to infer the denominators behind two different percentages. These are presentation and scaffolding problems; reducing the intellectual standard of the recommendations is unnecessary.

Ranked findings

1. High: the Israeli gate combines threshold understanding with an unscaffolded exact percentage-and-rounding task

Evidence. CHECKS.israel2022, app.mjs:106, asks: “Using 4,764,742 valid votes, what is the minimum whole-vote cutoff at 3.25%?” answerCorrect() at line 59 accepts only the exact numeric value 154855. The operation “4,764,742 × 3.25 ÷ 100” and instruction to round up are in the repair text; the optional hint can reveal them before submission, and the complete calculation appears in worked() at line 110 after two unsuccessful checks. evidence() at line 111 and goto() at line 136 gate normal lab access on the check or the supported path. There is a hint button, so students are not forced to fail twice to receive any help.

Novice consequence. A student can correctly understand that Meretz's accepted votes fell below an entry threshold but enter 154,854 after ordinary rounding, 154,854.115 without interpreting a whole vote, or 15,485,411.5 after omitting division by 100. These are different misunderstandings; all initially look like failure of the combined check. The long valid-vote total also invites transcription errors. The app repairs the error, but the support is framed as a hint or an unsuccessful attempt rather than an ordinary quantitative tool.

Concrete fix. Put an optional “Help with the percentage” control beside this question, showing the expression with the recorded total already inserted and allowing a calculator. Separate the response into “which total is the denominator?”, the computed value, and “which whole count first reaches it?” Keep an explicit vote-count unit beside the entry. Feedback should distinguish a wrong denominator, a percentage-conversion error, and a rounding-direction error where possible.

Rigor preserved. Still require valid rather than all cast votes, the at-least boundary, and why rounding down would fail. Still require the student to explain validity versus list qualification and to evaluate the representation cost. Supporting the multiplication does not answer those questions.

2. High: prerequisite vocabulary appears before a novice can make an informed choice

Evidence. PRIORITIES, app.mjs:18, is presented in briefing() at line 83 as “National proportionality,” “Local representation,” “Majority support for a winner,” and “Access for smaller parties,” without explanations. The first UK context at line 13 uses “MPs”; its later background defines a seat as “one MP's place in Parliament” but never expands MP. The Israel mechanism is “Thresholds in list PR,” and its background says that list proportional representation allocates seats among “party lists,” without a plain definition of a list. The NZ first thought at line 16 uses “local electorate” before record() at line 101 defines electorate. portfolio() at line 128 introduces “Electing an assembly.” The app offers helpful definitions of plurality, majority, runoff, net change, constituency, fragmentation, and compensatory list tier, but they do not cover all of these entry points.

Novice consequence. The introductory priorities can become guesses about appealing words. Later, “list” can be read as a table row, a party itself, a ballot, or a category of seats. A student can read the NZ rule aloud without understanding who fills a list seat. “Assembly” adds another name at the moment students must distinguish many representatives from one presidential winner.

Concrete fix. Add short inline definitions at first use, with optional tap/keyboard-accessible expansion for detail. For example: “MP: an elected member of Parliament”; “party list: a party's ordered candidates for seats filled through the party-vote rule”; “national proportionality: parties' shares of seats broadly match their shares of nationwide votes”; and “assembly: a body of many elected representatives.” Explain “Knesset” as Israel's national parliament. Label the NZ option “a local voting district (an electorate)” on its first appearance. Keep familiar short names afterward.

Rigor preserved. Definitions supply referents, not evaluations. Students must still decide which goal matters, apply the rules, and defend trade-offs. No political preference becomes the correct answer.

3. High: the UK lab leaves the denominators of its paired percentages implicit

Evidence. ukLab(), app.mjs:113, displays, for Reform, “Actual seats: 5 seats · 0.77%” and “Recorded votes: 4,117,610 · 14.29%.” The bar axis is 0–100%, and the common scale is explained. The first percentage is calculated as seats ÷ 650; the second is votes ÷ 28,809,340. Those denominator labels do not appear beside these values. The benchmark then shows “92.90 fractional seats · 14.29%.” The exact denominator 28,809,340 appears in the calculation below the benchmark, while the 650-seat total previously appears in historical context and a table caption.

Novice consequence. A low-confidence reader must supply what each percentage is *of* and why counts of votes and seats can be put on one percentage scale. The bare juxtaposition can be misread as 0.77% of votes or 14.29% of constituencies won. The product already distinguishes actual versus fractional benchmark seats well; the remaining difficulty is unit reconstruction. A student who subtracts shares in their prose may also describe a percentage-point difference as a percent increase, although no current check explicitly requires that subtraction.

Concrete fix. Label the paired figures “Seats: 5 of 650 (0.77% of Parliament)” and “Votes: 4,117,610 of 28,809,340 (14.29% of UK valid votes).” In the benchmark, write “92.90 of 650 fractional benchmark seats (14.29%).” Add a tiny optional number-help definition: a percentage is a share out of 100; subtracting two percentage shares gives a difference in percentage points. Keep the shared bar scale and direct values.

Rigor preserved. Students still explain why local victories, rather than nationwide share, produced the historical seats and why fixed recorded votes are not a prediction. Explicit denominators strengthen the intended quantitative comparison.

4. Medium-high: the NZ lab's binary allocation label requires students to mentally merge a separate local-seat exception

Evidence. nzLab(), app.mjs:116, has columns “Party share,” “Electorate wins,” and “In proportional allocation?” The Māori Party changes from Yes to No when the pathway is removed. A prominent callout correctly says: “The Māori Party's directly elected MP keeps the electorate seat in both settings.” formatLab() at line 124 also preserves that distinction. The rule and CHECKS.nz2020.q3 at lines 103–108 correctly make electorate seats part of the total entitlement, with 3 electorate plus 7 list seats completing a fixed total of 10.

Novice consequence. “No” in a table about representation can be read as “gets no seats,” particularly after Israel's qualification/no-seat case. The callout explicitly corrects that interpretation, so this is a residual integration burden rather than an incorrect rule. The novice must connect a binary label, a local-win count, a qualification rule, and a separate sentence to work out what remains represented. “Exact alternative totals ... not calculated here” may make a cautious student unsure whether they may even state that the direct seat remains.

Concrete fix. Rename the final column “Eligible for party-list top-up?” or give a two-part status: “No list allocation; directly won seat retained.” Keep the callout. Show the Māori row's fixed local component visibly in both settings, and place “No complete alternative seat allocation is modeled” specifically beside the nationwide totals limitation. Do not manufacture new totals for other parties.

Rigor preserved. Retain the 5%-OR-local-win inference, Green's fixed-total transfer check, the comparison with NZ First, and the requirement to justify unequal routes to representation. The change makes the stage boundary explicit without solving the normative decision.

5. Medium-high: the final paragraph carries many separate requirements with little planning support

Evidence. portfolio(), app.mjs:128, asks students to choose an institution, one priority, and two cases, then use a figure from each case, explain a rule, accept a cost, state one fixed input, name one possible voter or party response, and explain the limits of a presidency/assembly comparison when relevant. The helper ends “A short paragraph is enough.” finalEvidence() at line 127 reopens comparisonCard() outputs, not the selected cases' rule definitions, recorded explanations, or full fixed-input notes. Those materials remain available elsewhere in the notebook or case screens.

Novice consequence. The quality of the final synthesis can depend on keeping a long checklist in working memory and navigating back to retrieve distinctions. A student can state two correct numerical results and a preference but omit the mechanism, fixed input, or comparison limit. Conversely, they may produce a list of disconnected sentences to satisfy every item. Choosing “Both” still supplies one unadapted argument box for two separate institutional rules.

Concrete fix. Provide a compact optional plan alongside the same final text box: “My rule and goal”; “case A number → mechanism”; “case B number → mechanism”; “accepted cost”; and “fixed input, possible response, and comparison limit.” When an institution is selected, show one sentence explaining the relevant comparison: many seats versus one winner. Include the selected case's rule and fixed-input summary beside its existing figures. For “Both,” offer two clearly labeled subprompts within the planning aid, then let the student compose a connected final argument.

Rigor preserved. Keep every substantive requirement and instructor judgment of the argument. Scaffolding organization does not supply a recommendation or excuse an unsupported comparison.

6. Medium: UK local-record columns repeat the winning count and omit a visible completeness warning

Evidence. record('uk2024'), app.mjs:98, renders “Constituency,” “Winner / votes,” “Reform,” and “Lib Dem.” Clacton's 21,225 appears both in “Winner / votes” and “Reform”; Woking's 24,019 appears both in “Winner / votes” and “Lib Dem.” The table does not display all local candidates or a local valid-vote total. sourceLinks() at line 95 correctly says that the local records are selected illustrations and other candidates competed, but that warning is inside the collapsed “Sources and record notes” section.

Novice consequence. Students with weak table confidence may treat the numeric columns as distinct vote pools and add a winner's count twice. They may also assume the displayed candidates exhaust a contest and infer a local percentage from an incomplete denominator. That would undermine the local plurality-versus-majority distinction even though the rule text is correct.

Concrete fix. Put “selected candidate counts; do not add the winner label as another vote pool” immediately at the table, or redesign each constituency row with separate winner identification and clearly labeled selected counts. A compact expandable full-result row can expose the local valid total and other candidates without crowding the first view. The supplied election module already contains those totals and results.

Rigor preserved. Still ask students to identify first place and distinguish a rank from a margin. No need to replace the three selected constituencies with an exhaustive national table.

7. Medium-low: record labels drift across the display and citation selector

Evidence. In TEACHING.nz2020.sources, app.mjs:16, R1 is “Party votes and final seats,” R2 “Electorate wins and list top-ups,” and R3 “The 5% or electorate qualification rule.” historicalTable() at line 91 gives the full party/electorate/list/total table the caption “R2 · Final archived 2020 result, selected parties”; the rule box is not visibly labeled R3. The initial R1 is only the two-party puzzle. In Liberia, the citation selector offers “R3 Participation and net changes,” while the displayed net-change candidate table is under R2 and the participation-pool table under R3 (record(), line 100). brief() at line 120 requires attaching one historical record even when the argument's key comparison is a lab result.

Novice consequence. A student can know which number or rule supports the claim but spend effort mapping it onto a differently named record. For NZ, choosing R3 requires realizing that an unlabeled rule box is the named record. For Liberia, citing R3 for the +17,520 figure follows the dropdown wording but points to a different displayed table. This is a citation-navigation burden, not a failure to reason from evidence.

Concrete fix. Use one shared record ID/title everywhere: evidence heading, caption, citation selector, and notebook export. Give the supplied NZ rule a visible R3 label. In the brief, state that the lab comparisons are attached automatically and the selector identifies the historical evidence underpinning them; allow two historical records when the explanation uses both.

Rigor preserved. Continue requiring a traceable evidence source and explaining what it establishes. Make the reference reliable rather than removing source work.

Walkthrough of all four cases and final writing

StageWhat a novice can understand from the supplied materialDeliberate misunderstanding checked analyticallyRemaining burden / boundary
OpeningFour real elections create puzzles; save an initial idea, inspect evidence, change a rule, write a recommendation. Preferences do not earn points. Historical records and counting models are distinguished.Treating a lab as a forecast of what voters would do under reform. The briefing explicitly warns that behavior can change.Terms in the priority choices need first-use definitions. The two kinds of evidence are described accurately but with several abstract terms at once.
UK first thought and evidenceReform has a larger national vote share than the Liberal Democrats but fewer seats. Each constituency elects one candidate; local first places determine party seats. Two interpretation questions separate local counting and second-place rank from closeness.Multiplying national share by 650 as the historical rule; awarding second-place seats; treating 98 second places as 98 narrow losses. The checks directly reject all three.MP is not expanded. The selected local table duplicates some counts and does not show a complete vote pool.
UK lab and briefThe actual and benchmark settings are visibly distinguished. Labour's 411 actual seats compare with 219.05 fractional benchmark seats; Reform's 5 with 92.90; the Liberal Democrats' 72 with 79.40. All use the same scale. The brief can defend local linkage or closer national vote-seat matching while accepting a cost.Treating 92.90 as an implementable whole-seat result or a vote forecast. The model explicitly calls the numbers fractional and states its limit.Separate seat and vote denominators need direct labels. A compensatory list tier is defined in the brief but is an exploratory design option, not a third modeled result; retain that distinction.
Israel first thought and evidenceAccepted ballots and qualifying lists are separate stages. Meretz's 150,793 valid votes and 3.16% do not reach 3.25%; qualifying lists can still receive different numbers of seats.Calling those ballots invalid; assuming qualifying lists receive equal seats; using all 4,794,593 cast ballots rather than 4,764,742 valid votes. The records and questions address these distinctions.The exact cutoff task also tests percentage conversion and ceiling, which need ordinary support. A party list needs a plain definition.
Israel lab and briefAt 2%, 12 lists qualify and 127,990 valid votes (2.69%) support nonqualifying lists; at 3.25%, 10 qualify and 417,400 votes (8.76%) do; at 5%, 6 qualify and 1,179,861 votes (24.76%) do. Cutoffs are 95,295, 154,855, and 238,238. A lower barrier expands access in these fixed recorded votes.Reading the excluded share as invalid votes, seats lost, or a guaranteed government-instability measure. The lab says valid votes, eligibility only, no alternative seats, and cautions that list counts do not prove instability.In the first reading, show “share of all valid votes” as a unit rather than relying on a multi-line descriptor. The meaningful choice remains representation access versus a justified fragmentation concern.
Liberia first thought and evidenceNeither October leader won more than half. The top two faced a new November ballot. Boakai gained 17,520 votes in net terms while the valid-vote pool fell by 226,121.Assuming automatic transfers; interpreting +17,520 as exactly that many eliminated-candidate supporters switching; assuming the two rounds had identical voters. These are directly and correctly rejected.Basic subtraction is proportionate here. “Net change” is clearly defined. “Valid votes” and each date remain important labels.
Liberia lab and briefApplying plurality to the fixed October record selects Weah at 43.83%; the historical runoff selected Boakai at 50.64% of November valid votes. There is an explicit extra voting opportunity and an extra administrative/participation cost.Calling 50.64% a majority of all eligible citizens, comparing the two decisive percentages as shares of one identical pool, or treating the runoff as a fixed-vote recalculation. The setting labels and explanatory text prevent those claims when read.The novice should repeat the relevant denominator/date when writing. A seven-point-looking share rise is not the same thing as the 17,520-vote net gain. No current question requires calculating a percentage change.
NZ first thought and evidenceMāori Party has 1.17% and two seats; NZ First 2.60% and none. The supplied rule gives two eligibility routes: 5% or a local electorate win. Green's fixed total of 10 with three local wins needs seven list seats.Assuming 1.17 exceeds 2.60, local seats are an extra bonus on top of total entitlement, or any two seats are guaranteed. The checks address all of these.Vocabulary and stages are densest here: two votes, two seat components, eligibility, total entitlement, and an exception. The factual rule can remain complex; the names need simple definitions.
NZ lab and briefKeeping the pathway admits the Māori Party to proportional allocation; removing it preserves its directly elected MP while removing its below-threshold route to list allocation. NZ First meets neither route. The cost can concern unequal entry routes or reduced small-party representation.Carrying Israel's “not qualified means zero seats” shortcut into NZ; erasing the direct Māori seat; inventing exact alternative allocations for every party. The callout explicitly rejects direct-seat erasure and the model states its scope.Show the retained local seat in the changed-setting table itself. Keep the request to transfer a lesson from an earlier case rather than simply repeat the supplied OR rule.
Final briefStudents choose an assembly, president, or both; select a priority and two cases; use evidence to defend a rule and say what might change their mind. Reopening compared figures reduces memory demand.Treating a presidential majority rule as a method of distributing parliamentary seats; confusing a fixed counting effect with actual strategic responses; using two numbers without explaining a mechanism. The helper explicitly asks for these distinctions.A compact planning aid and selected rule/fixed-input summaries would support the required synthesis. “Short paragraph” currently hides a large bundle of requirements.

Vocabulary support that would help without flattening the task

Use definitions where the word is first needed, not a long mandatory glossary. They should be reachable by touch and keyboard as well as hover.

TermSuggested short definitionCurrent status
Seat / MPOne elected representative's place; MP means member of Parliament.Seat has a definition; MP needs expansion.
Constituency / electorateA local voting district that chooses a representative.Both are eventually defined; electorate should be glossed earlier.
National vote shareA party's votes across the country as a share of the relevant valid votes.Used repeatedly; denominator should be explicit beside the number.
National proportionalityParties' shares of seats broadly match their shares of nationwide votes.Needed at the opening priority choice.
PluralityMore votes than any one competitor; it can be below half.Already supplied clearly. Retain.
MajorityMore than half of the stated vote total.Already supplied clearly; attach the specific pool when used.
Valid ballot / voteAccepted in the count; it can still support a list that fails an entry rule.Already explained clearly in Israel. Retain.
Party list / list seatA party's ordered candidates; a list seat is filled through the party-vote allocation rather than a directly won local contest.“List” is assumed more than defined.
Threshold / eligibilityA boundary a party must reach to enter a specified allocation stage; qualifying does not itself determine exact seats.Mechanism is well explained; make the affected stage part of the label.
Top-up / entitlementSeats needed to fill the party's allocation after counting its directly won local seats.Supplied but several technical words explain each other; one plain numerical example helps.
Fixed inputA value the model deliberately keeps unchanged while another rule is compared.Modeled accurately; the plain term should accompany “fixed.”
Benchmark / fractionalA comparison standard; decimal seat numbers measure a share-based comparison and are not literal parts of an MP.Important for UK. Definition can be optional beside the first fractional output.
Percentage pointThe difference between two percentage shares, such as 5% minus 3% = 2 percentage points.Useful optional number help; do not imply the current checks require this calculation.
Net changeLater total minus earlier total; it does not identify the people moving in or out.Already supplied particularly well. Retain.
Fragmentation / coalitionRepresentation spread among more parties; a coalition is parties agreeing to govern together.Fragmentation is defined in the brief; coalition bargaining needs a plain gloss.
Assembly / KnessetA body of many representatives; the Knesset is Israel's national parliament.Useful for no-country-knowledge students and the final institutional choice.

What to retain

Retain the actual-versus-model tags, fixed-vote limitations, persistent compared-results cards, specific interpretation repairs, and the supported continuation path. Retain “rank is not margin,” “valid is not qualified,” “net gain is not individual transfer,” and “local plus list fills a total” as central reasoning. Retain the distinction between a presidential winner and an assembly's distribution of seats. Retain open recommendations and their accepted costs; the app appropriately avoids grading the political preference itself.

These findings identify plausible source-supported failure points for this novice profile. They do not establish how often actual students encounter them; that requires a classroom or student usability study.

Novice perspective 2 · group discussion response

Novice student 2: discussion after the blind reviews

I agree with faculty_pressure_1 that the central challenge is understanding the institutional job and the measured quantity, and with novice_student_4 that recorded clicks must not imply learning. The current briefing(), priority glosses, ukLab() denominator labels, staged NZ displayRule(), retained-electorate column, and visible argument plans address my main novice concerns. The terminology CSS supports focus and touch-sized controls; the required rules remain readable without opening definitions. This assessment is source-based, not a browser test.

One remaining risk is percentage confidence in Israel. evidence() now explicitly welcomes a calculator, but the conversion and upward-rounding instruction still sit inside the hint/repair route. I recommend an optional “Help with this percentage” control beside the numeric question, showing the expression and asking why the minimum whole count rounds upward. This should support the unchanged exact answer, not replace it. Another small refinement remains in record('uk2024'): “Winner / votes” repeats the same count in a party column for Clacton and Woking. Add a visible selected-counts warning or separate winner identification from vote pools; the current completeness warning is still inside source notes.

I disagree with making faculty_pressure_1’s proposed one-line opening explanation mandatory in every case. The revised inquiry framing accurately describes the existing low-stakes choice. Novice_student_4’s optional causal prompt, the existing hunch, and the later required explanation provide a better place to develop reasoning without multiplying completion requirements. Likewise, retain supported continuation and its honest notebook status; an additional test gate would not by itself establish understanding.

These changes preserve rigor: students still calculate the cutoff, distinguish rank from margin and net totals from voter movements, explain fixed inputs, defend a consequence and cost, and limit cross-institution comparisons. I found no publication-blocking academic error in the inspected revision. The remaining refinements concern access and measurement clarity, not removal of substantive demands; actual effectiveness remains untested with students.

Novice perspective 3 · independent blind review

Independent novice student review 3

Scope and method

I reviewed the frozen student product in blind_product: REVIEW_SCOPE.txt, the complete index.html, app.mjs, style.css, data.json, elections.mjs, and photos.json. I did not open instructor files, the embedded or standalone review, other reviews, or a browser. This is an independent source-based walkthrough, not a student observation or a browser accessibility audit.

The lens is a first-year student with ordinary academic ability, little assumed electoral vocabulary, and a reasonable chance of scanning on a phone or returning after interruption. This is a usage assumption, not a claim about every 18-year-old. Potential confusion below is explicitly an inference. Confirmed mechanics come from source, with three additional isolated Node state probes of the application functions using DOM stubs: stage-tab first-thought capture, continuation after an unfinished comparative draft, and completion invalidation after a brief edit. Those probes do not establish visual layout or assistive-technology behavior.

Ranked actionable findings

1. Editing a filed brief silently leaves the visible completion marks behind

Severity: Medium. Confirmed state/display inconsistency; the student consequence is inferred.

inputEvent() at app.mjs:196–198 sets c.filed=false and S.final.complete=false when a check answer, recommendation, explanation, source, or next-evidence field changes. It does not refresh the case navigation or the filing button. sidebar() (app.mjs:84) and brief() (app.mjs:120) only calculate their ticks and “Update brief & continue” label when rendered. The isolated state probe confirmed that editing a filed brief's reason changes filed to false while the page markup remains unchanged and still contains the old update button. The save indicator continues to say “Saved in this browser.”

Likely experience: a student making a small correction can reasonably think the tick still means the revised work is filed. On the next notebook visit, the same case becomes “In progress,” without the editing page having explained that transition. This matters particularly after returning to a completed case.

Fix: update the affected case tick/count immediately and show “Changes saved as a draft. File this updated brief when ready,” with the button changed to “File updated brief.” Distinguish saving from filing. Keep the existing recheck/refiling requirements; the fix clarifies their status without reducing the evidence demanded.

2. “Continue your investigation” does not return to an unfinished comparative brief

Severity: Medium. Confirmed navigation behavior; disorientation is inferred.

The start handler (app.mjs:163) goes to the portfolio only when S.final.complete is already true. Otherwise it opens S.caseIndex and that case's lastPhase. goto('home') overwrites the view without retaining a separate return target (app.mjs:135–138). A state probe with all four briefs filed, a saved comparative draft, and final.complete=false confirmed that portfolio → Case index → Continue opens New Zealand, phase 3, rather than the comparative draft. The draft remains saved; this is a route problem, not confirmed data loss.

Likely experience: a returning student sees the last country’s “Defend your choice” and may think there is still a case task to finish, although the next unfinished task is the comparison.

Fix: retain a last-work target separately from the index, or route to the portfolio whenever all cases are filed. Label the home action with its destination, such as “Continue your comparative brief” or “Resume Israel · Evidence & rule.” Keep all four case briefs and the comparative argument required.

3. Checking, requesting help, and changing a rule rebuild the page and close opened records

Severity: Medium. Confirmed source mechanics; the reading interruption is inferred.

render() replaces all of #app.innerHTML (app.mjs:129–133). Both check() and the hint/set-model handlers call it (app.mjs:151, 169, 171). The state does not retain which <details> records a student opened. Consequently an opened UK R3, source note, or the Israel “Inspect all 40 lists” table returns to its template’s closed state after one of these actions. Keeping focus on the action button does not retain the student's evidence context. In the Israel lab, changing the threshold closes the full list table a student may be comparing.

Likely experience: a phone reader who opens the relevant record, requests a hint, then checks it against the answer must locate and reopen that record. Repeated reopening adds navigation effort to a task whose real demand should be interpretation.

Fix: preserve details-open state by case and record, and update feedback/lab results in place where feasible. Preserve the heading/focus context when changing settings. Continue requiring students to inspect and interpret records; do not substitute conclusions for them.

4. Browser Back has no investigation history to traverse

Severity: Medium. Confirmed absence of in-app history; device-specific outcomes need browser verification.

The app’s navigation is driven by buttons and goto(), which saves state and replaces content. There is no history.pushState, hash routing, or popstate handling anywhere in app.mjs. The explicit “← Back” handler does move between stages (app.mjs:174), but the browser’s Back control cannot mirror those stages.

Likely experience: a student accustomed to a phone's Back action may leave the app’s document instead of returning to the preceding evidence screen. Saved work may be recoverable; the source does not establish actual browser behavior, loss, or a specific device outcome.

Fix: add consistent route/history entries for case and phase and restore them on Back/Forward, while retaining the explicit Back button. Keep phase prerequisites enforced when navigating through history. This makes navigation predictable without letting students skip checks.

5. Missing-field errors send the reader to a general alert rather than the field needing repair

Severity: Medium. Confirmed error mechanics; additional searching is inferred.

fileBrief() emits the combined instruction “Choose a recommendation and record, then add your explanation and next evidence” regardless of which requirement is missing (app.mjs:155). check() similarly says “Answer each check before submitting” (app.mjs:143–145). validation() focuses and scrolls to #action-message (app.mjs:61), which nextRow() places after the case work (app.mjs:122), rather than identifying/focusing the first invalid field. The fields have no corresponding aria-invalid or linked error message. When completion is blocked by an unfiled case, finish() uses only a 3.5-second toast and does not identify the case (app.mjs:67, 159).

Likely experience: after writing a substantial answer, a student missing just the record selection has to search the form again; a phone reader is directed below the form before moving back up it.

Fix: name the actual missing requirement, provide a direct jump/focus to it, and associate a persistent inline error with that control. On the portfolio, list the unfiled case(s) with reopen actions. Retain the same required inputs and substantive checks.

6. Helpful definitions are confined to earlier stages, while abstract terms appear before and after them

Severity: Medium. Confirmed distribution of help; vocabulary confusion is inferred.

evidence() displays TEACHING.background as visible prose (app.mjs:111), which is a good input-independent design. However, the opening priorities include “National proportionality” before a plain-language definition (app.mjs:18, 83). “Thresholds in list PR” appears in Israel’s case thread (app.mjs:14, 85), and the labs/briefs use “qualifies,” “allocation,” “entitlement,” and “electorate pathway” without the evidence stage’s background being available alongside them. The brief’s “View the figures while you write” repeats tables and records, not the main rule and background (app.mjs:120). There is no shared definitions panel.

Likely experience: a student can do the arithmetic yet lose the distinction between a party list and a list of results, or between eligibility for allocation and receiving a particular number of seats. The optional rule-stage reading must carry a substantial vocabulary load into later writing.

Fix: add a small native-button or <details> “Terms and rule for this case” panel available from every phase and the notebook. Include the existing definitions and short explanations of the opening priorities. Make it operable by keyboard, pointer, and touch, with visible focus; avoid hover-only help. Define the words while retaining the demand to apply them to unfamiliar results.

7. Using the stage tab bypasses capture of the original submitted first thought

Severity: Low to Medium. Confirmed state/procedure inconsistency.

The prominent button says “Save first thought & open the evidence” (app.mjs:96). Its handler captures firstThought and records a prediction event (app.mjs:167). Yet selecting a prediction and then pressing “2. Evidence & rule” satisfies the phase-tab gate immediately (app.mjs:166) and moves on without either capture. The isolated state probe confirmed phase===1 while firstThought===null. The selected prediction itself is saved by inputEvent(); this is not wholesale loss of the choice. It weakens the distinction between the original submitted thought and a later draft. The TXT export can then say “Opening submitted thought: Not recorded by this notebook edition” for a newly created notebook (app.mjs:156).

Fix: route forward stage navigation through the same first-thought submission function, or make an explicit saved/submitted distinction and require submission consistently. Keep the initial prediction and later evidence-based revision; make the record of those steps reliable.

8. The JSON export control suggests a restore action that it does not perform

Severity: Low. Confirmed label/action mismatch; the misunderstanding is inferred.

The portfolio offers both “Download / restore JSON” and “Restore JSON” (app.mjs:128). The former dispatches export-json and only downloads; the latter opens the file chooser (app.mjs:179, 181). TXT is presented as a submission copy, but only JSON can be restored. For a novice, the combined label obscures which downloaded file is the resumable backup.

Fix: use “Download editable backup · JSON,” “Restore JSON backup,” and “Download submission copy · TXT,” with one sentence explaining their uses. Preserve access to human-readable and full-state exports.

Strengths to retain

  • The same four named phases recur in each case, with country/year identity, numbered navigation, a current-step marker, and specific forward actions. These give a student a learnable routine while the political problem changes.
  • Radios and checkboxes are inside clickable labels, question groups use fieldsets and legends, tables have column/row scopes, and definitions are visible prose. The CSS supplies visible keyboard focus, a skip link, reduced-motion handling, and sensible button minimum heights. These are stronger foundations than hover-only instruction.
  • The narrow-screen CSS stacks choices and the rounds comparison, changes the phase navigation to two columns below 560px, retains direct chart values, and provides overflow wrappers for tables. No actual clipping or unreachable control was confirmed without a browser. Table reading, keyboard scrolling, long labels, and a 320–390px viewport should be verified visually by the root reviewer rather than asserted as failures from CSS alone.
  • Autosave, save-failure warnings, notebook access before completion, TXT/JSON/print exports, and a restore confirmation with a previous-copy download all support interruption and recovery. The task plainly states that nothing is submitted automatically.
  • The work remains intellectually demanding: exact cutoff/net-change tasks, distinguishing rank from margin and aggregate change from individual transfers, two rule settings, an argument accepting a cost, and a record that could challenge it. Political preferences are not marked right or wrong.
  • Direct chart labels and model boundaries are unusually helpful. Fractional UK benchmarks are distinguished from actual seats; Israel computes eligibility rather than invented seats; Liberia uses two fresh historical voting dates; NZ preserves directly elected winners. These distinctions should remain explicit in every usability fix.

Likely vocabulary friction to check with real students

These are hypotheses, not observed errors: plurality versus majority; national share versus local victory; valid ballot versus qualifying list; party list versus results list; threshold versus exact allocation; electorate versus the whole body of voters; list top-up versus extra bonus seats; net gain versus identified voter transfers; brief, portfolio, and notebook as different work/completion concepts; and transfer case as applying learning to a new case rather than transferring ballots. Provide definitions and ask students to use them precisely; do not replace the comparisons with simpler factual recall.

Priority order

First clarify draft/filing status, make continuation return to the actual unfinished task, and keep opened evidence available through checks and lab changes. Then address browser history, field-specific repair, and portable definitions. None requires lowering the numerical standard or removing the obligation to justify a trade-off.

Novice perspective 3 · group discussion response

Novice student 3: discussion

I read the docket, faculty pressure-test 2, novice-student review 1, and the current site/dist/app.mjs and CSS. This remains a source review, without browser or student observations.

I agree with the shared emphasis on orientation and honest records of learning. The revision now refreshes draft/filing marks through refreshFilingStatus(), routes all-filed continuation to the portfolio, captures opening choices through stage navigation, and preserves opened details during feedback/model rerenders. Point-of-use terms, visible rule text, argument plans, and calculator permission address incidental demands while retaining the cutoff calculation, aggregate-inference problem, changed Green example, and political trade-offs.

My concrete disagreement with faculty review 2 is its proposed delay of explanatory context to strengthen the opening prediction. The retained choices work as inquiry orientation, especially after interruption. Once presented that way, they need not diagnose an unaided explanatory model. Delaying useful context would serve a measurement claim this product should avoid making. Preserve the original snapshot, describe what evidence added, and assess the later application instead.

The remaining risk is that supported continuation can still be mistaken for demonstrated understanding. check() accepts two complete unsuccessful submissions without requiring different answers; that is a reasonable access route, but “meaningful attempts” should mean completed submissions, not measured effort or learning. The revised exposure labels are therefore essential. I support keeping this route without another compulsory test or prose field. The optional oral application can reveal understanding without becoming a hidden completion requirement.

One concrete refinement remains: portfolio() labels its resume button using the current country and phase, whereas the resume handler switches to the first unfiled case when the current case is filed. After reopening a filed UK case while Israel remains unfinished, the displayed destination can disagree with the actual destination. Derive both from one target helper. This is worth correcting before publication; it is not a critical learning-design blocker.

These changes preserve rigor by clarifying procedures, units, and evidence boundaries. They do not establish classroom effectiveness; that still requires observed novice use.

Novice perspective 4 · independent blind review

Independent novice-student pressure test

Perspective: an average 18-year-old first-year student who is willing to think hard, has no political-science background, and needs the purpose of an action and the meaning of feedback to be clear.

This is a source-based walkthrough of the frozen student product, not observed student behavior or a browser test. I read REVIEW_SCOPE.txt, index.html, all of app.mjs, style.css, data.json, elections.mjs, and photos.json, and inspected the four conceptual rule illustrations. All student reactions below are explicitly inferences. References use the frozen files' line numbers and function names.

The overall task is worthwhile and its main purpose is evident: explain a surprising electoral result, compare rules, and defend an institutional choice with evidence and an accepted cost. The main learning risk is that several recorded actions can be completed through recognition or clicking before the student has expressed the causal connection. This does not justify lowering the required evidence or removing supported access.

Ranked findings

1. Two settings can be recorded as “inspected” without a student making a comparison

Evidence. lab() says “Try at least two settings” and reports “Your record: … settings inspected” (app.mjs:117). nextEvidence() adds the default setting on entry (154); set-model adds another setting on a click (171); lab-next checks only c.tested.length < 2 (172). comparisonCard() and formatLab() then supply ready-written summaries of every recorded setting (119, 124). The brief asks for both settings, but that reasoning is not involved in the action counted as inspecting them.

Likely misunderstanding — inference. A student can treat the lab as a button requirement: change once, see the counter reach two, then copy the two summaries. They may record a change of outcome without connecting the changed rule to that outcome. “Inspected” can also imply more learning than the program has established.

Fix. Retain the automatic paired results. Beside them, add a specific observation cue for each case: which figure changed, which input stayed fixed, and why the rule makes that difference. Let the student start the existing brief explanation there, or offer an optional note that is carried into it. Label the counter “settings opened” if it continues to measure clicks. No extra mandatory essay field is necessary.

Rigor safeguard. Keep two settings and the requirement to explain both in the final brief. Preserve fractional benchmark and eligibility-only labels; an observation cue must not imply exact alternative seats that the lab does not calculate.

2. Worked support opens access, but does not establish that the student repaired the misunderstanding

Evidence. After two unsuccessful checks, check() sets c.supported = true (app.mjs:149). worked() displays the same questions' answers, including Israel's 154,855 cutoff, Liberia's +17,520, and New Zealand's 3 electorate + 7 list = 10 (110). nextEvidence() permits progress after two attempts even if the answers remain wrong (154). The notebook accurately distinguishes support from a passed check (126), which is a strength. However, success feedback is the single message “The unit and mechanism fit the record,” while failure feedback is an unlabelled list of the wrong items' repair text (150).

Likely misunderstanding — inference. A student who needs help can continue without knowing which part of their understanding is now dependable. They might copy the displayed answer and mistake that for being able to apply the mechanism. Conversely, a partly correct student receives little confirmation of the reasoning they should retain.

Fix. Keep supported progression. Attach each repair to the relevant question and acknowledge the part answered correctly. Make the worked step end with an optional, short analogous application or spoken teach-back: for example, whether 154,854 and 154,855 qualify under the stated cutoff, or why two different inflow/outflow patterns can have the same net gain. Carry an unresolved-check reminder into the existing brief prompt when appropriate. Instructor assessment should still determine the quality of the argument.

Rigor safeguard. Do not add punitive retries, require a new essay, or close the supported route. Keep the distinction between “worked support used” and “check passed,” and preserve the inference questions about what aggregate evidence cannot establish.

3. The “first thought” often recognizes an answer already supplied by the context

Evidence. Before Liberia's first-thought question, its context states that neither finalist won more than half and that voters returned for “a new choice between Weah and Boakai”; the correct option is “A fresh ballot between the top two after neither won a majority” (app.mjs:15, rendered by title() before surprise(), 85, 96, 123). Israel's context already says Meretz was below a “national eligibility boundary” before asking which question to investigate (14). The explanatory hunch is optional (96). The help panel nevertheless describes this stage as making “a prediction about a surprising result” (188).

Likely misunderstanding — inference. Students may learn that a first thought means selecting the term repeated above, rather than exposing an explanation that evidence can improve. The cross-system distractors are easy to dismiss without understanding the selected mechanism. The later request to confirm or revise that first thought therefore has a thin baseline.

Fix. Keep the low-stakes opening choice, but align its label with its function: an investigation question. Offer a brief causal prompt such as what the student expects the selected record to show, or present the puzzle before the explanatory context. The current optional hunch can do this work; no additional mandatory essay is needed.

Rigor safeguard. Do not demand prior country knowledge or grade the opening hunch for correctness. Preserve the later requirement to support a strengthened or changed explanation with a figure.

4. A prominent route into a case bypasses the assignment's most useful orientation

Evidence. Home has four clickable route cards (app.mjs:82). Their case action goes directly to the case's last phase (165), whereas “Open the archive” goes to briefing() for a new notebook (163). The briefing contains the explicit four-stage assignment, the historical/model distinction, and the concrete strategic-response example (83). Case navigation gates first thought, checks, and settings, but never checks whether the briefing was encountered (135–137, 166).

Likely misunderstanding — inference. A novice who chooses an interesting country card can do all the local actions while missing why fixed-vote counting is different from predicting a reform. That omitted example matters when the final brief asks for a possible voter or party response. The first case can feel like a sequence of questions rather than part of an investigation.

Fix. On a first-ever case entry, surface a compact assignment reminder and the two kinds of evidence, with access to the existing briefing. A small first-visit notice is sufficient; it need not require the profile or priority form or repeatedly interrupt students.

Rigor safeguard. Keep direct case access and the full comparative task. This supplies orientation rather than replacing the modeling distinction with an easier activity.

5. The final design choice needs a clearer bridge from selected cases to the institution being designed

Evidence. portfolio() offers “Electing an assembly,” “Selecting one president,” and “Both, with a separate rule for each,” then allows any two cases (app.mjs:128, inputEvent() at 194). Its explanation hint asks for a figure from each, the rule, an accepted cost, a fixed input, a possible strategic response, and what transfers across presidency/assembly comparisons. It says “A short paragraph is enough.” finalEvidence() reopens the selected lab summaries (127) but provides no corresponding planning cue about what each selected case can support.

Likely misunderstanding — inference. A student may count two figures as a comparison even when those figures address different institutional problems. For example, a presidential recommendation based on two assembly cases needs an explicit explanation of the relevance and limits of that transfer. The intellectual demand is appropriate; its components are hard for a novice to keep visible inside one writing hint.

Fix. After the case selection, show a compact optional planning checklist: what each case helps explain, which rule is proposed for the chosen institution, and where the comparison stops. Display it beside the existing paragraph field and reused evidence. If “Both” is chosen, visibly remind the student to name a rule for each institution. Do not prescribe the case pair or add mandatory prose fields.

Rigor safeguard. Retain two numerical examples, mechanism explanation, cost, fixed input, strategic response, and limits of transfer. Do not automatically reject a cross-institution comparison: defending its scope is part of the learning.

6. The visible “first thought” can be overwritten, obscuring what was revised

Evidence. The first saved thought is preserved once as c.firstThought (app.mjs:167), and TXT export includes it as “Opening submitted thought” (156). However, revisiting phase 1 edits c.prediction and c.hunch (96, 197–198). Both the brief's “Revisit your first thought” and the visible notebook display those mutable values, not c.firstThought (120, 126).

Likely misunderstanding — inference. A student can update the opening answer to what now seems correct and then lose the visible contrast needed to explain revision. Even a well-intentioned student may read “You will be able to revise it” as an instruction to replace the original rather than identify the evidence that changed it.

Fix. Show the original submitted thought in the brief and notebook once it exists. Label any editable version as the current thought, and let the existing explanation describe strengthening or revision. Use the same visible baseline in TXT and print.

Rigor safeguard. Keep the opportunity to change one's mind and the requirement to connect revision to evidence. Do not reward an initially correct answer over a well-supported revision.

7. New Zealand's citation choices do not map cleanly to the records a student sees

Evidence. TEACHING.nz2020.sources offers “R1 Party votes and final seats,” “R2 Electorate wins and list top-ups,” and “R3 The 5% or electorate qualification rule” (app.mjs:16). The full result table is visibly captioned “R2 · Final archived 2020 result, selected parties” (91) inside “R2 · Party votes, local wins and list seats” (101); the supplied qualification rule is in an unnumbered rule box (111). The dropdown is labelled “Attach the historical record you are using” (120), even though its R3 choice is a rule. At the writing stage, students are also using the lab's compared outputs, which are outside that list.

Likely misunderstanding — inference. A novice may attach an R-number because it sounds relevant without being able to locate the exact evidence behind a sentence. It is unclear whether the dropdown cites a count, a rule, or the controlled comparison.

Fix. Use consistent visible identifiers for the supplied rule and both result tables. Make the selector's label cover evidence and rules, and indicate that lab summaries are a separate kind of support already retained with the brief. Link each selection to its visible record where feasible.

Rigor safeguard. Keep source attribution and the distinction between an institutional rule and a historical outcome. Do not turn attaching a label into a claim that the source establishes the student's full recommendation.

Strengths worth preserving

  • The puzzles are concrete, consequential, and do not require prior knowledge of party ideology. Different recommendations are explicitly allowed; the app does not award points for a political preference (briefing(), brief()).
  • The quantitative and evidential limits are unusually careful. The UK check distinguishes rank from margin; Liberia distinguishes a net change from individual movement; Israel separates ballot validity, qualification, and seat allocation. These are substantial intellectual tasks, not trivia (CHECKS, record()).
  • The New Zealand check holding total entitlement at 10 while changing electorate wins from 1 to 3 is a useful application beyond copying the archived result (CHECKS.nz2020.q3). Retain this kind of transfer.
  • Paired lab results remain available while writing. This removes a memory and navigation burden while leaving causal explanation and value judgment to the student (comparisonCard(), brief()). The solution to rote copying should preserve that access.
  • Recommendation-specific cost prompts and the required next-evidence sentence make uncertainty and disagreement part of a defensible argument (costHTML(), brief()).
  • The product clearly distinguishes browser saving, downloading, and instructor submission. The four repeated stages and case progress indicators provide a stable route (briefing(), sidebar(), portfolio()).
  • Documentary photos have context and credits; conceptual illustrations are explicitly labelled. They provide identity and atmosphere without presenting invented scenes as evidence (photo(), title(), credits()).

Lean vocabulary support

Use brief definitions at the first consequential decision, with optional expansion. Do not add a glossary quiz or replace the discipline's vocabulary.

Term or distinctionWhere support is most usefulCompact support
National proportionalityOpening prioritiesHow closely parties' seat shares match their national vote shares.
Assembly / presidentFinal institution choice; ideally previewed in the assignmentMany seats in a legislature versus choosing one officeholder. A rule can solve different problems in each.
Party listFirst Israel rule boxA party's group of candidates from which its allocated seats are filled.
Allocation / entitlementIsrael qualification and New Zealand top-upsAllocation decides seats; entitlement is the party's total, including its local winners in this case.
Coalition bargainingIsrael's recommendation costParties negotiating to form or support a government. More lists alone do not tell us the result of those negotiations.
DenominatorIsrael's calculation and cross-case percentagesThe total the percentage is taken from; name it with the figure. Keep the existing valid-vote distinction.

Existing definitions of constituency, plurality, majority, runoff, net change, fragmentation, and compensatory list tier should remain. The lean additions support the same evidence and explanation requirements; they do not reduce them.

Novice perspective 4 · group discussion response

Novice-student discussion response

I support the revised direction after reading the docket, faculty_pressure_3, novice_student_2, and current application source. First-entry briefing, opening-priority meanings, staged New Zealand rules, visible argument plans, and preserved first-thought snapshots address substantial orientation burdens. The CSS provides focus/hover definitions and the application also offers tap/click meanings; essential rules remain visible. Calling settings “viewed” and explaining what a worked example establishes are useful corrections to the original progress language.

My remaining dissent concerns assisted understanding versus forward progress. Faculty_pressure_3 correctly distinguishes exposure from fresh application. The new oral prompts in worked() are useful, especially New Zealand’s ten-total/four-local variant, but no response is captured or evaluated. A student can still advance with the original incorrect answers. This is a continuing learning risk, not evidence that support failed or a reason to close access. The current brief reminder and notebook labels appropriately leave that uncertainty visible.

I would not adopt faculty_pressure_3’s proposed additional fresh-answer status recording for this release. An unobserved oral response cannot justify a correctness status, while another submitted checkpoint adds interaction and implementation burden. Instructor questioning and the existing explanation are the appropriate next evidence. I also favor novice_student_2’s calculator and denominator support over splitting Israel into three compulsory answer fields. The exact cutoff and upward-boundary interpretation should remain demanding.

These revisions preserve rigor: students still compare settings, explain mechanisms, accept costs, identify challenging evidence, and synthesize two cases with a model limit and possible strategic response. They supply vocabulary and organization rather than completed political arguments. Retaining ordinary opening inquiry choices is now defensible because the interface no longer presents them as a diagnostic prediction.

One nonblocking refinement remains: home still advertises “Source evaluation,” while skills() more precisely describes evaluating what supplied evidence supports. Align that label or qualify its scope. I find no publication blocker in this source review. It does not establish classroom effectiveness, oral-prompt uptake, or browser accessibility behavior.

Novice perspective 5 · independent blind review

Independent novice-student pressure test

Perspective: an average 18-year-old first-year student with ordinary English reading skills and no comparative-politics background. This is an AI role-based, source-only walkthrough, not an observed student session. I read REVIEW_SCOPE.txt, index.html, all of app.mjs, style.css, data.json, elections.mjs, and photos.json. I did not use a browser, read other reviews or instructor files, or edit the product. Findings about likely misunderstanding are hypotheses grounded in the displayed wording and flow; no completion-time or human-behavior measurements are claimed.

What the student can reconstruct

The repeated four-stage route is understandable: make an initial choice, read a rule and records, compare settings, then recommend a rule. A student can retrieve the facts needed for the bounded checks. The larger writing task requires more support than the checks do.

CaseUnderstanding supported by the supplied textWhere an ordinary-language reading can go wrong
United KingdomEach local contest elects one representative. A party's seats count local wins, so a larger nationwide vote share need not produce more seats. Second place does not by itself mean a close defeat.“MP” is never expanded. “Votes still count nationally” can sound as though a national count awards additional seats. “Fractional benchmark seats” requires the student to distinguish a reference calculation from a possible actual result. The lab's later explanations do make that distinction, if retrieved.
IsraelAn accepted ballot can support a list below the qualification threshold. The denominator is all valid votes; 3.25% requires at least 154,855 whole votes. Qualification is separate from deciding exact seats.“List” is used as though its meaning is known. A reader may picture a list of vote totals rather than a party's candidates. “Fragmentation” is defined only at the brief; the lower-threshold cost then introduces “coalition bargaining” without explaining why parties might need an agreement to govern.
LiberiaThe runoff was a fresh election between two finalists. Boakai's net increase was 17,520. The totals do not reveal individual switches. His 50.64% concerns valid votes in that round.“Majority support for a winner” on the opening priority screen is less precise than the later case. Without carrying the later denominator into the final argument, the student could silently change it to support from most citizens. The Liberia lab itself explicitly guards against this.
New ZealandA party can qualify with 5% of party votes OR a local win. The Māori Party qualified through its local win; New Zealand First qualified through neither route. Electorate and list seats are parts of one party total.“Electorate” can mean all eligible voters in ordinary political English, while here it means a district. “Entitlement,” “allocation,” “list top-ups,” and “pathway” compress several different operations. It is possible to memorize the OR rule while still imagining local seats and proportional seats as independent bonuses. The Green model check is a good test of that distinction.

Prioritized fixes

1. Give the final comparison an explicit institutional frame and visible structure

Evidence: portfolio() (app.mjs:128) asks, “Choose the institution you are designing,” with “Electing an assembly,” “Selecting one president,” and “Both, with a separate rule for each.” The small helper below the final text area adds: “If comparing a presidency with an assembly, explain what transfers and what does not.” Neither *assembly* nor *institution* is defined in the student flow. The four cases have changed from allocating many seats to selecting one person, but this difference is not summarized at the writing point.

Issue: The student has to determine the scope of the recommendation and the valid comparison at the same time. A plausible wrong model is to treat the presidential majority and a party's share of assembly seats as interchangeable measures of electoral success. This is an analytical distinction worth assessing, but the instructions should make the objects being compared explicit.

Proposed copy before the selectors: “Choose how to elect a legislature—a group of representatives, such as a parliament—one president, or both. The UK, Israel and New Zealand cases allocate seats in a legislature. Liberia selects one president.”

Proposed visible writing prompts: “State your rule and the priority it serves. Use one figure from each chosen case to explain your reasoning. Explain one useful lesson the cases share and one limit to the comparison. Accept a cost. Name one input the lab held fixed and one way voters or parties might respond to a real rule change.” For a presidency/legislature pairing, add: “Explain why a lesson about dividing many seats does or does not help choose one winner.” Keep all of the existing analytical demands; expose them as a short checklist rather than hiding them after the text area.

2. Make the case-brief requirements readable before the student starts writing

Evidence: brief() (app.mjs:120) appends to every case: “Use both compared settings. Confirm or revise your first thought with a figure. Two or three connected sentences are enough.” This follows a case-specific instruction. New Zealand additionally requires using two parties, connecting an earlier case, and acknowledging a cost. The required helper is rendered as .field small at .8rem in muted text (style.css). The final recommendation has a similar concentration of requirements below its text area.

Issue: Choosing a policy, explaining a mechanism, comparing settings, citing numbers, accepting a cost, and revisiting an initial thought is a substantial short argument. The sentence advice makes its expected scope sound smaller than the requirements. Moreover, the saved first thought is a choice of *what to investigate*, not necessarily a factual claim that can be confirmed or disproved.

Proposed copy above the case text area: “Explain your recommendation in a short paragraph. Use as many sentences as you need to: (1) compare a result from each setting; (2) explain a benefit you value and a cost you accept; and (3) explain what the evidence added to your first thought.” Retain each case's specific demand as a visible additional prompt; for New Zealand, “Use the Māori Party and New Zealand First, and connect your reasoning to an earlier case.”

Use ordinary body text for required instructions. Keep optional sentence starters or other help below the field. This reduces searching and compression demands without reducing the reasoning task.

3. Explain the opening priorities and first-use terms where students must choose

Evidence: PRIORITIES (app.mjs:18) is first displayed in briefing() (app.mjs:83): “National proportionality,” “Local representation,” “Majority support for a winner,” and “Access for smaller parties.” Definitions of constituency, seat and plurality appear only in the next stage's TEACHING.uk2024.background. First-thought screens already use “MPs,” “lists,” “valid ballots,” and “electorate.” In surprise() (app.mjs:96), “Your first thought (optional)” labels a text field, while making a radio choice is required.

Issue: The student must choose values before knowing what two of them mean and may mistake the optional note for an optional first-thought stage. Providing vocabulary is different from supplying the correct investigation choice.

Proposed priority labels/help:

  • “National proportionality — parties' seat shares should closely match their nationwide vote shares.”
  • “Local representation — each area should have an elected representative.”
  • “Majority support for one winner — the winner should receive more than half of valid votes in the deciding round.”
  • “Access for smaller parties — smaller parties should have a route to winning seats.”

For first thoughts, label the choice “Choose the question you would investigate first” and add “Choose one to continue; you can change your mind.” Rename the textarea “Add a note to your choice (optional).” Expand the first use of MP to “member of Parliament (MP).” Give neutral tap/focus definitions for *seat*, *party list*, *valid vote*, and *electorate* on their first screen rather than requiring navigation to the evidence stage.

4. Break the New Zealand rule into operations, and define its two votes before the table

Evidence: DATA.transferCase.rule, displayed by evidence(), runs from “Each voter has an electorate vote and a party vote” through “remaining entitlements are filled from party lists.” TEACHING.nz2020.background then repeats “overall allocation” and “remaining entitlement.” record() (app.mjs:101) defines electorate only after the full results table. CHECKS.nz2020.q3 asks the student to hold Green's total entitlement constant while changing local wins.

Issue: A single dense paragraph carries ballot choices, local elections, qualification, total allocation and top-up. “Electorate vote” and “party vote” are named but not explained. The conceptual task is sound; sentence structure and terminology make it harder to hold the model in mind.

Proposed rule copy: “Each voter has two votes: one for a candidate in a local district, called an electorate, and one for a party. The candidate with the most votes in each district wins its seat. A party joins the proportional allocation if it wins at least 5% of party votes OR wins a local seat. Party votes help determine a qualifying party's total number of seats. Local winners fill part of that total; candidates from the party list fill the rest.”

Keep the Green counterfactual check and the warning that direct local winners keep their seats. Do not add the check's numerical answer to the new rule text.

5. Match record names across reading, selection, and export

Evidence: TEACHING.nz2020.sources offers “R1 Party votes and final seats,” “R2 Electorate wins and list top-ups,” and “R3 The 5% or electorate qualification rule.” The first table is captioned “R1 · A new representation puzzle”; the full result is “R2 · Final archived 2020 result, selected parties.” The qualification rule is in an unnumbered rule box. brief() asks the student to “Attach the historical record you are using,” even where its main numeric evidence comes from a lab. Israel's R3 selector names the two parties while its visible summary is “Qualification is only the first stage.”

Issue: The student must remember two names for the same source, and New Zealand's selected R3 cannot be located by that label. “Attach” can also suggest that choosing a label automatically supplies the relevant evidence, although the student still needs to explain and cite it.

Fix: Use identical short record titles in the visible records and the dropdown. Label New Zealand's rule box “R3 · The 5% or local-win qualification rule.” Rename the selector “Which historical record supports your explanation?” Add “When using a lab figure, name its setting in your explanation; your compared results are shown above.” Keep historical records and modeled results clearly distinguished.

6. Supply the missing political link in the Israel trade-off

Evidence: brief() defines fragmentation as representation spread across more parties or lists, but TEACHING.israel2022.costs[0] asks about “the consequences for coalition bargaining.” israelLab() (app.mjs:114) says fragmentation does not establish government instability. The party-list and government-formation vocabulary has not been introduced.

Issue: Knowing that the threshold admits more lists does not tell a novice what a coalition is or why bargaining enters this question. The student may infer that more parties automatically make government unstable, or simply repeat “fragmentation” as an unexplained cost.

Proposed short help before the recommendation: “A party list is a party's group of candidates. If no party has enough seats to govern alone, parties may negotiate an agreement to govern together—a coalition. More parties winning seats can change those negotiations. The list counts here do not show how long negotiations would take or whether a government would last.” Then retain the question asking what further evidence would be needed.

7. Make the UK lab's reference calculation relate explicitly to the reform choices

Evidence: ukLab() (app.mjs:113) contrasts observed local results with a fractional national proportional benchmark. TEACHING.uk2024.options then offers retaining plurality, exploring a compensatory list tier, or allocating primarily through proportional party votes. brief() explains a compensatory tier in one sentence, while the generic instruction says “Compare the two settings you explored.”

Issue: The lab helps diagnose the vote–seat gap, but it has not simulated either reform design. A novice may cite the fractional benchmark as the demonstrated result of adding compensatory seats, or assume the three recommendation choices correspond to three tested settings.

Proposed copy before the options: “The lab compares actual local seats with a national reference calculation. It does not calculate the result of either reform below. You can use the gap to explain why you would keep or change the system. If you propose a reform, identify a design decision that still needs evidence.” Keep the existing fractional-seat label and whole-seat warning.

Strengths to retain

  • The repeated stages, persistent case identity, and “Your compared results” cards provide useful orientation and retrieval. Reopening both lab results while writing avoids requiring all figures from memory.
  • Rule explanations explicitly distinguish valid ballots from qualification, rank from margin, and net change from individual vote movement. These are intellectually useful tasks rather than trivia about country names.
  • The Liberia lab is particularly clear about fresh ballots and the limit of a percentage majority. It offers enough detail for the student to explain why a change in totals is not evidence of a specific flow of voters.
  • Numerical answers accept commas and spaces. Specific repair text, optional hints, and the worked alternative after unsuccessful checks provide support while preserving the original question.
  • The New Zealand Green model check tests the relation between total seats and local/list components, rather than only asking students to add a row of a table.
  • Open recommendations are not automatically graded for selecting a preferred political position. The prompts require an accepted cost and evidence that could change the recommendation.
  • Saving and submission instructions state plainly that a student must download or print their work. Photograph metadata also carefully distinguishes the Liberia campaign meeting from voting evidence.

Concise glossary candidates

Place explanations at first use; make the same definitions available on tap and keyboard focus, not hover alone. Required distinctions should remain visible in the rule text.

TermProposed concise explanation
Seat / MPOne position in a legislature. An MP is a member of Parliament.
Constituency / electorateA local voting district that elects a representative.
PluralityMore votes than any other candidate; it can be less than half.
MajorityMore than half of the votes or seats being counted. Check which total the statement uses.
Party listA party's group of candidates for seats.
Valid voteA vote accepted into the count. It can support a party that wins no seats.
Threshold / qualificationThe minimum vote share needed to join seat allocation, unless an exception applies. Qualifying does not specify an exact seat total.
Proportional representationA system designed to make parties' seat shares broadly reflect their vote shares.
BenchmarkA reference calculation used for comparison. Here, fractional seats are not an actual election result.
Compensatory list seats / top-upList seats that fill the gap between a party's local wins and its overall seat allocation.
Total entitlementThe party's total seat allocation; local winners occupy seats within that total.
Fragmentation / coalitionFragmentation: seats spread across more parties. Coalition: parties agreeing to govern together.
Net changeThe later total minus the earlier total. It does not identify individual voters' movements.
Fixed inputSomething the lab keeps unchanged while testing a rule, such as the recorded votes.

These revisions should simplify access to the task, not replace it. Students should still calculate the cutoff and net change, explain the counting mechanism, compare settings, distinguish observation from a model, defend a trade-off, and explain the limits of comparing institutions.

Novice perspective 5 · group discussion response

Novice-student discussion

I agree with faculty_pressure_3 that making the writing moves visible is more useful than requiring a particular sentence count. I also agree with novice_student_1 that orientation belongs on every first-entry route. The current briefing(), argument plans, opening priority glosses, staged New Zealand rule, and saved opening-choice display address my main concerns. The CSS gives the argument plan ordinary readable list text; required rules remain visible while definitions have hover/focus previews and tap access. These are source-based judgments, not browser or student observations.

One remaining risk deserves a small correction before publication. The generic case-brief plan still says, “Compare a figure or result from each setting and explain how the rule produces it.” Applied to Liberia, that can invite the causal interpretation that the new model boundary correctly rejects: the runoff rule alone produced the October–November difference. Use a Liberia-specific first item: “Compare the winner under each selection standard. Explain how each standard selects a winner, and acknowledge that the November ballot also had different votes.” The other cases can retain the generic instruction. This resolves conflicting directions without weakening the comparison.

I refine faculty_pressure_3’s fresh-application proposal: for this release, I prefer the current optional oral application over adding another recorded exercise. It gives a student a new input without making support feel like a new assessment sequence. The notebook must continue to distinguish a worked example being shown from a successful independent application; the current checkStatus() wording is appropriately careful. A later student pilot can investigate whether fresh recorded checks add useful evidence.

The changes preserve rigor. Students must still interpret exact quantities, explain mechanisms, compare settings, accept costs, and limit their conclusions. Definitions and writing plans remove retrieval and composition obstacles without supplying a completed political argument. Apart from the Liberia wording correction, I identify no publication blocker from this source inspection. Actual usability and learning effectiveness remain unmeasured.

Faculty perspective 1 · independent blind review

Independent faculty pressure-test: After the Count, frozen student product

Reviewer perspective: comparative electoral systems faculty. This is a skeptical source-and-code walkthrough, not a classroom observation or browser test. I read the permitted student app, index, data, election functions and presentation metadata; I did not consult instructor files, prior reviews or the standalone product. I made no application changes.

Judgment

The core counting content is unusually careful for an introductory electoral-systems activity. I found no substantive error in the displayed numerical comparisons. The product repeatedly distinguishes valid ballots from qualifying lists, eligibility from seat allocation, historical counts from held-fixed calculations, and net changes from individual voter movements. Those distinctions are academic strengths to protect.

The largest remaining risk is that novices can reproduce the supplied mechanism without acquiring a sufficiently precise vocabulary or framework for the final institutional comparison. Easier language should expose the same mechanism more clearly, while the tasks should ask students to explain a consequence and an evidential limit. It should not mean replacing the genuine calculations or making the normative choice mechanically correct.

Numerical and mechanism checks

These are independent local calculations using the supplied datasets, not a claim to have independently revalidated every historical count against every archive.

CheckResult
UK complete vote partition28,809,340 votes; display parties total 650 actual seats. All 557 benchmark entries have unique IDs; their votes reconcile with all 97 display groups.
UK fractional benchmarkLabour 219.0493, Reform 92.9020, Liberal Democrats 79.3994. The student copy's 219.05 / 92.90 / 79.40 is correct.
Three UK local recordsEvery local total, first-place winner and recorded winning margin reconciles. Woking plus Barnsley North Reform votes = 15,687; Barnsley North margin = 7,811.
Israel 2%Cutoff 95,295; 12 qualifying lists; 127,990 excluded valid votes, 2.6862%.
Israel 3.25%Cutoff 154,855; 10 qualifying lists; 417,400 excluded valid votes, 8.7602%.
Israel 5%Cutoff 238,238; 6 qualifying lists; 1,179,861 excluded valid votes, 24.7623%.
Israel denominator distinctionMeretz's fixed-total gap is 4,062; adding entirely new valid voters instead requires 4,198. The current student question correctly asks only for the fixed-total cutoff.
LiberiaBoakai +17,520; Weah −10,173; valid votes −226,121; all cast −314,972; invalid votes −88,851. First-round margin 7,126; runoff margin 20,567.
NZAll 2,886,420 party votes reconcile; 72 electorate + 48 list seats = 120. The supplied Sainte-Laguë demonstration reproduces 65 / 33 / 10 / 10 / 2, with the recorded list top-ups.

Seven prioritized issues

1. Introduce the institutional comparison before asking students to prioritize values

Severity: medium; high priority for learning. This is a scaffolding problem, not a false factual statement.

Evidence: app.mjs:18 gives every student the same priorities, including national proportionality and majority support for a winner. app.mjs:83 introduces the assignment without explaining the difference between distributing assembly places and selecting one executive. That distinction is finally requested in portfolio() at app.mjs:128, but the same goals and any two cases remain available for every selected institution.

Risk: A student can treat one president's percentage majority and a party's share of parliamentary seats as equivalent measures of representation. Asking where the comparison stops is excellent, but that question alone does not supply a novice's framework for answering it. The headline about votes producing power also invites an additional inference from seat allocation straight to control of government.

Concrete correction: Put a short orientation above the opening priorities:

An assembly election divides many seats among representatives. A presidential election chooses one person. Compare the rules, but keep those jobs separate. These records show seats or the presidential winner; who forms or controls a parliamentary government can require further evidence.

Add case badges such as Assembly: 650 seats and President: one winner. Define the majority priority as More than half of valid votes for the winner in the decisive round where discussing Liberia. Keep cross-institution comparisons, but give the final prompt two sentence starters: The principle I can carry across is … and This comparison cannot tell me …. Do not require all institutions to optimize the same numerical outcome.

2. Define the terms that carry the mechanism, at their first appearance

Severity: medium. The promise of no prior country knowledge is stronger than the current vocabulary support.

Evidence: The product gives helpful definitions of constituency, seat, plurality, valid ballot, runoff and net change (app.mjs:13–16, 99–100). However, national proportionality appears among the opening priorities; party list and allocation appear in the Israel explanation without a concrete account of what a list contains; entitlement appears in NZ's supplied rule; coalition bargaining appears in the Israel pressure-test prompt. Fragmentation is defined only in the later brief (app.mjs:120), after it is raised in the lab (114). MP and Knesset also rely on contextual inference.

Risk: A student may memorize “local win opens proportional allocation” while being unable to say who receives a list seat or what total is being topped up. This is a language barrier to the core concept, not a reason to remove the concept.

Concrete correction: Keep the technical term, followed immediately by a plain definition:

  • Proportionality: how closely a party's share of seats matches its share of votes.
  • Party list, in these cases: candidates ranked by a party; list seats go to candidates in that order.
  • Allocation: the rule for dividing seats among qualifying parties or lists.
  • Entitlement: the party's total number of seats calculated under that rule.
  • Coalition: parties that agree to govern together; coalition bargaining is negotiating that agreement.
  • MP: member of Parliament. Knesset: Israel's Parliament.

Retain the exact Israeli denominator and whole-vote calculation. Offer valid votes × 0.0325 = …; the smallest whole number at least this large is … as a scaffold, and still ask why rounding upward is necessary. A calculator permission label would reduce irrelevant uncertainty without reducing quantitative rigor.

3. Distinguish UK candidate-vote totals from an independent measure of party preference

Severity: medium; a precision issue in the framing. The later behavioral caveat already substantially mitigates it.

Evidence: The UK context calls the puzzle a distance between “national popularity and local victory” (app.mjs:13). The national table says “UK vote share” (87), and the lab compares recorded party totals with fractional proportional seats (113). The supplied rule correctly says voters elect candidates in separate constituencies; the lab correctly warns about strategic voting and candidate entry.

Risk: “Popularity” can be read as the electorate's underlying first-choice party preference. UK totals aggregate votes for local candidates by affiliation. They are not a separate national party ballot, and the same totals need not arise under a reform. A disclaimer hidden in an expandable note does not fully repair the initial interpretation of the quantity.

Concrete correction: Replace “national popularity” with votes for each party's candidates across the UK. Add one line directly under the table:

These national totals add up local candidate votes. They are not a separate party ballot or a direct measure of everyone's first-choice party.

Retain the 28,809,340 denominator and all fractional figures. This improves measurement precision without weakening the striking vote-seat puzzle.

4. Tie the UK recommendations to what the benchmark actually tested

Severity: medium. The current wording “explore” is appropriately cautious; preserve it.

Evidence: The UK lab calculates a national fractional benchmark and explicitly does not allocate alternative whole seats (app.mjs:113, 124). The recommendation menu includes a compensatory list tier and proportional allocation (13, 120). Neither design is actually simulated. The brief nevertheless asks students to use both compared settings to justify the selected reform.

Risk: A student may present Reform's 92.90 benchmark as the outcome of the proposed mixed system, or assume that adding any list tier automatically delivers nationwide proportionality. Compensation depends on the tier's size and the rules linking constituency wins to overall entitlement.

Concrete correction: When the compensatory option is selected, display:

This benchmark shows the size of the vote-seat mismatch. It does not simulate your proposed mixed system. Name one design rule you would still need: the number of list seats, the total-seat formula, or a threshold.

For the proportional option, similarly ask for one missing whole-seat or district rule. This is a small additional intellectual demand, not a request to build a full reform calculator.

5. Make the scope of NZ's top-up identity explicit in the student explanation

Severity: medium-low; important protection against overgeneralization. The statements are sound for the actual 2020 case.

Evidence: app.mjs:16 says electorate seats are part of a party's overall allocation and list seats fill the remaining entitlement. The new-case check correctly holds Green's entitlement at 10 and changes electorate wins from 1 to 3 (108). elections.mjs:323 explicitly notes that 2020 has no overhang, but this caveat is not displayed in the student explanation. The remove-pathway lab correctly preserves the directly elected Māori MP (app.mjs:116).

Risk: A student may generalize the model into “local wins can never take a party beyond its party-vote entitlement” or “MMP always fixes Parliament at 120.” The internal code itself avoids this error, but the general wording of the student rule needs the same boundary.

Concrete correction: Add a short expandable A limit of this case note:

The 2020 result had no overhang. If a party wins more electorate seats than its party-vote entitlement, New Zealand keeps those winners and adds the extra seats. Our 2020 top-up comparison does not model that situation.

This mechanism is confirmed by the primary Electoral Commission explanation, especially its sections on who receives seats and overhangs. Do not import the later 2023 totals into this historical case or burden the main arithmetic with a second election.

6. Keep Israel's list count separate from a count of political parties or a prediction of government formation

Severity: low-medium; refinement of an already cautious section.

Evidence: The lab appropriately reports lists qualifying, not alternative seats, and explicitly rejects instability predictions (app.mjs:114). The brief defines fragmentation as representation spread across more “parties or lists” (120), while the dataset includes combined lists such as Religious Zionism/Otzma Yehudit and Hadash-Ta'al (elections.mjs:248–252).

Risk: Novices may nevertheless treat 12 / 10 / 6 lists as interchangeable with 12 / 10 / 6 independent parties or bargaining actors. The threshold arithmetic by itself cannot establish those quantities or coalition difficulty. The product already says that instability needs more evidence; the remaining step is to say what sort of political unit it is counting.

Concrete correction: Add:

A list can contain candidates from more than one party. This lab counts qualifying lists. To assess government formation, also investigate their political positions and agreements.

Keep the actual threshold exercise and the demand to weigh access against fragmentation. Do not replace that tension with a generic claim that lower thresholds are simply fairer or that higher thresholds automatically stabilize governments.

7. Make at least one novice-facing question require explanation rather than obvious label matching

Severity: medium for intellectual challenge; no claim of observed disengagement.

Evidence: Every first-thought menu pairs the case's mechanism with options from conspicuously different mechanisms (app.mjs:13–16). The UK case-thread already says “Local plurality.” NZ's first check includes “1.17% is greater than 2.60%” and “Every party was guaranteed two list seats” (108). These are much weaker distractors than the UK distinction between rank and margin or Liberia's distinction between aggregate and individual change (105, 107). The new Green counterfactual is a genuine improvement and should remain.

Risk: Students can recognize the right vocabulary while leaving the causal chain unexplained. A correct initial guess then provides limited material for the later request to confirm or revise it. The required first thought also offers no explicit uncertainty choice despite promising no prior knowledge.

Concrete correction: Keep the first-thought question low stakes, and allow I need another record before deciding. For one prompt per case, require a one-line explanation or evidence request. In NZ, ask:

A below-5% party wins one electorate. Does that win merely preserve the local MP, open proportional allocation from the party vote, or add local seats on top of an independently calculated list total? Use the Māori Party's actual 1 local + 1 list result to explain.

Those alternatives represent meaningful competing mechanisms. Keep the Green 3 + 7 = 10 transfer check and make students identify the held-fixed entitlement. Do not add difficulty through more specialized vocabulary or more arithmetic of the same form.

Strengths to protect during revision

  • The questions about UK second places and Liberia's net gain test limits of inference, rather than only recall. Keep both.
  • Liberia's lab clearly distinguishes a plurality rule applied to October ballots from the real November runoff. It shows the changed denominator and says that a majority of valid runoff votes is not support from all eligible citizens. Do not collapse these into one “same votes, different rules” animation.
  • Israel's threshold lab correctly stops at eligibility. Do not manufacture exact alternative seat totals or imply that a lower threshold mechanically predicts unstable government.
  • NZ's remove-pathway setting preserves the directly elected MP. Its historical top-up table and fixed-entitlement Green check prevent the common mistake that local seats are an extra bonus.
  • The source notes, chance to revise a first thought, evidence request that could challenge the recommendation, and preference-neutral open briefs support genuine political reasoning. Completion is explicitly separated from instructor assessment of argument quality.

For an average 18-year-old, the best engagement revision is a clearer job and a visible consequence: You advise a rules commission. Show one consequence your proposal changes, one cost you accept, and one claim these data cannot settle. Keep the surprising country puzzles. Shorten the labels, define the nouns, and demand the same precise argument. These are design judgments for a future student pilot, not findings about actual student reactions or completion time.

Faculty perspective 1 · group discussion response

Faculty pressure-test 1: discussion

I agree with novice_student_2 that explicit units and writing plans remove incidental difficulty, and with faculty_pressure_2 that support records must describe exposure rather than mastery. The current source improves both: the UK bars identify vote and seat denominators, the final brief has a content-neutral plan, and checkStatus() uses the successful submission’s support history. The stylesheet provides hover/focus definitions, tap targets and print treatment; I have not tested those interactions in a browser.

The four requested scholarly corrections are present. historicalTable() identifies UK totals as aggregated local candidate votes, not a separate party ballot or everyone’s first preference. The UK brief explicitly says the compensatory design was not simulated and names missing design rules. Israel’s lab distinguishes qualifying lists from separate parties or governing partners. NZ’s optional overhang note limits the 2020 top-up exercise while preserving local winners. The revised NZ table also says “Electorate wins retained” and “Qualifies for list allocation?”, which addresses the novice report’s stage-confusion concern without inventing alternative totals.

My concrete dissent concerns faculty_pressure_2’s proposal to delay explanatory context. I would retain the accessible, cued starting question now that it is explicitly an unscored inquiry orientation. Removing context is unnecessary if the opening is not presented as evidence of prior mastery. Preserve the later rank/margin, aggregate/individual-flow and fixed-entitlement checks as the substantive challenges. One refinement remains: define a party list as ranked candidates, and explain that list seats go to those candidates in order. The present “group of candidates” definition leaves who receives the seats underspecified.

These revisions do not lower rigor: the exact cutoff, eligibility logic, supported-versus-passed distinction, accepted cost, fixed input and comparison limit remain required. The residual risk is interpreting completed briefs as demonstrated understanding; instructor assessment and a later observed pilot remain necessary for that claim. I identify no remaining subject-content publication blocker in the inspected revision; the ranked-list clarification is a small recommended correction.

Faculty perspective 2 · independent blind review

Blind faculty pressure-test 2

Scope and method. Independent source-based walkthrough of the frozen student product: REVIEW_SCOPE.txt, index.html, app.mjs, data.json, elections.mjs, style.css, and photos.json. I did not open prior reviews, instructor documents, the standalone build, parent materials, or a browser. Numerical checks executed the supplied election module; these are internal consistency checks, not independent verification against live historical sources. No student behavior, completion time, or classroom learning was observed.

Faculty judgment. The central learning design is defensible for introductory students. It consistently distinguishes recorded results, mechanical models, strategic responses, and judgments about desirable institutions. The main improvements should strengthen the evidence of learning and reduce incidental vocabulary demands. They should preserve the calculations, aggregate-inference challenge, and open political choices.

Prioritized findings

1. The visible “first thought” can become a later thought

Priority: high. Actual record/display bug.

In app.mjs:167, prediction-next preserves an initial submission in c.firstThought only once. However, brief() (app.mjs:120, “Revisit your first thought”) and entry() (app.mjs:126, “First thought:”) display mutable c.prediction and c.hunch. Returning to the first page and editing the choice or hunch therefore changes the displayed and printed baseline. plainNotebook() retains the original separately as “Opening submitted thought,” but the on-screen and printed account does not show it.

Why it matters: the brief explicitly requires “Confirm or revise your first thought with a figure.” An instructor using the visible or printed notebook could misread the change in understanding.

Fix preserving challenge: display the immutable c.firstThought in both revisit and notebook views; label later edits “Current thought.” Keep both available and ask the student to explain the change. No additional assessment gate is needed.

2. A support label can report a history that did not occur

Priority: high. Actual chronology bug plus a measurement limitation.

evidence() leaves “Give me a hint” enabled after a correct check. The hint handler (app.mjs:169) sets c.hint=true; the hint itself is rendered only when c.hint&&!c.checked. Thus: pass the check independently, press the hint button, and entry() now says “Check passed after a hint,” although the pass preceded the request and no hint text appeared. The submission already stores the correct hintBefore flag (check(), app.mjs:143–151).

Separately, after the second unsuccessful submission, check() emits worked_step_viewed as soon as the worked text is revealed. entry() calls this “Worked-step support used.” This records exposure or the supported route, not evidence that the explanation was read or understood. Likewise “settings inspected” (lab()) counts settings opened.

Fix preserving challenge: derive the pass summary from the successful submission’s hintBefore/workedBefore; hide or disable a hint after a pass, or let a later hint reopen the check explicitly. Label reveal events “worked step shown” and settings “opened.” Retain supported progression, current answers, and attempt snapshots; do not translate exposure into mastery.

3. Several opening questions largely repeat an explanation already supplied

Priority: medium-high. Assessment-design inference, not a scoring or allocation bug.

In TEACHING.israel2022, the context says “Meretz finished just below a national eligibility boundary,” immediately before the student chooses between checking qualification, ballot invalidity, and local winners. Liberia’s context already says neither finalist had half and voters returned for “a new choice”; the matching option is “A fresh ballot between the top two after neither won a majority.” The New Zealand prompt’s alternatives are a local electorate, invalid ballots, or a presidential runoff. title() also supplies the mechanism name before the choice.

These can orient a novice, but they offer weak evidence of a prior explanatory model. The evidence checks also sometimes repeat a supplied sentence; the stronger exception is the new New Zealand 10-total/3-electorate model item.

Fix preserving challenge: keep the historical puzzle and the ungraded nature of the opening, but delay the explanatory context until after the first submission. Ask for a short provisional mechanism or a choice between two plausible explanations of this result. Preserve the later numerical and inference checks; do not make reading assistance contingent on knowing the answer. Treat this as an orientation prompt unless a less cued opening is implemented.

4. Vocabulary help should arrive at the point of use

Priority: medium. Novice-access design inference.

briefing() asks students to choose “National proportionality” before that expression is explained. “MMP transfer challenge” and “local electorate” appear on New Zealand’s opening page before the expanded mixed-member and electorate definitions on the evidence page. Israel’s cost prompt asks about “coalition bargaining,” while the brief only defines “fragmentation.” Other demanding expressions include “entitlement,” “compensatory list tier,” and “strategic response.” Useful definitions exist, but their timing and coverage are uneven. The source contains no term-help/tooltip component.

Fix preserving challenge: use plain main labels, such as “How closely a party’s seat share matches its vote share,” and add compact focusable term buttons with hover, keyboard, and tap access. Examples: electorate: “a local voting district”; entitlement: “the total number of seats the party’s votes earn under this rule”; coalition bargaining: “negotiations between parties about forming and supporting a government.” Definitions should clarify the unit or term, not supply the current task’s conclusion. Keep arithmetic and trade-off demands intact.

5. Liberia’s page heading overstates what is held constant

Priority: medium. Wording inconsistency and causal-inference risk; underlying lab is carefully qualified.

title() gives every lab the large heading “Change one thing.” Liberia then compares plurality applied to October’s ballots with a historical November runoff in which the candidate set, participation, and vote totals changed (liberiaLab()). The lab correctly uses “COMPARE SELECTION STANDARDS,” labels two different dates, and warns that an announced plurality contest could change behavior. Those safeguards are real strengths. The generic heading nevertheless invites an overly experimental reading of the observed winner reversal.

Fix preserving challenge: use “Compare two selection standards” for this case. Add one short question: “Which part applies another rule to the same votes, and which part uses a new election?” Keep both real records and require the answer to distinguish them; do not suggest the before/after difference identifies the causal effect of the runoff rule.

6. “Source evaluation” is advertised more strongly than it is elicited

Priority: medium. Construct-coverage inference.

The home page lists “Source evaluation,” and skills() says “Evaluate evidence.” sourceLinks() provides valuable notes and primary-source links, but the required action in brief() is “Attach the historical record you are using,” selecting R1/R2/R3. None of the bounded checks asks students to assess provenance, selection, completeness, or suitability of a source. Unsupported-claim checks test inference, which is related but distinct.

Fix preserving challenge: add one concise optional/recommended source probe, using the supplied evidence rather than requiring an external research detour: “Why can these three selected constituencies illustrate the rule but not establish the national geographic explanation?” Alternatively ask which record can support an individual-voter transfer claim and why none of these aggregate tables can. Explicitly call the source dropdown a citation, not an evaluation. Preserve the existing primary links and selected-record warnings.

7. The comparative brief needs a clearer route for its hardest valid combinations

Priority: medium. Instruction/assessment-design inference.

portfolio() allows “Selecting one president” plus any two cases, although Liberia is the only presidential case. It appropriately requires students comparing a presidency with an assembly to “explain what transfers and what does not.” The same short paragraph must use two figures, explain a rule, accept a cost, name a fixed input, and propose a behavioral response. This is worthwhile synthesis, but it leaves the least familiar institutional comparison to the least guided writing task. There is no check that the chosen institutional object and evidence actually support the rule recommended; finish() checks completion only, and says so honestly.

Fix preserving challenge: show a small institution-specific prompt after the selection. For a presidency: “Use Liberia to evaluate selecting one winner; use the second case to test a transferable principle, and identify one assembly feature that cannot become a presidential selection rule.” For an assembly: ask explicitly about translating party votes into multiple seats. Offer an optional three-part frame: proposed rule and evidence; fixed-input assumption and possible response; accepted cost and limit of comparison. Keep the institution choice, all case pairs, political discretion, and instructor assessment.

Task-by-task judgment

TaskWhat the current task can supportBoundary to preserve
UKExplain local first places; distinguish rank from margin; compare seats with a fractional national benchmark.Three local illustrations do not identify the full national geography or prove better accountability. The app already states the first limitation and labels the benchmark clearly.
IsraelCalculate the whole-vote cutoff; distinguish valid votes from qualification; compare eligibility at fixed votes.Qualification is not exact seats; list counts do not identify coalition instability. These are explicit and appropriate constraints.
LiberiaCalculate net change; reject an inference about individual switching; contrast a fixed-first-ballot selection with a fresh observed runoff.A net gain is not a voter flow, and a second-round majority is of that round’s valid votes. Both are correctly stated.
New ZealandApply 5% OR a local win; distinguish total entitlement from list top-ups; assess an exception without deleting the direct winner.Removing an eligibility route is not a complete alternative seat allocation. The lab is honest about that limit. The 10-total/3-local question is the strongest bounded transfer item.
Briefs and synthesisDefend a preference using numbers, a cost, an assumption, and evidence for reconsideration.Completion is not quality; the product explicitly reserves judgment of arguments to an instructor. Preserve that distinction.

Strengths to retain

  • Political recommendations are not keyed as right or wrong, and each receives a tailored cost prompt.
  • The numeric cutoff rounds upward correctly. Internal module checks produced 154,855 at 3.25%, 12/10/6 qualifying lists at 2%/3.25%/5%, and the supplied NZ 65/33/10/10/2 seat totals.
  • The UK benchmark uses a full vote denominator while displaying selected parties, labels fractional seats, and does not pretend to be a complete reform forecast.
  • Israel repeatedly separates ballot validity, eligibility, and seat allocation; New Zealand preserves direct local winners and avoids fabricated alternative totals.
  • Liberia confronts the aggregate-inference error directly, supplies participation denominators, and identifies the new ballot rather than implying automatic transfers.
  • Failed checks receive specific conceptual repairs; supported progression is distinct from a passed check. The UI retains current drafts and submitted answers, giving an instructor useful evidence once the summary-label bug is fixed.
  • Real photographs and conceptual illustrations are identified separately; the Liberia photograph explicitly does not establish how individuals voted.

Overall recommendation: fix the two record-honesty bugs first, then improve the opening prompts and point-of-use vocabulary. Preserve the difficult inferential work. Claims about increased engagement or improved learning require a later observed classroom pilot; this review establishes source-based risks and strengths only.

Faculty perspective 2 · group discussion response

Faculty pressure-test 2: discussion

I read the docket, novice_student_4, faculty_pressure_3, and the current application/CSS. I agree with their concern that opening settings and seeing worked answers cannot establish understanding. The revision makes that distinction substantially clearer: the lab records settings viewed, support is described as an example shown, and the existing brief must still explain the mechanism. The optional changed-input oral applications are useful practice. They are not recorded evidence of successful transfer.

The two requested fixes are verified by source inspection. brief() now uses c.firstThought for its saved opening baseline; entry() shows “Opening submitted thought” separately from the current draft, including printable output. Both the save button and phase-tab route capture the snapshot only when absent. checkStatus() derives assistance chronology from the successful submission’s hintBefore/workedBefore, and both the disabled post-pass hint button and handler guard prevent the previous false history. These are source-level checks, not browser observations.

My concrete disagreement with faculty_pressure_3 is that a separately recorded fresh-application check is unnecessary for this revision. Retaining instructor judgment of the existing explanation, while naming supported exposure honestly, is proportionate. A new mandatory assessment layer would require its own validity argument. Likewise, the content-neutral writing plan gives students the reasoning moves without supplying a completed case argument. This preserves rigor: the cutoff calculation, aggregate-inference question, altered-entitlement application, two-setting explanation, accepted cost, and comparison limits remain.

One refinement remains before publication: home() still advertises “Source evaluation,” and instructor() repeats it, despite the docket’s narrower decision. Change those labels to “Evaluating claims from evidence,” or explain that scope beside them. Selecting a supplied record is a citation action, not a provenance audit. This is a small copy correction, not a reason to introduce web research.

No blocker remains in the first-thought or help-chronology fixes. The remaining learning risk is that fluent synthesis may still conceal a weak mechanism explanation; only instructor review and an observed novice pilot can establish that outcome.

Faculty perspective 3 · independent blind review

Independent faculty pressure test: introductory pedagogy and assessment

Scope: source-based walkthrough of the frozen student product, after reading REVIEW_SCOPE.txt. I read index.html, app.mjs, style.css, data.json, elections.mjs, and photos.json. I did not inspect prior reports, instructor documents, the standalone product, or a browser. This review identifies design risks; it does not report student observations, completion times, learning gains, or measured reading difficulty.

The intellectual core is appropriate for introductory political science: explain an electoral mechanism, use a numerical record, distinguish an inference from a result, and defend a value-laden institutional choice without claiming that arithmetic settles it. Simplifying the language need not reduce that challenge. The main weaknesses concern whether a novice knows what counts as a successful explanation, whether essential political vocabulary is available when needed, and what evidence of understanding remains after support supplies an answer.

Ranked issues

1. The writing requirements are present but insufficiently operational for a novice

Priority: high. Evidence: app.mjs:120, brief(), combines the case-specific instruction with “Use both compared settings,” “Confirm or revise your first thought with a figure,” and “Two or three connected sentences are enough.” The recommendation, cost prompt, record selector, next-evidence field, and first-thought drawer contain further expectations. portfolio() at line 128 adds a rule, figures from two cases, a cost, a fixed input, a possible strategic response, and a comparison limit within “a short paragraph.” fileBrief() at line 155 and finish() at line 159 appropriately validate completion rather than the quality of prose; they cannot tell the student which reasoning move is missing.

Consequence: An inexperienced writer must infer the difference between listing two numbers and explaining a mechanism, or between naming a cost and accepting a justified cost. Sentence counts become a misleading proxy for completeness. An articulate student could write fluent but incomplete prose while a careful student could overproduce to cover every instruction. The final message correctly says an instructor reviews quality; the problem is not the absence of automatic essay grading.

Rigor-preserving fix: At the first brief, show one short annotated example, using a small hypothetical election so it does not give away a case answer. Identify four moves: recommend a rule; compare a relevant figure under each setting; explain how the rule produces the difference; justify a valued gain and an accepted cost. Keep next evidence in its existing separate field. Show the same compact checklist beside later briefs, and add the two extra final criteria—comparison limit and model assumption/possible response—beside the final paragraph. Say “usually a few sentences; cover the reasoning moves” rather than treating two or three sentences as a ceiling. An ungraded self-check is enough; do not add unreliable automatic prose scoring or more required essays.

2. Essential design vocabulary is unevenly supported at the moment of use

Priority: high. Evidence: PRIORITIES at app.mjs:18 puts “National proportionality” and “Local representation” into the opening choice in briefing() at line 83 without a concrete definition. The Israel brief requires a concern about fragmentation (TEACHING.israel2022, line 14); brief() defines fragmentation, but the accompanying pressure test introduces “coalition bargaining” without explaining coalition or why parties bargain. The same case's background says list proportional representation allocates seats among lists without explaining the proportional relationship. portfolio() at line 128 introduces “assembly” as an institution choice. UK support is better: constituency, seat, and plurality are defined, and the compensatory tier receives a brief definition before the recommendation options.

Consequence: The student can do the counting yet lack the conceptual vocabulary needed to weigh the political consequences. This creates extraneous difficulty precisely where the assignment aims to assess judgment. An average 18-year-old's familiarity with coalition government or parliamentary terminology cannot be assumed from everyday familiarity with voting.

Rigor-preserving fix: Use plain labels plus the disciplinary term: “Seat shares close to vote shares (proportionality),” for example. Add short, keyboard-accessible definitions that open on tap or click as well as hover. Include a concrete proportionality example (30% of votes and about 30% of seats), coalition (parties agreeing to form or support a government), assembly (a body with many elected seats that makes laws), list, and electorate. Explain coalition bargaining before asking students to use it: more parties can create more potential negotiating partners, but the count alone does not establish instability. Keep the qualified political claim; simplify access to it. A large compulsory glossary would add unnecessary workload.

3. The supported path enables progress but does not establish a fresh application after the answer is supplied

Priority: high for learning claims; not a reason to remove support. Evidence: check() at app.mjs:143–150 sets supported=true after two unsuccessful complete submissions. worked() at line 110 then supplies the exact Israel cutoff, Liberia net gain and interpretation, and New Zealand qualification and altered Green list-seat answer. nextEvidence() at line 154 and fileBrief() at line 155 permit supported progress even while checked remains false. A later pass still uses the same questions. The notebook distinguishes support from an independent pass, which is a valuable safeguard.

Consequence: The supported route establishes exposure to a worked solution and continued participation. It does not by itself establish that the student can now apply the idea. Re-entering the displayed answer is weak evidence of independent understanding. This matters especially for the New Zealand transfer claim: its changed Green entitlement question is useful, but the worked representation also supplies that exact changed answer.

Rigor-preserving fix: Preserve nonpunitive progress. After worked support, offer one short parallel application with a new input, replacing a repeated submission rather than adding another full check. Examples: a list election with 100,001 valid votes and a 5% boundary, or a fixed ten-seat entitlement with four local seats. For Liberia, show two hypothetical gross-flow accounts with the same net gain and ask whether totals choose between them. Record whether the fresh application was correct, assisted, or still needs follow-up. Students should still be allowed to continue with support; do not create an endless mastery gate. Describe completion as completed practice, and reserve stronger understanding claims for the fresh application and the instructor-read explanation.

4. “Source evaluation” is broader than the work the student actually performs

Priority: medium. Evidence: home() at app.mjs:82 advertises “Source evaluation.” sourceLinks() at lines 93–95 supplies useful provenance notes and links, including the Liberia archive qualification. brief() at line 120 asks students to attach an authored R1/R2/R3 record label. The bounded questions at lines 104–109 assess what a count or rule supports; none requires identifying a source's authority, date, purpose, or limitation. Opening a source is optional. skills() at line 140 more accurately calls the skill “Evaluate evidence.”

Consequence: Evaluating an inference from a supplied record is authentic and valuable, but it does not establish source criticism. Attaching an R-label can demonstrate relevance without demonstrating how the student judged the originating record. Faculty should not infer source evaluation from a completed notebook alone.

Rigor-preserving fix: The smallest change is to call this “Evaluating claims from evidence” wherever it describes the assessed task. If source evaluation is essential, replace one existing next-evidence task with a short provenance question based on the supplied notes: identify the record supporting the count, explain the archive limitation, and name what requires another kind of evidence. Keep the task answerable from supplied material; do not turn a compact simulation into an unguided web research exercise.

5. The revision task is not anchored consistently to an original explanatory claim

Priority: medium. Evidence: In TEACHING (app.mjs:13–16), three initial questions ask what to investigate, rather than asking for an explanation. surprise() at line 96 makes the written hunch optional and explicitly accepts a phrase or question. brief() at line 120 subsequently asks students to confirm or revise the first thought with a figure. A snapshot is correctly stored in firstThought when first saved (line 167), but the visible “Revisit your first thought” drawer and entry() at line 125 show the mutable current prediction and hunch. plainNotebook() at line 156 does retain the opening submitted snapshot separately.

Consequence: A student who chose a sensible research direction has not necessarily made a causal claim that can be revised. A student who edits the first-thought fields may no longer see the original on the writing screen. Consequently, revision evidence is partly contingent on optional writing and can be confused with having answered the opening question. Confirming an initial view with better evidence is intellectually legitimate; forced opinion change is not the goal.

Rigor-preserving fix: Keep the low-stakes choice. Prompt the optional hunch as “My possible explanation is …” and display the immutable saved snapshot when revisiting it. If no explanatory hunch was supplied, use “Explain how the evidence answered your opening question” instead of requiring a revision. If there was a claim, ask “What evidence strengthened or changed it?” This elicits the intended reasoning without another essay or a reward for changing political preferences.

Strengths to protect

  • The cases make students distinguish several politically consequential units: ballots, valid votes, qualification, local victories, seats, and a president's decisive-round votes. The valid-ballot/qualification distinction and net-change/individual-flow distinction are especially worthwhile.
  • The UK lab openly uses fractional benchmark seats, the threshold labs label eligibility rather than inventing exact seats, and the Liberia comparison separates a fixed October plurality model from the actual November ballot. Retain these explicit limitations.
  • The records constrain claims about narrow defeats, national geographic patterns, voter transfers, and instability. These are productive intellectual difficulties, not needless caveats to remove for accessibility.
  • The recommendation is value-neutral; costs depend on the selected choice; each brief asks for evidence that could challenge it. This gives the activity more disciplinary substance than choosing a preferred rule.
  • The persistent comparison cards and figures available during writing reduce memory demands. The New Zealand total-entitlement question usefully tests that local seats are inside, rather than added on top of, the entitlement. Retain it.
  • Specific repairs, an available hint, and supported progress prevent a small arithmetic or vocabulary problem from stopping the entire investigation. Preserve those routes and their honest notebook labels.

These are source-based design judgments. The product needs an actual introductory-student pilot before anyone can claim that its language, pacing, or workload works for average 18-year-olds. That pilot should examine whether students explain the mechanism and limits in their own words, not simply whether they finish or select the displayed correct answer.

Faculty perspective 3 · group discussion response

Faculty discussion response

After reading the docket, novice report 4, faculty report 2, and the current app.mjs/style.css, I support the revision. brief() and portfolio() now make the argument's components visible; the priority glosses, staged New Zealand rule, and accessible term controls reduce vocabulary and memory demands. modelBoundary() appropriately places the inference limits beside the writing task. Displaying firstThought and deriving checkStatus() from submission history address substantive evidence-recording concerns raised independently across the reports.

One remaining risk is assessment interpretation. The new oral applications in worked() provide useful fresh practice, but an optional, unrecorded response cannot establish independent understanding. The explicit warning about exposure and the instructor-read brief keep the claim honest. I agree with retaining supported continuation and avoiding another mandatory gate or prose field.

I refine my original recommendation for an annotated example: the content-neutral plans are a substantial improvement, but a checklist still may not show the difference between juxtaposing figures and explaining their causal connection. An optional two-line, invented example contrasting a number-only claim with a mechanism explanation could clarify that standard without supplying a completed case paragraph. This is a refinement for teaching or a later iteration, not a publication blocker.

I disagree with making delayed explanatory context necessary, as faculty report 2 proposed. The revised opening explicitly serves as an ungraded investigation choice. Keeping useful context supports entry for novices; it need not function as a diagnostic pretest. Subsequent development of an inquiry can be assessed without treating the first selection as a measured baseline of understanding.

These changes do not lower rigor: calculations, comparison of settings, explanation, accepted cost, further evidence, strategic response, and limits of transfer remain required. They make the work more legible. I identify no pedagogical publication blocker in the inspected revision. Actual suitability for average 18-year-olds remains a classroom-pilot question; these source reviews cannot establish pacing or learning gains.