← PRD examples
Tractable · PRD

Migrating a Legacy-Stack Insurer to Full Platform Parity

TL;DR

Enable Tractable's Estimating and Intelligent Triage use case for one of Europe's largest motor insurers by market share, who must remain on our legacy API stack indefinitely. This PRD scopes a compatibility layer that delivers full feature parity with our current platform, without requiring any change on the client's side.

PRD Owner
Prateek Raina
Design Owner
Product Design
Stakeholders
Engineering, Commercial, Operations, Regional & Product Analytics leads
Status
[Internal Status]

1. Introduction

Goal: Migrate the client off their legacy API stack onto Tractable's current platform, with full feature parity against everything they have today, plus the client-suggested improvements we're able to take on as part of this migration.

Scope: The feature-parity work needed to close every gap against the legacy stack, the triage logic, and the client-specific AI configuration needed to make the new platform a like-for-like (or better) replacement end-to-end.

2. Background

Customer Profile

The client is the undisputed leader in its country's insurance market, holding roughly 40% of the non-life insurance sector. Founded in 1922, it has grown from a local pioneer into a major European financial player. As the primary insurer for residents of its market, it manages a high volume of motor claims, with a strong focus on service standards and operational efficiency.

The Use Case: Intelligent Triage

The client uses Tractable's Estimating use case to automatically categorise claims at the moment of intake and determine the most efficient repair path. Based on photos and the policyholder's answers (drivability, airbags, etc.), the AI labels each claim Simple or Complex. A claim is flagged Complex if the First Notice of Loss indicates a bad vehicle condition (not driveable, windscreen shattered, airbags deployed, or any door that cannot open or close), or if additional damage is present on the claim.

2.1 User Personas

Policy Holder
Primary policyholders under the client's coverage
Primary goalGet their car repaired as fast as possible after an accident
Key interactionCompletes the Input Capture App: vehicle questions and photo capture
Claim Handler
The client's claim handlers who receive the First Notice of Loss and redirect the policyholder to Tractable or a claim triage expert
Primary goalUnderstand if a claim is in Tractable's scope, and get the policyholder to complete the link
Pain pointLow adoption, with an ongoing change-management effort to improve it
Claim Triage Expert
Does ad hoc quality checks on claims and liaises with the bodyshop
Primary goalEnsure Tractable's triage and estimate are high quality
Key interactionReviews triage and estimate outputs alongside the bodyshop
Bodyshop
Bodyshops in the client's approved repair network
Primary goalGet accurate triage and estimates so they can repair vehicles fast
Key interactionReceives estimate and triage in the eGarage portal; can edit before sending back

2.2 Client Legacy Feature Parity

Before migrating the client onto Tractable's current platform, every feature already live on their legacy stack must be accounted for, to guarantee a seamless transition with zero functional regression. Status tracked against the current platform (APP).

Applicable for the client 24
API, with portal access HIL, ~50% of cases Configurable table columns Filters Search View by status (tabs) Sort cases Create new case Case ID field VIN field Point-of-impact diagram Damage capture Corner capture Vehicle condition questions Mileage capture Completion screen Estimate shown in UI Estimate as PDF Repair value / vehicle value % PDF download Image gallery Image download as ZIP Additional damage flagging Multi-language capture app (FR/DE/EN)
Not applicable for the client 35
STP Case locking License plate capture In-app dashboard Information side panel Car damage diagram Inline estimate editing Export options Other new list-page features Shop field Customer first name field Customer last name field Customer email field Customer phone field Make / model / year fields Accident date field Registration number field Registration date field Multi-language create-case modal VIN capture in app Expedited payment flow Multiple vehicle brands Parsed body-shop estimate in UI Original body-shop estimate in PDF AI review flags, agree/disagree per flag Agree/disagree with all flags at once Editable labour-hours on AI flag Line-number reference to body-shop estimate Click AI flag to filter photos by panel Click AI flag to highlight estimate row Advanced photo gallery controls "Mark as reviewed" button with notes Multiple estimate versions View-only mode Manual case-status update

3. System Specifications

3.1 Client's Intake System
On first contact from a policyholder, the client's claim handlers run an eligibility check to confirm the claim qualifies for AI-automated processing. For eligible claims, the client triggers an API request to Tractable containing the vehicle's VIN and the date of the accident.
3.2 Tractable Backend
Generates a claim-specific Input Capture App link in response to the VIN and accident-date request. Once the policyholder completes image and data capture, the backend processes the submission into a full repair estimate and a Simple/Complex triage verdict, then makes both available to the client via API and portal.
3.3 Tractable Input Capture App
Guides the policyholder through a sequence of prompts to provide the required details, supporting upload of all essential vehicle images with secure transmission to the Tractable backend for automated AI processing.
3.4 Client's eGarage Portal
An external, client-owned portal that lets partner bodyshops review and edit the AI-generated estimate, and send an automatic feedback signal once a claim is fully repaired and closed.

4. Workflow & Designs

End-to-end business workflow, rebuilt as a swimlane diagram from the original whiteboard. Scroll horizontally on smaller screens.

Claims triage workflow POLICY HOLDER CLAIM HANDLER CLIENT SOFTWARE TRACTABLE BACKEND INPUT CAPTURE APP TRIAGE EXPERT EGARAGE (BODYSHOP) NO YES AUTOMATIC TRIGGER Has an accident, contacts handler Asks triage Qs, uploads details Runs eligibility check Tractable eligible? Claim sent to triage expert API call: VIN + date Generates capture link Sends link to PH by SMS Receives link, clicks through PH lands on Capture App Answers Qs, captures photos Generates estimate + triage output Estimate shown to bodyshop Reviews & edits estimate Closes claim on repair Feedback loop API triggered

Lanes represent each actor in the workflow; arrows follow the path of a single claim from intake to repair close-out.

5. Pain Points & Areas of Improvement

API Incompatibility
The client onboarded onto our legacy API stack about a year ago and has declined to update their endpoints to our current format. This forces a reliance on legacy formats that don't naturally align with our modern standards; their feedback-loop API happens to be closer to our current format than the estimating API is, making the mismatch uneven across the integration.
Increased Development Overhead
Because the client won't change their side, the entire compatibility burden falls on us. We have to build and maintain a custom adapter layer so any new APIs we build can connect the same way their legacy integration already expects.
Data Fragmentation & Visibility Gaps
The split between their legacy environment and our current platform creates a broken link in claim tracking. It's nearly impossible to follow a single claim from intake through to the feedback loop, leading to lost insights and reporting blind spots.

6. AI Assessment & Configuration Rules

Custom Estimation Rules
The client uses its own labour and paint-time tables for "strip and refit" work, rather than our platform default.
Inclusion Rules
Auxiliary panel labour is folded into the main panel's labour time rather than charged separately: if a main panel is being stripped, the auxiliary panel's time isn't added as its own line.
6.1 Claim Processing Outcomes
Every claim resolves to one of two states: Processable (success) or Non-Processable (exception), each with its own defined system behaviour. Full reason codes are tracked internally rather than reproduced here.

7. User Stories

A representative sample below; the rest are grouped by section and condensed where several rows describe one continuous flow.

Data Intake & Enrichment
Data Intake
As the Tractable system, I should be able to receive the car's VIN and accident date, so I can generate a claim-specific link for the policyholder.
Exists in APP
Data Intake
Tractable logs the claim as a new, independently stored and retrievable case.
Exists in APP
Data Intake
Tractable generates the claim-specific link to send to the insurer for the workflow.
Exists in APP
Input Capture App
Input Capture
As the Input Capture App, I should walk the policyholder through Welcome → Terms → Instructions → Vehicle Condition → POI Diagram → Damage Photos → Corner Photos → Summary → Done.
Exists in APP
Capture App
The app recognises the claim-specific link, so it captures details against the correct claim.
Exists in APP
Capture App
The app submits the policyholder's details back to Tractable so the platform can continue the workflow.
Exists in APP
Tractable Backend
Backend
Generates the AI estimate and Simple/Complex triage verdict to share with the client. The panel logic is shared across clients; only the triage decision is client-specific.
Exists in APP
Backend
Distributes the estimate and triage results via both API and the portal, so stakeholders can review and act on them.
Exists in APP
List View Page
List View Page
As a user, I should be able to search all cases by Claim ID, registration number, or VIN, so I can quickly find a specific case.
Exists in APP
List View
Cases can be grouped into status tabs, filtered by vehicle or creator, sorted, and paginated at 50 per page with clear page position and navigation.
Exists in APP
List View
Clicking a row opens the full case and estimate detail.
Exists in APP
List View
A "Create New Claim" button opens a modal to capture Claim ID, accident date, VIN, and other optional fields in English, German, or French. The Create button stays disabled until required fields are filled; submitting routes to the new case's detail page.
Exists in APP
List View
A date-range picker filters claims by accident date, and a profile menu gives access to account info and logout.
Exists in APP
Details Page
Details Page
As a Claim Handler, I want to see the AI assessment results, so I can review the estimate and move ahead in the workflow.
Exists in APP
Details Page
A widget lets the claim handler copy (and refresh, if expired) the Input Capture link to share with the car owner.
Exists in APP
Details Page
The page tracks the policyholder's step-by-step progress through the Capture App, then flags the case "AI assessment available" once everything is submitted and evaluated.
Exists in APP
Details Page
A car diagram highlights damaged panels and recommended operations with colour codes, so discrepancies are easy to spot visually.
Exists in APP
Details Page
The VIN is always visible in the top panel.
Exists in APP
Details Page
An image gallery supports zoom, rotate, invert, panel-based filtering, and opening images full-resolution in a new tab.
Exists in APP
Details Page
The estimate is shown directly in the UI for cash-settlement decisions, with a "Download PDF" option for offline use.
Exists in APP
Details Page
A side panel surfaces key case details, with a dedicated button to open full vehicle details.
Exists in APP
Details Page
Images can be exported as one ZIP file for sharing.
Exists in APP
Details Page
The claim ID and current status are always visible while handling a case.
Exists in APP
Details Page
The AI's repairable/not-repairable decision and estimated repair or replace cost are shown, so the handler can compare against the bodyshop's own estimate.
Exists in APP
Details Page
Total vehicle value and a repair-ratio bar show repair cost relative to the car's market value at a glance.
Exists in APP
Details Page
The Simple/Complex triage output is shown, so the handler knows which path to take next.
Improvement
Details Page / List View & General
Both
A language selector lets users switch between French, German, and English.
Exists in APP
General
Tractable handles feedback sent back by the bodyshop portal, so it can be tracked and used for analysis.
Improvement
Dashboard
Dashboard
As a client and Tractable team member, I want a dashboard, so I can keep track of important metrics.
Improvement