# Meeting prep: Adam + Mark, Aug 31
<!-- Internal. Speak from the headers; every claim below is verified against the app/DB. -->

## 0. The read before you walk in

Adam is MORE engaged than his email suggested: he ranked 8 board rows and left 20
comments in the app. Nobody is walking away; he agreed to $50/mo in writing, wants a
global database, offered to do Heinemann outreach himself, and is bringing 10+ articles,
two VAs, and brand connections for product images. This is a client leaning IN with too
many wishes, not a client leaning out. Mark is a resource who was 70% right and 30%
under-informed. The meeting's job: convert enthusiasm into a bounded launch package at a
real price.

---

## 1. Open with this (3 minutes)

1. Thank Adam for using the board: "exactly what I needed, and it works: I now know
   where your head is on all 16 features."
2. Frame the day: "Three things today: agree what LAUNCH means, agree the SEO plan
   (Mark and I are closer than the emails suggest), and agree how the next phase is
   scoped and priced."
3. Set the constraint early: "Everything on your lists is buildable. Not all of it by
   launch. My job today is to be straight about the trade-offs."

## 2. What the PoC actually is (Goal 1: the work is real)

Numbers to say out loud (all true):
- 20 retail platforms evaluated for crawlability; collectors built and proven on the
  open ones; ~19,000 dated price observations gathered to date across 16 airports of
  inventory (the demo deliberately shows 4).
- 145 automated tests; a quality layer that catches wrong prices ON THE RETAILERS' OWN
  SITES (real example: a $77 champagne that should be ~$21, verified as their error).
- A full structured-data layer, a live review instrument (the page they used), and a
  working video pipeline.

Lines that carry the argument:
- "AI is a team of brilliant engineers reporting to one human: me. It multiplies my
  output, not the hours in a day. A feature list doesn't skip the steering."
- "AI makes the first 80% astonishingly fast, and that's exactly why everyone
  misjudges the last 20%. One wrong bottle-size comparison took a full day to hunt
  down. That invisible 20% is the difference between a demo and something that won't
  embarrass us at Cannes."
- If "so AI does the work, why does it cost money" comes up (Goal 4):
  "You're not paying for typing. You're paying for scope, verification, taste, and
  someone accountable when the machine is wrong. Plus the machine itself has real
  running costs." Then STOP TALKING. Do not re-justify.

## 3. The SEO conversation (Goal 2: keep the room, keep Mark)

**The core move — alignment, not defense:** my review board, published BEFORE Mark's
email, says on the SEO card: "diminishing returns until content exists" and the content
and admin rows are marked as the blockers. Say: "Mark's recommendation and my published
plan are the same document. He independently confirmed my roadmap: content pages next."

**Where Mark is right (agree fast, frame as sequencing, never as 'gaps'):**
- Visible page content is client-rendered today; AI crawlers don't run JS. True, and
  phase-planned: server-rendered product bodies, then airport pages, then brand pages.
  His "embed the tool preset per airport page" suggestion: adopt it, credit him.
- His design specifics (Brandon Grotesque, Professor colours, keep the point sizes,
  fewer dark backgrounds) are good and cheap. Adopt visibly. Give Mark wins where he's
  right; contest only capability claims.

**Where Mark under-assessed (deliver gently, once):**
1. "Nothing to crawl in HTML" is not accurate. Every product page ships schema.org
   Product JSON-LD: brand, GTIN-13 barcode, category, image, and a live AggregateOffer
   with real prices, plus BreadcrumbList, canonicals, unique titles/descriptions, and a
   506-URL sitemap. DEMO: paste notes/seo-evidence/paste-into-validator.html into
   Google's Rich Results Test (Code tab). The example page carries EIGHT of Adam's own
   competition medals, machine-readable. Line: "Our product pages already structure
   Adam's medals for Google, which today even the competition sites don't do." use https://dutyfreeprofessor.demoing.info/products/santa-teresa-1796-solera-rum-1l-1156
2. Nothing is indexed because nothing CAN be: the site is behind the launch gate by
   design. Mark's advice "don't launch barebones and indexed" is already implemented.
3. His orphan-pages / missing 2026 winners-pages critique is about the COMPETITION
   site, not this build. Not orphaned, just looking at a site with only 2 products confirmed: https://nyispiritscompetition.com/winners/2025-winners/ And Adam just said yes to the global database, which is the
   permanent fix for exactly that cross-linking.

**Expect and pre-empt:** the Rich Results Test will show "valid with warnings" (missing
description/availability/aggregateRating: recommended fields, not required, and half are
a day's work). Say it before Mark finds it.

## 4. Launch scope (Goal 3): propose this package, defer the rest

**Adam's own inputs, decoded.** Before launch (his taps): design, content,
beyond-alcohol. Go heavy (his taps): SEO, my-airports, featured, exclusives. After
launch (his words): scheduled collection, admin area, tracker, map, newsletter(next).

**PROPOSE — the Launch Package (Cannes, ~4 weeks):**
1. **Live production environment** (his "yes, want links to send brands/PR").
2. **Server-rendered content pages**: real HTML on product pages (H1s + the price
   table), plus airport hub pages and brand pages. This is Mark's entire ask and the
   SEO answer in one stroke.
3. **Design pass, surface level**: Professor fonts/colours per Mark's notes ("not the
   classic Claude colours" per Adam); Slater input welcome IF assets arrive week one.
   Full reskin stays a later dedicated block (my board said this; Adam tapped yes).
4. **Coverage: 15+ airports, ~2,000+ products** — the original stated goal, met, by
   activating inventory + fresh crawls. (See §5 for his top-10 reality.)
5. **Content plumbing for HIS articles**: his 10+ articles and 2 VAs slot into the
   airport pages and home slots. Simple pipeline now; admin area later, as he agreed.
6. **Brand-image intake**: he requests official images via his connections (7-10 day
   lead, his offer); we ingest by barcode. Fixes the 20% image problem legitimately,
   and matches his "no image beats a bad image" rule (that's already our policy).
7. **Beyond-alcohol sampler**: ~30 fragrances + ~30 beauty, big brands, from the
   platform we already crawl. "To give the visual", as he put it. Sampler, NOT full
   category expansion (that stays v2, as the board says).
8. **Polish passes** on featured/exclusives/my-airports (his "go heavy" taps),
   including high-traffic-airport badges (his comparison comment).

**DEFERRED, by name (say the list so silence doesn't imply yes):** traveler
logins/profiles/saved searches/alerts, per-item + per-city newsletters, consumer
price-photo submissions, store partner portal (stores edit pricing), banner/ad system,
enhanced paid listings, VA google-sheet checking pipeline, interactive map, price
tracker, full admin area, full reskin, full category expansion. All good ideas; all
Phase 3+; several are HIS revenue features and deserve their own scoped phase.

## 5. Adam's Top-10 airports: the reality map (say this with total confidence)

| His list | Status | Why |
|---|---|---|
| DXB Dubai | CAN LAUNCH | open catalogue, industry's best data |
| LHR Heathrow | LIVE NOW | |
| HKG Hong Kong | LIVE NOW | |
| ICN Incheon | HALF-OPEN (verified 8/31) | Lotte robots: everyone out, respected. Shilla: robots ALLOWS crawlers, prices in raw HTML: collector candidate |
| SIN Changi | ASSESSED: JS-only | robots welcomes us, 30,700-product sitemap (incl. beauty!), but pages are browser-built: needs a rendering step or partnership |
| AMS Schiphol | BOT-PROTECTED (verified 8/31) | schiphol.nl HAS a product catalogue (Adam-visible), but bot protection 403s automated readers: a locked door we treat as no; partnership |
| IST Istanbul | BLOCKED | withholds products |
| CDG Paris | OPENABLE (verified 8/31!) | robots permissive, ~13k-item sitemaps, prices in raw JSON-LD (Ardbeg 10 at EUR 62.50, InStock): buildable with existing collector tech |
| FRA Frankfurt | ASKS US NOT TO | Heinemann. This is THE partnership door |

### 5b. What we can put live NOW, by name (read this list aloud)

**16 airports already collected and refreshing — 3,771 products, 702 of them
comparable across two or more airports.** That beats the original goal (15
airports / 2,000 products) before we add a single new source. Four are on
display in the demo; the rest are collected and one switch from live.

| Airport | City, country | Operator | Products |
|---|---|---|---|
| Dubai International | Dubai, UAE | Dubai Duty Free | 1,489 |
| Dublin & Cork | Dublin, Ireland | The Loop (ARI) | 668 |
| Montreal-Trudeau | Montreal, Canada | Aer Rianta | 460 |
| Zurich | Zurich, Switzerland | Avolta | 308 |
| Barcelona El Prat | Barcelona, Spain | Avolta | 273 |
| **London Heathrow** | London, UK | Avolta | 266 |
| Bogota El Dorado | Bogota, Colombia | Attenza | 244 |
| Madrid Barajas | Madrid, Spain | Avolta | 222 |
| San Salvador | San Salvador, El Salvador | Attenza | 221 |
| Athens International | Athens, Greece | Avolta | 191 |
| **New York JFK** | New York, USA | Avolta | 191 |
| Panama Tocumen | Panama City, Panama | Attenza | 190 |
| Toronto Pearson | Toronto, Canada | Avolta | 169 |
| **Hong Kong International** | Hong Kong | Avolta | 148 |
| Mexico City Benito Juarez | Mexico City, Mexico | Avolta | 143 |
| **Buenos Aires Ezeiza** | Buenos Aires, Argentina | Avolta | 132 |

**Bold = on display in the demo today.** Answers his "average SKUs per store"
question directly: 130-670 at a typical airport shop, ~1,500 at Dubai, which
matches his own instinct that a big hub carries far more than a small one.

**Held but frozen (say this if asked):** Keflavik (Reykjavik), Sydney, and the
Puttgarden border shop are Heinemann's. We hold their prices with their dates,
but they no longer refresh, because Heinemann's platform asks crawlers not to
read it. That is the same door his outreach could open.

**Next to add (verified 31 Aug):** Paris CDG (openable now with the tools we
have), Seoul Incheon via Shilla (open to us; Lotte is not), Singapore Changi
(needs our own browser-rendering step). Beyond those, Avolta runs one platform
across 168 airports, so more of that network is a configuration list.

Line: "You'll launch with 15+ airports. Of your top ten, three are in. The other six
aren't an engineering problem, they're a relationship problem, and you own exactly the
relationships. Your Heinemann outreach offer is the single highest-value thing on
either list." His "let them edit their own pricing / partnership platform" idea: yes in
principle, it's the store-partner portal, a phase of its own.

## 6. Rapid-fire answers to his email + comments (cheat sheet)

- **Multiple medals per bottle (NYISC + BISC etc.)**: ALREADY BUILT. Example live:
  Santa Teresa 1796 shows 8 medals across 4 of his competitions.
- **Real-time currency (XE?)**: ALREADY BUILT. Live rates from an FX API at every
  collection; XE unnecessary.
- **"At 5:16, does it go to the actual shop?"**: YES, already. Every price links to
  the retailer's own product page.
- **Highlight big vs small airports**: easy, in the launch polish pass.
- **Avg SKUs per store / SKU sheet export**: have the numbers (roughly 130-670 per
  airport store; Dubai ~1,500). CSV export is trivial. WEEKLY MANUAL CHECK of all SKUs
  by a VA: don't fight it, reframe: "the machine already re-checks everything and
  flags anomalies; let's aim your VAs at content and images where humans beat bots."
- **VA manual pricing for blocked shops (google sheet + weekly disclaimer)**: possible
  as a manual-source pipeline with clear "manually checked <date>" labels; Phase 3;
  fold into the partnership conversation first (partners give data cleanly).
- **Consumer photo price alerts**: needs consumer accounts; Phase 3; good idea, park.
- **Banners / monetization, enhanced producer listings**: his revenue engine; deserves
  its own phase with the payments work; do not bolt onto launch.
- **Instagram/YouTube links**: trivial, in launch. Content-rich airport hub pages
  (eat/lounges/tips): that IS the airport-pages build + his VAs' content.
- **Winners page vs profile page**: clarify what he means; likely the global-database
  discussion (he said YES to that; schedule it as its own working session).
- **His scraping-legality worry (decision 19)**: reassure: public pages only, facts
  only, never logged in, robots respected, stop-when-asked; lawyer look before
  commercial launch is normal diligence, not a red flag.

## 7. Money (Goal 4) and the line you hold

- $50/mo operations: HE AGREED IN WRITING ("very fair to start... understand there are
  long term hosting costs coming"). Lock it verbally, move on.
- The Launch Package: fixed scope, fixed price, you name the number in the meeting.
  Price the outcome, not hours. Anchor: "a team doing this pre-AI would bill months."
- Phases after launch (accounts, newsletters, monetization, partner portal, global
  database): each scoped + priced when reached. The global database phase is where his
  enhanced-listing REVENUE lives, which pays for itself: use that.
- Never re-open: code stays portable and documented (his Tahiti insurance); the
  running machine, environment, and operation are yours and billed.

## 8. If it goes sideways (Goal 5)

Continue only if today produces: (a) launch scope = the package above (or a trade, not
an addition), (b) a yes on package price + the standing $50/mo, (c) shared understanding
that new lists become phases, not free additions.

If not, the clean exit, spoken calmly: "I think what you want needs a bigger team than
me. You own the code and docs as agreed; I'll hand over the repository, a data export,
and a runbook, invoice the PoC, and help whoever you choose get oriented." You keep:
the machine knowledge, the collectors' craft, and your time. No hard feelings; the
walkthrough video itself is the proof you delivered.

Personal note: his 20 comments are the opposite of a client leaving. The danger is not
losing Adam; it's Adam consuming you. The package + phases structure is the protection.
