When expert review depended on workarounds

Designing for Uncertain Decisions

Designing for expert decisions under uncertainty.

NIOCCS My Files - a coder's workspace showing the active file in progress, review stats, and a clear Resume Review action

NIOCCS

NIOSH Industry and Occupation Computerized Coding System

The Purpose

Industry and occupation descriptions are often collected through surveys and medical records. NIOCCS helps convert those free-text responses into standardized numeric codes researchers can analyze. The workflow includes file upload, autocoding, coder review, QA review, and export of finalized coded data.

The Goal

The goal was to reduce manual coding without removing human judgment. NIOCCS used machine learning to learn from existing data and expert corrections, turning human review into feedback for future coding decisions.

Infographic: how NIOCCS works - providers upload data, autocoding, coder review, QA review, exported coded data

Issues

NIOCCS had grown through new functions and upgrades, but the interface still reflected backend logic more than user workflows.

Coders, QA reviewers, and administrators needed different workflows - and even within coding, beginners and experts needed different levels of guidance, context, and control.

NIOCCS was not simply hard to use. It exposed fragmented workflows, unclear states, and competing signals without enough decision support.

The original Computer Assisted Screen - a dense, undifferentiated record-review screen
The original View All screen - a flat, passive records table

Main Failures

Designed for the engine,
not the reviewer.

The interface exposed too many competing signals at once, but did not explain which ones mattered, which ones conflicted, or how much trust users should place in them.

Reviewers were not just reading information. They were making judgment calls under uncertainty while the system kept adding more unprioritized cues to interpret.

Comic contrasting how an advanced coder and a newer coder move through record review

The Insight

What the Research Revealed

User interviews and workflow analysis showed that the problem was deeper than interface clutter. Users were compensating for missing product logic with memory, personal judgment, and workarounds.

The issue was not lack of data - it was lack of prioritization, explanation, and decision support.

The system showed users signals.
It did not help them make decisions.

My Role

Leading Redesign
Under Constraints

I led UX and product thinking for the redesign effort, identifying workflow failures, trust issues, and usability breakdowns across the system while working within significant technical and organizational constraints.

The Team


Challenges & Constraints

The Direction

The Redesign Strategy

The redesign separated the work into two levels: stabilize the existing workflow first, then define a future model for decision support.

Phase 1

Stabilize the Workflow

Phase 2

Decide Under Uncertainty

A preview of key improvements

The old main page hid file status in a dated, passive table - nothing flagged what needed attention or where to resume.

The redesigned dashboard puts status front and center with one clear resume action, so coders continue right where they left off.

The original Computer Assisted Screen (a single record) showed every code, score, and candidate at once - a wall of competing signals with no hierarchy to interpret.

The redesign reorganizes around the decision itself: a clear working selection, ranked pairs with confidence, and signals you can actually read.

Before - the original cluttered main page, file status buried in a passive table After - the redesigned My Files dashboard with clear status and a resume action Before - the original Computer Assisted Screen, dense and undifferentiated After - the redesigned Computer Assisted Screen, a clear three-column decision layout

Prototype Preview

The Redesigned Workflow

Before breaking down the research and design decisions, here is the redesigned workflow at a glance: a more visible, recoverable, and decision-aware system for reviewing coded records.

Placeholder

Prototype preview placeholder - interactive demo or short walkthrough video

A glanceable view of the redesigned record-review workflow.

This preview shows the direction of the redesign: clearer system status, safer correction, better workflow continuity, and a stronger foundation for decision support.

Understanding the Users

What Shaped the Design

I interviewed coders and QA reviewers to understand how they reviewed records, handled uncertainty, reported problems, and discussed recurring issues with management. Across interviews, I focused on understanding of their daily review flow:

Research Focus

  • Daily review workflow
  • Trust and frustration points
  • Conflicting or unclear results
  • Error reporting and escalation
  • Feedback loops after issues surfaced
  • How experience shaped behavior
  • Navigating across screens
  • Workarounds and external tools

Who I Designed For

Research showed NIOCCS served multiple user groups through one undifferentiated experience. Needs varied across roles - and within coding, across experience - but the system offered the same path to everyone.

Beginner Coder

A newer coder needs the system to explain what matters, what to trust, and how to move forward safely.

Needs

  • Know what to review first
  • Understand why signals matter
  • Correct mistakes safely

Challenges

  • Too much complexity too soon
  • Unclear cues and priorities
  • Fear of choosing wrong

Advanced Coder

An advanced coder needs speed and control, but still depends on reliable signals to maintain confidence and momentum.

Needs

  • Review records quickly
  • Trust system suggestions
  • Track progress and repeats

Challenges

  • Conflicting signals
  • Slow, momentum-breaking steps
  • Extra verification outside the system

QA Reviewer

A QA or Admin needs to verify coder work efficiently, maintain consistency, and identify recurring issues before they affect more records.

Needs

  • Review coder work efficiently
  • Maintain coding consistency
  • Catch recurring issues early

Challenges

  • Problems surface too late
  • Repeated issues are hard to find
  • Errors repeat before being noticed

User Research and Insights

User interviews and workflow analysis showed that the problem was deeper than interface clutter. Users were compensating for missing product logic with memory, personal judgment, and workarounds. Across that research, the recurring themes kept surfacing:


Guiding Principles

In response to the research findings, stakeholder input, and project constraints, the following principles guided the redesign.

Low Fidelity

Design Ideation

The redesign started in low fidelity to solve the workflow structure before moving into high-fidelity design. The goal was to separate the experience into clearer layers: resuming file work, reviewing one record in CAS, and correcting records across the full file.

From File List to Resume Workflow

The old main page treated files as rows in a table, with status and actions scattered across the screen. The low-fidelity direction reframed the entry point around continuity: what file is open, how much work remains, and where the coder should go next.

Original main page - files listed as rows in a table with scattered status and actions Low-fidelity redesign - a resume dashboard showing active work, progress, and next action

From Crowded CAS to Decision Structure

The old CAS made coders interpret too much at once - codes, scores, pairs, candidates, and history all competing for attention. In low fidelity, I reorganized it around the coding decision itself.

Suggested Pairs - original CAS, dense competing information Suggested Pairs - low-fidelity redesign with a clearer applied-values summary and Select per pair Suggested Candidates - original CAS, two dense industry/occupation lists Suggested Candidates - low-fidelity redesign with two clear columns linking industry and occupation candidates Full CAS structure - low-fidelity redesign organizing the record, coding, alternatives, signals, and review actions

From Dense Table to File-Level Correction

The old View All blurred filtering, editing, selecting, and reviewing into one passive table. In low fidelity, I explored turning it into a file-level correction space - scan, select, and bulk-correct with more control.

Original View All - a passive records table with editing bolted on and weak prioritization Low-fidelity redesign - a file-level correction space with multi-select, bulk editing, and sorting

Usability Testing

User Feedback

Validation in this project was driven through iterative user feedback, internal walkthroughs, and screen-level usability analysis rather than formal controlled testing.

Key Insights

High Fidelity · Phase 1

Stabilizing the Coder Workflow

Phase 1 stabilizes the coder's daily workflow - finding files, resuming work, reviewing records, and correcting codes - making it clearer, safer, and faster without added complexity.

My Files

Picking Up Where You Left Off

The My Files screen becomes the coder's operational starting point - showing active work, file status, review progress, and a clear next action, so coders can resume without reconstructing where they left off.

My Files dashboard - the current file in progress, with review status and a clear resume action

With a file in progress, My Files shows where the coder left off and the next action, so they resume without reorienting.

My Files dashboard - files that need the coder's attention surfaced for follow-up

Files that need attention are surfaced up front, so nothing waiting on the coder slips out of view.

My Files dashboard - the empty state shown when no files are open yet

The empty state points a coder to start or open a file rather than leaving them on a blank screen.

CAS · Record Review

Turning Record Review Into a Clear Decision

CAS (Computer Assisted Selection) was redesigned from a crowded review screen into a structured decision space - separating the autocoded result, suggested alternatives, and signal explanations so coders can compare options, resolve conflicts, and review records without losing context. It works for experienced and new coders alike - deeper signals on hand, without overwhelming anyone.

CAS - the suggested industry/occupation pair, with the currently applied selection marked

CAS leads with the suggested pair and marks what is currently applied, so coders compare against a clear baseline.

CAS - alternative industry candidates offered beside the applied code for comparison

Alternative candidates sit beside the applied code, turning a single guess into a side-by-side comparison.

CAS - signal explanation showing why a result is suggested or where signals conflict

Signal explanations say why a result is suggested or conflicted - replacing unexplained cues with reasons coders can act on.

View All · File-Level Review

Making the Whole File Easier to Review and Correct

View All was redesigned from a passive table into a file-level review and correction space. Coders can scan every record, filter to the records that need attention, and apply safe bulk corrections when the same issue appears across multiple records.

View All - every record in the file in one scannable, file-level table

All records sit in one scannable view, giving coders the whole file at a glance instead of a record at a time.

View All - filtered to only the records that still need review

A Needs Review filter narrows the file to the records that still require attention, so effort goes where it matters.

View All - applying a safe bulk correction across multiple selected records

When one issue repeats across records, a safe bulk correction fixes them together - with the controls to review before applying.

High Fidelity · Phase 2

QA Decision Support

Phase 2 shifts from coder execution to QA analysis. The goal is no longer helping one coder move faster - the system now helps QA reviewers see where uncertainty, inconsistency, and recurring coding problems appear across a single file and the entire program.

QA File Analysis

Finding Quality Issues Inside One File

QA File Analysis highlights quality risks that are difficult to detect from the table alone. It shows the overall QA state of one file, then lets reviewers select findings - such as inconsistent coding or uncertainty hotspots - to filter the records behind them.

QA File Analysis - overall quality state of a single file, with findings to drill into

The overview states the file's overall QA health and lists the findings worth investigating, instead of leaving reviewers to read every row.

QA File Analysis - similar records that received different coding outcomes

Selecting a finding surfaces similar records that were coded differently - making inconsistency visible at the file level.

QA File Analysis - an uncertainty hotspot concentrating low-confidence records

Uncertainty hotspots concentrate the low-confidence records, pointing reviewers straight to where judgment is most needed.

Program Analysis

Finding Program-Wide Patterns

Program Analysis extends the same signal model across files, time, and teams. QA can start from a program-level view, select a signal such as Conflict Override, see where it concentrates across files, and open the scoped record grid behind that issue.

Program Analysis - program-level overview of coding signals across files

The program overview lifts the same signals above a single file, showing quality patterns across the whole program.

Program Analysis - how a selected signal is distributed across files

Choosing a signal shows where it concentrates across files, turning a vague concern into a located pattern.

Program Analysis - the scoped record grid behind a selected program-wide issue

Opening a pattern drops QA straight into the scoped records behind it - so a program-wide signal becomes specific, reviewable work.

Outcome

A validated design direction

The low-fidelity was tested with the coders and reviewers who’d use it, and that feedback drove the high-fidelity shown here. My contract ended while the high-fidelity was still in progress - so the team’s takeaway was a set of validated design recommendations, and what you see stands as the direction that work was heading toward, not a shipped product.