Building a Pet Insurance Comparison Engine: Handling Variable Premiums Across 15 French Insurers
French pet insurance has grown 34% since 2022, driven by rising vet costs and increased pet ownership post-COVID. But comparing products programmatically is a nightmare: 15 major insurers, each with their own pricing grid based on species, breed, age, region, and deductible. Here is how I built a comparison engine that handles this complexity.
The Data Model Challenge
Each insurer publishes premiums differently:
Santévet : JSON API (unofficial, scraped from their quote widget)
Assurimo : PDF tariff grids updated quarterly
Groupama : Static tables by risk category
Dalma : Dynamic pricing engine (quote request required)
The core problem: how do you normalize wildly different data structures into a comparable output?
A Flexible Pricing Schema
{ "insurer_id" : "santevet" , "product_id" : "sv-excellence" , "species" : "cat" , "breed_risk_group" : 2 , "age_min_months" : 12 , "age_max_months" : 84 , "region" :…