Skip to content

Responsible AI

What this platform will not claim

Assessment data decides who gets opportunities. That makes overstatement a real harm rather than a marketing flourish, so the constraints below are enforced in code and visible in the product.

No employment predictions

Role readiness measures how your assessed skills compare with the competency profile your institution configured for this role. It is not a prediction of hiring outcomes.

How it is enforced: Every generated string is scanned before it is stored or displayed. Text containing a hiring probability, a placement guarantee or a predicted offer is rejected and the deterministic fallback is shown instead.

Unmeasured is not zero

A competency a student was never assessed on is reported as unmeasured. It is excluded from their overall readiness rather than scored as zero, and the competency radar draws a gap rather than a spike into the centre.

How it is enforced: computePassport() excludes unmeasured dimensions from the weighted mean, and the radar renders open polygons across measured axes only.

Scores state their basis

A percentile is never shown without its comparison population and sample size. Where fewer than 30 comparable results exist, no percentile is shown at all — a position in a group of eight is not information.

How it is enforced: computePercentile() returns isReportable: false below the threshold, and describeStanding() returns null for an unreportable result, so there is no code path that renders the phrasing without the number behind it.

Calibration status is disclosed

An item's difficulty parameters are the author's estimate until 200 scored responses exist. Ability estimates derived from uncalibrated items are provisional, and the results screen says so rather than presenting them as validated measurement.

How it is enforced: Questions carry isCalibrated, results report the calibrated share of the items served, and the AI analysis receives that flag and hedges accordingly.

Correlation stays correlation

Cohort findings are phrased as observed associations with their caveats attached. The platform does not claim that practice causes higher scores, because students who practise more differ from those who do not in ways that also affect their scores.

How it is enforced: describeRelationship() produces the only wording the AI layer may use for an association, and causal phrasing is on the prohibited-claim list.

Sensitive attributes monitor outcomes, never produce them

Gender, caste, religion and similar attributes may be used to check whether the platform is serving one group worse than another — that monitoring is exactly how bias is caught. They may never be used to compute a score, rank a student, build an intervention cohort or decide who sees an opportunity.

How it is enforced: assertPermittedUse() throws on any scoring, recommendation, eligibility or prediction use. Cohort filters are validated at the boundary, and the natural-language analytics surface does not expose these attributes as query dimensions at all.

Integrity signals go to humans

Proctoring produces evidence and a risk band, never a verdict. No code path fails, penalises or flags a student automatically. Every signal is displayed alongside its common innocent explanation, and connectivity problems carry no integrity weight at all.

How it is enforced: The highest band is named HUMAN_REVIEW_REQUIRED, the reviewer guidance is rendered before the findings, and there is no action in the product that invalidates an attempt automatically.

AI output is a draft until a human approves it

Generated questions enter the bank at DRAFT status and pass structural validation, duplicate detection and human review before publication. A generated item with a wrong answer key does not produce a wrong answer — it produces a wrong measurement of a real student, silently and at scale.

How it is enforced: acceptGeneratedQuestionsAction() writes status: DRAFT with no override, and publishQuestionAction() refuses anything not already APPROVED.

Generated text cannot invent numbers

The AI layer never computes a score. It receives the computed figures as grounding and is permitted only to interpret them. A generated statement containing a figure that was not supplied to the model is rejected before it reaches a screen.

How it is enforced: guardObject() walks every string in a model's output and compares each number against the grounding data. On a mismatch the output is discarded and the deterministic version is shown, with the violation recorded on the artifact.

Small groups are suppressed

Any comparison broken down to fewer than five assessed students is suppressed and reported as suppressed, rather than silently dropped. Cross-institution benchmarks require explicit consent and a higher minimum cell size.

How it is enforced: compareGroups() flags groups below the threshold, the analytics executor removes them and returns the list, and canPublishBenchmark() blocks cross-institution cells without consent.

Blocked claims

This list is rendered from the same constant the output guard uses, so it cannot drift out of sync with what the product actually blocks.

  • No assessment can guarantee an employment outcome.

    Instead: Describe measured readiness against the configured competency profile.

  • Predicting an individual employment outcome is not supportable.

    Instead: State what the assessment measured and what the gaps are.

  • Readiness scores are not hiring probabilities.

    Instead: Report the readiness score with its coverage and basis.

  • Validation claims require an actual validation study.

    Instead: State the method used and whether the items are calibrated.

  • Integrity signals are evidence for human review, never a verdict.

    Instead: Describe the observed signals and refer to a human reviewer.

  • Observational cohort data cannot establish causation.

    Instead: Describe the relationship as an observed association.

  • This platform does not measure general intelligence.

    Instead: Refer to the specific competency that was assessed.

  • Deficit language about a person, rather than about a measured skill.

    Instead: Name the specific gap and the next action that closes it.

What this platform cannot tell you

  • · Whether a student will be hired, or by whom.
  • · How a student will perform in an interview.
  • · Anything about a competency it has not assessed.
  • · Whether a low score reflects ability, preparation, access to resources, or the conditions a student sat the assessment under.
  • · Whether an intervention caused an improvement, as opposed to accompanying one.
  • · Whether a student cheated.

Questions about how a specific figure was produced should go to your institution’s administrator, who can see the evidence ledger behind every score.