Case: benidorm.co.uk

Checked 25 Oct 2026, Dubai time (UTC+4). [V] I checked it this run. [R] from a team document. [U] unverified. Project locations are in PROJECTS.md.

Level 1: For someone who does not work with data

What it is. A website for people from the UK planning a holiday in Benidorm, Spain. It has 752 pages: hotels, bars, restaurants, shows, flights, weather, what a holiday really costs. [V]

Why it is different. Most Benidorm pages are brochures. This one answers practical questions with checked numbers, each with the date it was checked. Examples from its own data: August hotel rates averaged €175 a night against €78 in January 2026; a Benidorm Palace show costs about €40, with dinner €60–110; there is no tourist tax. [R, data feeds]

What "data layer" means here. Seven data feeds hold the facts (prices, weather, flights, buses, events). The pages are built from the feeds by a script. If a price changes, the feed changes and the page is rebuilt. Nobody edits a page by hand.

An assistant too. "Brenda" is a planner that works out a holiday from the same data. AI assistants can also ask the site directly through a connection called MCP. It answered a test call live. [V]

Who it is for. It is a test with Fintan O'Rourke of Visit Travel Group. The idea: a UK-style .co.uk site with clean data and good AI visibility can earn affiliate bookings. The plan in the project notes is a revenue share and a three-month comparison against fresh control sites. [R]

First results. From 13 to 24 Oct, Google Search Console shows 70 clicks and 6,421 impressions. Between 20 Sep and 25 Oct, ChatGPT sent 101 visits and Google search 84. [V] That is early and small. It shows the pages are found and quoted within days.

What is missing. A before-launch baseline, and the control sites for the comparison (not registered per the 14 Oct notes [R]).

Level 2: For a businessman

The model. Publish useful, dated, comparable prices for a destination that UK holidaymakers search for. Earn commission when readers book hotels, tickets and tours through partners.

The partner. Partner: Fintan O'Rourke, Visit Travel Group / CostelloGlobalTechnology.com. A 3-month A/B test is planned; I did not re-verify the revenue-share terms here [U, parent brief]. [R: CLAUDE.md]

The market. The 14 Oct research (DataForSEO, UK, 20 queries; USD 0.08 per run [R]): about 45,900 UK searches a month for the exact name benidorm.co.uk, the highest of the .co.uk geography names examined. Page-one owners were Facebook, TripAdvisor, TUI, YouTube and Tiqets, with 15 independents. AI Overviews appeared on 12 of 20 queries. The plan avoids head terms like "benidorm holidays" and goes after the long tail: excursions, boat trips, shows, airport transfers, November, families, safety, old town. [R]

What exists now.

Item Value
Pages 752 (bars 269, hotels 119, restaurants 111, ask-brenda 37, holiday 37, flights 28, cafes 20, weather 15, holiday-costs 13) [V]
Typical page median 1,878 words in a 60-page random sample; all 60 indexable, canonical, dated [V]
Assistant interface MCP server at /mcp/ with 9 read-only tools [V]
Machine files llms.txt 221 KB; llms-full.txt 4.9 MB [V]
Traffic 70 clicks, 6,421 impressions (13–24 Oct); GA4 20 Sep–25 Oct: direct 144, ChatGPT 101, Google organic 84 [V]
Tracking GA4 added 15 Oct [R]

What it costs. Mostly agent time and data fetches. The SERP research cost USD 0.16 in total [R]. I did not find a cost ledger for the whole site [U].

Business risks.

Risk Detail
No control group The 3-month A/B needs other domains; not registered as of 14–17 Oct [R]. Without it, the test proves nothing about lift.
Affiliate tracking A 25 Oct check of /excursions/, /boat-trips/, /things-to-do/ and /theme-parks/ found GetYourGuide links carry a partner_id; one generic city link per page does not [V]. An earlier note of "13 links without a partner id" did not reproduce [U]. Whether bookings are being credited is not checked.
Template risk 499 of 752 pages (66%) are venue listings. They read substantively in the sample, but Google can treat repeated templates as scaled content. [V]
Small traffic 70 clicks. The signal is real but small.
Rights on partner and listing data Terms of the price sources not reviewed here. Notes say a Google Places scrape was flagged earlier [R].

What to decide. Fund the control domains and confirm affiliate crediting first. Everything else is already built.

Score today: 6.6 out of 10 (20-scorecard.md).

Level 3: For an engineer

Architecture

Pieces [R unless marked]

  • Build. scripts/build_all.py with MANIFEST.txt (98 lines, about 55 steps): derive → pages → inject → skin → schema → llms → index. Rule: "HTML is output, never edit by hand."
  • Determinism. freezegun clock. build_stamp.json clock 2026-10-23T18:59 Dubai time [V]. Same inputs, same pages.
  • As-of dates. scripts/asof.py takes "data captured" from git history, never from the build date.
  • Fetch scripts write to data/; the build never fetches.
  • Schema. inject_schema.py builds a graph. Rule: no Review or AggregateRating. [R] Live check: the only "Rating" in sampled pages is Hotel starRating (e.g. Barceló Benidorm Beach "4"). [V]
  • Machine surfaces. llms.txt 221 KB, llms-full.txt 4.9 MB, sitemap 752 URLs, robots.txt allows all except ?q= and ?to=. [V]
  • MCP. https://benidorm.co.uk/mcp/ answers JSON-RPC tools/list. Live tools/list returns nine tools: plan_holiday, find_hotels, ask_brenda, search, fetch, get_transfer_options, get_boat_trips, get_bus_times, get_events. All are marked read-only. [V] (CLAUDE.md names three; my earlier count of eight was wrong.)
  • Publish. Only from GitHub main through Vercel. Project benidorm-co-uk; last production deploy dpl_FGxXiC132FhMCavx2T1SfmSMwSvg, 25 Oct 13:10 Dubai time. [V]
  • Repo. anthonybooth71-code/fintan-travel, 1,351 commits, working tree on Studio branch wt/studio. [V]
  • EEAT. data/eeat/sources.md register. [R] The research notes warn against copying Google Places review text after an earlier scrape was flagged. [R]

Live sample [V, 25 Oct]

Check Result
60 random sitemap URLs 0 noindex; 60 canonical; 60 with a checked or updated date [V]
Words median 1,878 [V]
Sitemap lastmod 588 of 752 on 24 Oct, 68 on 20 Oct, 50 on 23 Oct, 43 on 22 Oct, 3 on 21 Oct [V]

Gaps

  1. CI file not found. The build script and CLAUDE.md say build-check.yml rebuilds and fails if sites/ differs. .github/workflows does not exist in the Studio working tree on branch wt/studio. It may live on main [U].
  2. No number lint equivalent that I found. Dates and canonicals are present; numbers are not traced to fact IDs on the page [U].
  3. lastmod semantics. 78% of URLs moved on one day. Confirm lastmod follows data change, not rebuild time.
  4. A/B control domains not registered (14–17 Oct notes).
  5. Affiliate tracking. Not shown to be broken (see Level 2). Confirm in the partner dashboard that clicks and bookings are credited [U].
  6. Coverage. Not assessed beyond the live sample [U].
  7. Venue-page template share: 66% of URLs.
  8. Baseline. GA4 tag added 15 Oct [R]; the GSC series starts 13 Oct. No pre-launch baseline.

What to copy from this build

Frozen-clock deterministic build; git-derived as-of dates; one source register with a checked date per figure; HTML as pure output; main-only publishing; MCP for answer engines; a rule against review markup.

Traffic [V, Supermetrics read-only]

GSC (sc-domain), 13–24 Oct: 70 clicks, 6,421 impressions. GA4, 20 Sep–25 Oct: direct 144, chatgpt.com 101, Google organic 84. First ChatGPT session 19 Oct; first Google organic 17 Oct. [V]

Caution: direct traffic may include our own tests; GA4 internal-traffic filtering is unconfirmed [U].

Against outside cases (../research/cases.md)

  • Nearest documented analogues are Tripadvisor and Booking tails (96.7% and 94.8% of pages at 100 visits a month or less, Ahrefs estimates) and Nomad List. No clean destination-data case was found.
  • The 66% venue-listing share is the part most like those tails. Build fewer, better pages; watch which listing pages earn clicks in Search Console.
  • Ken Lin's 160 geo sites (project notes, his X posts) report 1–2 bookings a day across all sites and four-figure first-year revenue. Self-reported. Set expectations to that scale, not to ChatGPT visit counts.
  • Official guidance: ../research/best-practice.md.