Confidence score reflects VIN recognition accuracy -- how confident the system is in the VIN number itself (OCR read quality), NOT how well the VIN matched to a Make/Model/Trim.
Make/Model/Trim fields are editable dropdowns -- after a VIN match, the decoded Make/Model/Trim should be presented in dropdown selectors that the user can immediately adjust, rather than read-only fields requiring an "Edit" button click.
Current Behavior
The confidence level shown to the user conflates VIN OCR confidence with vehicle data matching confidence.
Once a VIN is matched, Make/Model/Trim are displayed as read-only text fields. The user must click an "Edit" button to change them.
Expected Behavior
VIN Confidence
Confidence score should represent how accurately the VIN characters were read (OCR quality).
A high confidence means the system is sure about the 17-character VIN string.
A low confidence means the OCR had difficulty reading one or more characters.
Vehicle data matching (Make/Model/Trim lookup) is a separate concern and should not affect the VIN confidence score.
Editable Dropdowns
After VIN decode, Make/Model/Trim should be pre-populated in dropdown selectors (using the existing cascade dropdown API).
Dropdowns should be immediately editable without needing to click an "Edit" button.
The cascade behavior should work: changing Make reloads Models, changing Model reloads Trims, etc.
Engine and Transmission dropdowns should also follow the same pattern (editable, cascade-filtered).
Backend: Platform feature (backend/src/features/platform/) provides cascade dropdown API
Dropdown API: GET /api/vehicles/dropdown/{years,makes,models,trims,engines,transmissions}
Pair-safe API: GET /api/vehicles/dropdown/options for engine/transmission compatibility
Approach Notes
The VIN OCR review modal should separate VIN string confidence from vehicle match results.
The dropdown cascade infrastructure already exists and should be reused for the editable fields.
Consider showing a visual indicator for VIN confidence (e.g., color-coded bar or percentage).
Acceptance Criteria
Confidence score reflects OCR accuracy of the VIN string only
Confidence does NOT factor in Make/Model/Trim matching success
Make/Model/Trim are presented as editable dropdown selectors after VIN decode
Dropdowns are pre-populated with decoded values but immediately changeable
Cascade behavior works (changing Make reloads Models, etc.)
Engine and Transmission follow the same editable dropdown pattern
No "Edit" button required to change Make/Model/Trim values
Works on both mobile and desktop viewports
Existing VIN camera capture flow is not regressed
## Summary
Improve the VIN decode review flow so that:
1. **Confidence score reflects VIN recognition accuracy** -- how confident the system is in the VIN number itself (OCR read quality), NOT how well the VIN matched to a Make/Model/Trim.
2. **Make/Model/Trim fields are editable dropdowns** -- after a VIN match, the decoded Make/Model/Trim should be presented in dropdown selectors that the user can immediately adjust, rather than read-only fields requiring an "Edit" button click.
## Current Behavior
- The confidence level shown to the user conflates VIN OCR confidence with vehicle data matching confidence.
- Once a VIN is matched, Make/Model/Trim are displayed as read-only text fields. The user must click an "Edit" button to change them.
## Expected Behavior
### VIN Confidence
- Confidence score should represent how accurately the VIN characters were read (OCR quality).
- A high confidence means the system is sure about the 17-character VIN string.
- A low confidence means the OCR had difficulty reading one or more characters.
- Vehicle data matching (Make/Model/Trim lookup) is a separate concern and should not affect the VIN confidence score.
### Editable Dropdowns
- After VIN decode, Make/Model/Trim should be pre-populated in dropdown selectors (using the existing cascade dropdown API).
- Dropdowns should be immediately editable without needing to click an "Edit" button.
- The cascade behavior should work: changing Make reloads Models, changing Model reloads Trims, etc.
- Engine and Transmission dropdowns should also follow the same pattern (editable, cascade-filtered).
## Technical Context
### Relevant Components
- **Frontend**: `VinOcrReviewModal.tsx`, `VinCameraButton.tsx`, `VehicleForm.tsx`
- **Backend**: Platform feature (`backend/src/features/platform/`) provides cascade dropdown API
- **Dropdown API**: `GET /api/vehicles/dropdown/{years,makes,models,trims,engines,transmissions}`
- **Pair-safe API**: `GET /api/vehicles/dropdown/options` for engine/transmission compatibility
### Approach Notes
- The VIN OCR review modal should separate VIN string confidence from vehicle match results.
- The dropdown cascade infrastructure already exists and should be reused for the editable fields.
- Consider showing a visual indicator for VIN confidence (e.g., color-coded bar or percentage).
## Acceptance Criteria
- [ ] Confidence score reflects OCR accuracy of the VIN string only
- [ ] Confidence does NOT factor in Make/Model/Trim matching success
- [ ] Make/Model/Trim are presented as editable dropdown selectors after VIN decode
- [ ] Dropdowns are pre-populated with decoded values but immediately changeable
- [ ] Cascade behavior works (changing Make reloads Models, etc.)
- [ ] Engine and Transmission follow the same editable dropdown pattern
- [ ] No "Edit" button required to change Make/Model/Trim values
- [ ] Works on both mobile and desktop viewports
- [ ] Existing VIN camera capture flow is not regressed
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Improve the VIN decode review flow so that:
Current Behavior
Expected Behavior
VIN Confidence
Editable Dropdowns
Technical Context
Relevant Components
VinOcrReviewModal.tsx,VinCameraButton.tsx,VehicleForm.tsxbackend/src/features/platform/) provides cascade dropdown APIGET /api/vehicles/dropdown/{years,makes,models,trims,engines,transmissions}GET /api/vehicles/dropdown/optionsfor engine/transmission compatibilityApproach Notes
Acceptance Criteria
Milestone: Execution Tracking
Phase: Execution | Agent: Developer | Status: IN_PROGRESS
Milestones
Branch
issue-125-improve-vin-confidence-editabilityFiles to Modify
frontend/src/features/vehicles/types/vehicles.types.ts- Add VinReviewSelections typefrontend/src/features/vehicles/components/VinOcrReviewModal.tsx- Major rewrite: OCR confidence + editable cascade dropdownsfrontend/src/features/vehicles/components/VehicleForm.tsx- Update to receive modal selectionsVerdict: IN_PROGRESS | Next: Begin M1+M2 implementation
Milestone: Execution Complete
Phase: Execution | Agent: Developer | Status: PASS
Milestones
Changes Summary
vehicles.types.ts- AddedVinReviewSelectionsinterface for passing user-edited dropdown values from review modal to form.VinOcrReviewModal.tsx- Major rewrite:DecodedFieldRowcomponentsonAcceptnow passesVinReviewSelectionswith user's choicesVehicleForm.tsx- Updated to receiveVinReviewSelections:handleAcceptVinOcraccepts selections from modal instead of raw decoded datahandleEditVinManuallyfunction andonEditpropQuality Checks
anyin catch block)overflowY: auto, 1-column dropdowns on xsCommit
e9020dbfeat: improve VIN confidence reporting and editable review dropdowns (refs #125)Verdict: PASS | Next: Open PR for review