DUTY FREE PROFESSOR
Walkthrough · not the real thing yet
Step 1 · the idea

Where should I actually buy this?

That's the whole product. A traveller knows what they want, and they know which shops they'll walk past. What they don't know is which of those sells it cheapest, or whether it's worth buying at all.

dutyfreeprofessor.com
Your trip
Panama · Dubai · Bogotá
The three shops you'll pass. You want a bottle of Johnnie Walker Blue Label.
$420Panama · 1L
$317Dubai · 1L
$300Bogotá · 1L
Same bottle. $120 apart. Nobody can see that today.
These are real numbers. They are live in the app today: Johnnie Walker Blue Label 1L at $420 in Panama, AED 1,163 ($317) in Dubai and $300 in Bogotá, each with the date it was checked. Everything in this walkthrough uses real data where real data exists.

Two sites, one engine

Duty Free Professor consumer

Search products, compare prices across airports, read the guides. This is what we're building first.

Duty Free Awards trade

Stays on WordPress with the other competition sites for now. Its medals feed into the product pages above.

Step 2 · the money shot

The product page

If we only get one screen right, it's this one. Everything else exists to fill it in.

dutyfreeprofessor.com/products/johnnie-walker-blue-label-1l
DUTY FREE PROFESSOR
🥃
Whisky · Blended Scotch
Johnnie Walker Blue Label 1L
Johnnie Walker · 40% ABV · United Kingdom · Full bodied & smoky
★ IBC Double Gold 2025 IWSC Gold 2019 SFWSC Best Blended 2013

Price by airport

AirportLocal priceUSDAvailabilityChecked
Athens ATH
Avolta · Shop Duty Free
€300.00 $347.55 Cheapest In store only 2h ago
Frankfurt FRA
Gebr. Heinemann
€309.99 $359.13 Pre-order 2h ago
London LHR
Avolta · World Duty Free
£272.95 $369.93 In stock 2h ago
Dublin DUB
The Loop · ARI
€312.00 $361.42 In stock 6 days ago
Also sold in 20cl · from $74 Public list prices · member and dynamic prices may differ

Honest freshness

Every price says when it was last checked. Stale data is labelled, never hidden. This is the trust feature.

Sizes are separate

1L and 20cl are different products with different prices. Getting this wrong makes the whole thing look broken.

Medals belong here

Your competition medals, shown at the moment of purchase decision. No other price site can do that.

Step 3 · finding things

Browse and search

The front door. Category first, because that's how people shop duty free.

dutyfreeprofessor.com/products/whisky
DUTY FREE PROFESSOR
Whisky CognacRum GinVodka TequilaFragrance SkincareConfectionery
Airport ▾   Price ▾   Award winners only   Sort: Best value ▾
62 products
🥃
Whisky
JW Blue Label 1L
4 airports · from $347
🥃
Whisky
Macallan 18 Sherry Oak
3 airports · from $489
🥃
Whisky
Hibiki Harmony 70cl
2 airports · from $118
Why this beats blog posts at Google. Every product and every airport is its own page, generated from real data that nobody else has, updated continuously. That's thousands of genuinely useful pages instead of a handful of articles — and it's the opposite of AI slop, because it's original measurement, not generated text.
Step 4 · the engine

Where the prices come from

This is the part that decides whether the product is good, and the part that can break.

1
Collect

Fetch pages from retailer sites. One adapter per retail platform, not per airport.

2
Normalise

Turn each page into the same shape: brand, product, size, ABV, price, currency, stock.

3
Match

Decide that Dubai's bottle and Heathrow's bottle are the same bottle. The hard part — solved with barcodes.

4
Store

Every observation kept with a timestamp, so we have price history from day one.

5
Serve

The website, and later alerts, the map, and the API.

Adapters, not one big scraper

A handful of operators run most of the world's airport shops. Each gets a small plug-in module. Adding an airport that runs on an existing platform is configuration, not code.

Avolta168 airports · one adapter
Dubai Duty Free33,871 products · open
Montreal · Panamaan afternoon each
one per platform, as needed

We take the front door, or we knock

Plenty of these shops publish their catalogue openly. Those we read politely, slowly, and only the pages any traveller can see. If a shop's site turns us away, we take that as a no and add them to the list to talk to instead.

Publishes openlycollect it
Needs a browserfine, slower
Turns us awayask, don't push

What we can cover, and what nobody can

Reachable today checked, not assumed

  • Avolta — one platform, 168 airports in 45 countries. Heathrow and Athens really are the same software.
  • Dubai — the world's biggest single duty-free store publishes its whole catalogue openly. 33,871 products with live prices.
  • Heathrow's own shop — and it prints the high-street price next to the duty-free one.
  • Montreal, Panama, Colombia, Ecuador — small shops, wide open.

Genuinely closed not an engineering problem

  • Doha — Qatar Duty Free's website sells raffle tickets, not products.
  • Amsterdam, Istanbul — no public storefront at all.
  • Frankfurt, Vienna — Heinemann publishes its main catalogue openly, but asks crawlers not to take its per-airport prices. We respect that and ask instead.
  • Seoul, Singapore, Paris — partial, awkward, worth a second look later.
The gaps are a door-opener, not a defect. Where an operator publishes nothing, that's a reason for them to talk to you: be in the comparison travellers are looking at, on your own terms, with data you supply. Heinemann is the clearest example — the best data in the industry, and they'd rather be asked than scraped. Those are Cannes conversations.
One honest caveat to design around. Duty-free pricing is moving to per-destination rules, loyalty-member prices and dynamic pricing that varies by traveller. So we record observed public prices with a date, not "the price." Said plainly on the page, that's a credibility feature. Glossed over, it's the thing that makes a user say the site is wrong.

Playing it straight

Facts, not writing

We collect prices, sizes, stock and barcodes. We don't take retailers' marketing copy or their photography. Facts are free to use; their words and pictures are theirs.

Never sign in

We only ever read pages any traveller can see without an account. No logins, no accepting anyone's terms. It's the clearest line in this area of law, and we stay well on the safe side of it.

Always credit the shop

Every price links back to the retailer that set it, and we respect the crawling rules each site publishes. We'd rather send them customers than annoy them.

Worth a short conversation with a lawyer before launch — not before a proof of concept. At this size it's a non-issue; at 168 airports refreshed daily it deserves half an hour of proper advice.

When it breaks — and it will

dutyfreeprofessor.com/admin/collection-health
Avolta · Heathrow412 prices · 2h ago
Avolta · Athens388 prices · 2h ago
Heinemann · Frankfurt216 prices · 2h ago
Lotte · Singaporelast success 6 days ago
SSG · Incheonblocked · needs a look

Retailers change their sites and add bot protection. A collector that works today will quietly stop working at some point. So the system watches itself, says which sources are stale, and keeps showing old prices with an honest date rather than pretending. This is ongoing upkeep, not a one-time build — the single most important thing to understand about this project.

Step 5 · the unfair advantage

Competition medals on the shelf

A price-comparison site anyone can copy. Medals from your own competitions, attached to the exact bottle a traveller is standing in front of, nobody can.

What exists today

  • IBC medals — New York, Berlin, Melbourne, Asia. Years of real winners already in the winners system.
  • Third-party medals — some retailer pages print IWSC and San Francisco awards next to the price. Capturing those is possible from data we already fetch; it is not built yet, and none are shown today.

What doesn't exist yet

  • DFA medals — the Duty Free Awards haven't run. There will be no DFA data at launch, and that's fine.
  • The badge slot is built now and fills in automatically when the first DFA results land.
The nice accident, once built. If we capture the other competitions' medals the retailer pages print, the database quietly becomes a record of which brands win where, and which award-winning products are actually stocked in duty free. That's a sales list for competition entries — it just isn't switched on yet.
Step 6 · your team

What Kristine and Matt log into

The test is simple: can they run the site every day without a developer? Everything below is designed backwards from that.

dutyfreeprofessor.com/admin
Articles+ New article
Navigating Heathrow duty-freePublished
Is duty free really cheaper?Published
Cannes 2026 — what's newDraft
Fragrance buying guideDraft

Write & publish

Articles, tags, SEO fields, scheduling. Human-written, as you said.

Curate products

Override a bad scraped title, add a better photo, write the editorial verdict, feature something.

Own the accounts

Log-ins live inside your app, so it moves hosts with you. Nothing tied to my server.

Open question for the review meeting

Do your writers keep using the WordPress editor they know (with this site pulling the articles in), or do they move into the new back office? Both work. This is a people decision, not a technical one, and it shouldn't be made this week.

Step 7 · scope

What the proof of concept delivers

One week, fixed price. It grew past the original promise — the shape held.

In the proof of concept live now

  • Nine retail operations collected across 17 shops, live prices with dates
  • Over six thousand real products, 960 comparable airport-to-airport
  • Browse, search, product page, and "your airports" — pick where you'll be, every price answers for those shops
  • Real IBC medals on real products, matched conservatively
  • Freshness dates everywhere
  • This walkthrough, the live site, and the build-out spec

Not yet after the review

  • The interactive world map
  • Price alerts and accounts for visitors
  • The full back office and article publishing
  • Automatic daily refresh on a schedule
  • All 200+ locations — we start with a handful and prove the shape
  • Anything touching the competition sites
What the proof of concept is for. Not to be impressive. To make the next decisions cheap: which airports to launch with, how often to refresh, what the content setup should be, and what the real build costs. Right now those are guesses. After you've clicked around a working version, they're informed choices.

What I still need from you