sourceUrl, a lastVerifiedAt date, and a confidence rating. When something changes, we ship the update in the next snapshot. When you spot a wrong number, the extension has a built-in correction button that goes straight to a queue we review.
The two databases
BaggageIQ runs on two bundled databases that ship inside the extension:
- Airline baggage DB — 109 airlines, with per-fare-tier rules (Basic Economy, Main, Premium, Business, etc.), per-route variations where airlines price bags differently by region, and per-cabin-vs-checked allowances.
- Card benefits DB — 62 travel credit cards (across US, UK, EU, India, UAE, Singapore, Australia issuers), with their free-checked-bag, seat-fee, lounge, and priority-boarding benefits — plus the conditions each benefit applies under (cardholder-only, primary + companions, requires booking on the card, etc.).
Both databases are encrypted at rest with AES-256-GCM and decrypted in the extension's service worker. The encryption is operational hygiene, not a confidence signal — the data itself comes from public sources we credit on every row.
Where airline baggage data comes from
The primary source for every airline is that airline's own published baggage policy page (typically /baggage, /baggage-policy, /fees, or equivalent). For each airline we capture:
- Free allowances per fare tier — what's included in the bare/basic/main/premium/business fares without paying extra
- Per-bag fees — first checked, second checked, third+, plus oversize and overweight surcharges
- Cabin/carry-on rules — whether a cabin bag is included, dimension limits, weight limits
- Personal item rules — dimension and weight limits, whether one is always included
- Route-specific variants — many airlines charge differently for transatlantic vs domestic vs intra-Europe etc., and we encode each variant separately
Where airlines publish fees in multiple currencies, we capture each currency the airline officially quotes (USD, EUR, GBP, INR, AED, AUD, SGD, etc.). At runtime BaggageIQ converts to your search currency using daily rates from open.er-api.com, the same FX feed used in the extension.
Where credit-card data comes from
Every card benefit row sources from the card issuer's official terms-and-conditions document or benefits guide for that specific card. We do not source from credit-card review sites, points-and-miles blogs, or affiliate marketing pages — they go stale faster than the issuer pages and they're written to sell cards.
For each card we capture: the issuer, the card network, the region the card is issued in, and the benefits relevant to flight cost (free checked bags, seat-selection credits, lounge access, priority boarding). Each benefit row records the conditions that gate it: cardholder-only versus cardholder + companions, whether it requires booking the flight on the card, whether it requires a co-branded airline, and which airlines it applies to.
Confidence ratings
Every row in both databases carries a confidence field with three values:
The extension's tooltip shows confidence implicitly through the "Estimated baggage cost" framing — we don't claim exactness on numbers we're not sure about.
How often the data is refreshed
The bundled databases inside the extension are refreshed on a regular cadence — typically every few weeks for the airline DB, more often when an airline announces a fee change. Card benefits move slower; those refresh quarterly unless an issuer announces a benefit change.
Between extension releases, BaggageIQ also performs lazy hydration: if the extension encounters an airline IATA code that isn't in the bundled snapshot (a small carrier, or a new partnership code), it queries the BaggageIQ data API for the latest data on that airline specifically. This is the only network round-trip per flight search, and it's cached for 7 days locally.
What we don't do
To keep the methodology honest, here are things BaggageIQ explicitly does not do:
- We don't scrape booking sites for fees. Booking sites display fees inconsistently, often omit fare-tier breakdowns, and sometimes show different fees to different users based on personalization. The airline's own published page is more reliable.
- We don't crowdsource fees. User-submitted fees are inconsistent and prone to honest mistakes about which fare tier was booked, which route, etc. We use them as alerts to re-check the official source, not as data.
- We don't infer fees from past bookings. A flight that charged $35 last month might charge $45 this month if the airline raised fees. Always re-verifying the published source is more accurate than extrapolating.
- We don't pad estimates "to be safe". The number in the badge is what we believe the actual fee is. If we're wrong, we'd rather be told and fix it than show artificially high numbers.
Reporting wrong numbers
Every flight badge in the extension has a small footer with a "Report wrong fee" link. Clicking it opens a tiny form that captures what you observed (the actual fee at checkout) and sends it through the corrections endpoint at api.baggageiq.app/v1/corrections. The payload is minimal: airline IATA, route, cabin class, fare type, the observed fee, and your anonymous client ID. No personal data, no booking info, no flight numbers.
Corrections go into a review queue. We re-check the airline's published source and either confirm the new number or note that the original was correct (sometimes the booking site quoted the wrong fee — that's a different bug). Confirmed corrections ship in the next database refresh, usually within two weeks.
You can also email corrections directly to support@baggageiq.app with screenshots if the in-extension flow doesn't fit what you saw.
Where this methodology breaks
Three known limits of the current approach:
- Personalised pricing. Some airlines run A/B tests on baggage fees or charge different fees in different geographic markets. BaggageIQ shows the most-published-rate, which matches what most users see, but a small percentage of users in tested markets may see a different number at checkout.
- Promotional fee waivers. Airlines occasionally run "free checked bag" promotions tied to specific routes or co-branded credit-card sign-ups. We update these as they're announced, but a brand-new promo may not be in the database for a week.
- Mid-itinerary fare-tier changes. On a multi-leg itinerary with different airlines, baggage policy can change between legs. BaggageIQ uses the operating-airline rule for each leg, which is the most-common policy, but a few alliance partnerships override this.