Make the regular-interview pass threshold configurable

Author: stardustmegCreated Aug 8, 2026Updated Aug 8, 2026
Labelsarea:interview

Preferred deadline

Before the first I1 results are published for the redesigned JS/TS Web Dev course.

Problem

Regular task interviews produce numeric scores, but the passing boundary is currently treated as a fixed 4/10 rule in existing course behavior. The redesigned interview definitions in #3093 calculate a score from 0 to 100 and this course requires 60%. Other courses may require another threshold.

The boundary must therefore be explicit configuration, not a constant embedded in a client, template, or certificate calculation.

The current student card also routes regular interview results through Technical Screening decision helpers:

A numeric regular-interview score must not be interpreted as a Mentor-selection decision.

Proposed behavior

Add a configurable passThresholdPercent for each regular Interview CourseTask, or an equivalent reusable regular-interview result configuration.

  • Administrators configure a value from 0 to 100.
  • I1–I8 in the redesigned course use 60%.
  • Normalize the final interview score to a percentage before comparison, regardless of whether a legacy form uses 0–10 and a new definition uses 0–100.
  • A score equal to the threshold qualifies; a lower score does not.
  • Derive the displayed Passed/Failed or qualifying result server-side, or return it explicitly from the API. Clients must not duplicate the calculation.
  • The numeric interview score remains the authoritative stored result. Do not add a second manually editable pass/fail interview result.
  • Keep certificate rules and mandatory dimension floors separate; they may consume the configured threshold but are not implemented here.
  • Keep Technical Screening separate. It uses the Mentor decision and no numeric threshold, as described in #3094.
  • Use the concise student result card from #3093: final score, derived result, and submitted configured feedback when present.
  • Do not expose closed questions, suggested answers, answer guidance, or internal evidence notes in the student result.
  • Migrate existing regular Interview CourseTasks to explicit thresholds that preserve their current behavior instead of retaining an implicit global 4/10 default.

Suggested student card:

I3 — JS, Fetch/HTTP, async, errors, and ownership
68.5 / 100 · Passed

Feedback
<submitted Interviewer feedback>

Administration and migration

  • Show the threshold only for regular numeric Interview CourseTasks.
  • Validate it as a percentage from 0 to 100.
  • Changing the threshold after results exist must either be blocked or use an explicit audited migration/recalculation path.
  • Existing regular interviews retain their current effective boundary after migration.
  • Technical Screening and other decision-backed tasks do not show this field.

Acceptance criteria

  • A course administrator can configure a 0–100 threshold for a regular Interview CourseTask.
  • The redesigned course can use 60% without another RS App code change.
  • Equality passes and a score below the configured threshold fails.
  • The server/API supplies the derived result consistently to every client.
  • No regular-interview client contains a hard-coded 4/10, 40%, or 60% rule.
  • Numeric regular-interview results are not passed through Technical Screening Decision helpers.
  • The student card shows the final score, correct derived result, and configured feedback when present.
  • A form without feedback does not render an empty Feedback section.
  • Existing regular Interview CourseTasks preserve their effective threshold through explicit configuration/migration.
  • Technical Screening continues to display the Mentor decision without a numeric threshold.
  • Tests cover threshold equality, values immediately below/above it, legacy and 0–100 scales, missing configuration, migration, result-card rendering, and Technical Screening separation.

Related issues

  • #3093 — dynamic regular-interview definitions, scoring, feedback, and student result card.
  • #3094 — threshold/decision-backed pass/fail CourseTasks and scoreless Technical Screening.

Source: rolling-scopes/rsschool-app