{{ progressPercent }} %
  • {{ q.id }}. {{ q.text }}
{{ resultText.title }}
{{ resultText.badgePrefix }} {{ totalScore }} – {{ severityLevel }}

{{ resultText.answersHeading }}
# {{ resultText.questionCol }} {{ resultText.answerCol }}
{{ a.id }} {{ a.text }} {{ a.answer }}

Introduction

The Kessler K10 screens psychological distress over the past four weeks. It captures fatigue, anxiety-like symptoms, low mood, and effort so you can monitor mental health and decide when to seek support.

Rate how often each experience occurred from none of the time to all of the time. Higher numbers indicate greater distress, letting the scale map total severity and subcluster patterns.

Mood meter with balanced arcs

Results provide the 10-50 total, severity band, cluster subscores (anxiety-like, low mood, fatigue/effort), dominant patterns, driver items, strengths, and tailored coping suggestions. Alerts highlight when distress or safety prompts clinical follow-up.

Use the scale for self check-ins, primary care visits, and digital therapy programs. High totals, rising trajectories, or safety concerns should prompt a conversation with a qualified clinician.

Technical Details

Responses xi range from one to five. The total T sums all ten items (10-50). bandName() labels totals as Low (≤19), Mild (20-24), Moderate (25-29), or Severe (≥30).

deriveInsights() subtracts one from each item to standardise them at zero-based severity, then aggregates into clusters: anxiety-like (items 2, 3, 5, 6), low mood (items 4, 7, 9, 10), fatigue/effort (items 1, 8). It calculates percentages, grade labels via gradeCluster(), identifies the top cluster, and determines profile balance.

Driver lists contain items scored four or five; strengths list those scored one or two. buildNextSteps() blends severity bands with cluster dominance to suggest coping skills and when to seek professional care.

The tool also flags risk when items 4, 8, or 9 reach five, adding urgent support reminders to the highlight list.

T = i=110 xi A = x2+x3+x5+x6 M = x4+x7+x9+x10 F = x1+x8
Symbols and sources
Symbol Meaning Unit / datatype Source
T Total distress score points totalScore
A Anxiety-like cluster total points deriveInsights
M Low mood cluster total points deriveInsights
F Fatigue / effort cluster total points deriveInsights
g Cluster grade (low, mild, moderate, high) string gradeCluster
P Dominant cluster label string deriveInsights
Band interpretation
Band Total range Implication
Low 10 to 19 Maintain routines; check in periodically.
Mild 20 to 24 Add self-care adjustments and monitor change.
Moderate 25 to 29 Consider guided self-help or clinical consultation.
Severe 30 to 50 Seek professional evaluation promptly; engage support networks.

Cluster percentages drive the coloured bars in the subscore panel, making it clear where distress concentrates.

Risk flags note when high severity items require urgent outreach, echoing deriveInsights() logic.

Variables & Parameters

Parameters
Parameter Meaning Unit Typical range Sensitivity
T Total distress points 14-40 Sets severity band
A Anxiety-like subscore points 8-20 Signals worry and agitation load
M Low mood subscore points 8-20 Captures hopelessness and sadness
F Fatigue / effort subscore points 4-10 Highlights exhaustion patterns
Risk flag Indicates high severity item triggers boolean true/false Prompts safety messaging

Each one point change in an item shifts the relevant cluster and total by one, making the scale responsive to subtle shifts.

Rounding Policy

Totals and subscores remain integers. Percentage displays round to whole percentages, while totals display exactly.

Input & Validation

Validation rules
Field Accepted values Notes Placeholder
Item selectors 1-5 All ten must be answered to compute results. None
Query string r [1-5-]{10} Hyphen stores blanks; invalid strings reset decoding. N/A

Responses sync into the query parameter after each change, enabling consistent share links.

I/O Formats & Encoding

Inputs and outputs
Channel Content Encoding Precision
User interface Ten Likert radios Integer Exact
URL parameter r 10 character response string ASCII Exact
Computed outputs Total, clusters, highlights, next steps Number / string Exact

Export buttons provide CSV, JSON, PDF, and DOCX outputs for clinical notes or self tracking.

Networking & Storage

All computation is local; no external requests are made.

Only the query parameter holds data. Clear it to reset.

Performance & Complexity

Processing is O(10). Chart elements reuse a single ECharts instance, keeping performance light.

Diagnostics & Determinism

Given a fixed encoded string, decode() reconstructs responses exactly, ensuring identical scores, clusters, and guidance.

Security Considerations

Inputs accept only digits 1-5 or hyphen. No cookies, localStorage, or analytics run; mental health data stays on the device.

Assumptions & Limitations

  • Heads-up K10 is a screening tool; diagnosis requires a clinician.
  • Self report can be influenced by current mood or situational stress.
  • Encoded URLs contain sensitive mental health information; share with care.
  • Clusters are heuristic; discuss context to interpret nuances.
  • High scores should prompt professional evaluation, especially if safety is at risk.

Edge Cases & Error Sources

  • Leaving items blank keeps totals low until completion.
  • Invalid query strings reset the survey.
  • Uniform responses (all 1s or 5s) may signal inattentive responding; verify before using.
  • Assistive technology may reorder focus; confirm via the answer list.
  • Printing before completing yields an empty chart; reopen results to redraw.
  • Browser translation could change item nuance; use original wording.
  • Sharing encoded URLs without consent exposes mental health data.

Scientific & Standards Backing

Severity thresholds mirror bandName(). Cluster definitions and risk checks reuse logic from deriveInsights().

Next steps derive from buildNextSteps(), keeping coping suggestions aligned with the coded heuristics.

Privacy & Compliance

All processing stays client side. When used clinically, obtain consent, document storage plans, and follow mental health privacy regulations.

How-to Use

  1. Step 1Pick a consistent check-in time and note recent stressors or supports you want to monitor.
  2. Step 2Answer all ten items based on the past four weeks, focusing on overall frequency rather than single episodes.
  3. Step 3Review the severity band, cluster subscores, and next steps, then share or export the results if you need professional feedback.

ExampleRun K10 before therapy, notice anxiety-like scores stay high, and discuss exposure practice plus worry scheduling with your clinician.

Outcome: you track distress trends, target coping skills, and seek support at the right time.

FAQ

What does a total of 27 mean?

It falls in the Moderate band, suggesting clinically meaningful distress. The tool recommends professional consultation and enhanced coping plans.

Where is my data stored?

Responses stay in memory and the optional r parameter. Clearing the URL or closing the tab removes them.

How accurate are the cluster labels?

Clusters follow the heuristic grouping in deriveInsights(). They show relative emphasis but should be discussed with a clinician for nuance.

Can I export the results?

Yes. Use the export controls to capture CSV, JSON, PDF, or DOCX files for records or therapy journals.

Does it work offline?

Once loaded, the tool runs offline; charts and exports remain available.

Is there a cost?

No. The K10 calculator runs free in your browser.

Why does the summary mention urgent support?

If any item hits five or the total is Severe, deriveInsights() sets a risk flag so highlights remind you to reach out for immediate help.