All Projects
Fullstack · Credit underwriting workbench

An underwriting workbench where the model explains itself

A fullstack credit-risk workbench rebuilt with explainability as a screen, not a footnote — underwriters see the reasoning behind every score where the decision happens.

Start a Project
Client
Stratum
Industry
Consumer credit & underwriting
Year
2024
Duration
16 weeks
Role
Full-stack engineering + ML feature work
Team
5 engineers, 1 data scientist
Platform
Fullstack
Under NDA
The challenge

The prior scoring model was accurate but couldn't say why it reached a number, so underwriters overrode it on instinct more often than not. Accuracy that never survives contact with a decision isn't really accuracy — it's a suggestion nobody trusted enough to follow.

Approach & solution

Approach

Rather than retrain the model and hope trust followed, we treated explainability as a first-class screen, not a report generated after the fact. The scoring service was rebuilt on a documented feature set specifically so its reasoning could be rendered next to the score, at the moment the underwriter needed it.

Solution

A retrained scoring service with a documented, traceable feature set, a case-level explainability panel rendered beside the score in the workbench, and a monitoring pipeline that flags drift before it reaches a lending decision.

The underwriting workbench, with the explainability panel open beside the score.
A single case's feature trace, showing which inputs moved the score most.
What shipped

The capabilities behind the screens.

Retrained scoring service

Built on a documented feature set every score can be traced through.

Case-level explainability

The reasoning behind a score sits next to it, not three clicks away.

Documented feature set

Every input to a score is named, sourced and reviewable.

Drift monitoring

Flags a model drifting off its training distribution before it lends badly.

Underwriter workbench

Score, trace and case history in one screen, not three systems.

Override audit trail

Every underwriter override is logged against the score it overrode.

Tech Stack & Architecture

The client-side architecture and interface layer shipped for this engagement.

3 tools · 1 primary

Services, APIs, and business logic running the system end to end.

3 tools · 1 primary

Datastores and pipelines chosen for this engagement's consistency and throughput needs.

3 tools · 1 primary

Deployment, orchestration, and delivery tooling running the platform in production.

3 tools · 1 primary

System architecture

Technical challenges

Tracing a score without adding latency to the decision

Computing a full explainability trace at request time risked slowing every application review. Feature contributions are precomputed alongside the score itself, so the trace is a lookup, not a second inference pass.

Retraining without breaking the explainability contract

A retrained model could silently drop or rename a feature the workbench's trace view depended on. The feature set is versioned and validated against the workbench's contract before any retrained model can deploy.

Catching drift before it reaches a lending decision

Model drift is invisible until it shows up in bad loans months later. A monitoring pipeline compares live feature distributions against training data daily and flags a model for review before it drifts far enough to matter.

How it was built

The stages this engagement ran

01

Brief & Strategy

2 weeks

Shadowed underwriters to see exactly where they stopped trusting the old model's number.

02

Strategy & Planning

2 weeks

The documented feature set was scoped before a single line of the scoring service was written.

03

UX & UI Design

2 weeks

The explainability panel was designed to sit beside the score, never behind a second click.

04

Development

6 weeks

Scoring service and workbench UI built against the same feature contract simultaneously.

05

QA & Optimization

3 weeks

Backtested against a year of prior decisions to confirm the new score matched sound overrides.

06

Deployment & Support

1 week

Rolled out to one underwriting team first, expanded once override rates dropped.

Results

What changed, in the numbers.

1
Documented feature set every score traces through
<100ms
Time to render a case's full explainability trace
↓
Underwriter override rate, down against instinct-only decisions
0
Retrained model deploys that broke the trace contract

“Underwriters stopped overriding the model out of habit. They can finally see what it saw.”

Yuki Tanaka · Director of Engineering · Stratum

Selected screens

Stratum, in the product

The workbench's default view — score and explainability panel, side by side.
The drift monitoring dashboard, flagging a feature distribution before it matters.
An underwriter's override, logged against the score it overrode.
The documented feature set's review view, versioned against every model release.

Technical briefingNot a sales desk

PRJECT IN MIND?

Tell us the load.
We will calculate the structure.

Let's Talk