FIPE Matching
Finds the FIPE code (Brazil’s vehicle price table) for each car subscription offer, even when the description is incomplete or worded differently.
- My role
- Lead developer of the API: algorithm design, tests, auditing and the production rollout.
- Technologies
- .NET · C# · MongoDB · OpenAI · Docker · Azure DevOps · Spec Kit · Claude Code
- Offer received
- Text normalization
- Car family lookup
- Version elimination
- Match or hold
The problem
Each rental company describes the same car differently. A wrong FIPE code becomes a wrong price for people using Datacar, and the old algorithm relied only on text similarity.
What I delivered
- A staged process that rules out impossible versions and only matches when it is confident and there is no tie.
- Doubtful offers are held with the reason recorded, and can be reprocessed later.
- An AI assistant to settle ties, with a daily query limit.
- An audit screen to review every decision the algorithm makes.
- An API covered by 518 automated unit and integration tests.
Technical decisions
Precision over coverage
When in doubt, the system does not match. The goal stopped being matching more offers and became not getting them wrong.
Trade-off: some offers have no price until they are reviewed.
Shadow mode before the switch
The new algorithm ran alongside the old one in production, without affecting results, to compare the decisions of both.
Trade-off: two algorithms to maintain during the transition.
AI only for what is left
The model only steps in on ties the rules cannot settle, and its decision becomes a rule that can be audited.
Trade-off: rules created by the AI need monitoring.
Outcome
Thousands of offers a day go through the new algorithm, and every decision can be audited.
Built at Rumo Soluções: the code and screens are not public.