Structure Beats Magic
← All use cases

The Structured Trip Host

Situation: someone hosts a group trip — a tour leader, retreat organizer, small-group operator, or the person who plans the family reunion. They juggle a dozen people's needs in their head or a messy spreadsheet.

The method applied: take the personal trip-curation system already running (for myself and Annemarie) and generalize it from a pair to a group. Structure the participant knowledge deliberately, and the trip plans itself around everyone at once — and keeps improving while it runs.

The problem, as the job is done now

A group-travel host holds unstructured knowledge in their head: who's a difficult sleeper, who's vegetarian (and who of those is coeliac), who has a knee, who's been to Rome already, who quietly hates museums. It's un-queryable, forgotten between trips, and the trip is a compromise nobody chose. Every trip starts from zero. Not a planning problem — a structure problem.

The method: four loops

1. Intake → structured participant profiles. Each participant shares via a simple form: interests, anti-interests (a real veto, not a soft preference), constraints (diet, mobility, sleep, medical highlights, budget). One structured profile per person — not prose in an inbox. 2. Collection → a better plan. The itinerary is shaped by the group aggregate: activities scored by group affinity, anti-interests filtered out, constraints honored (room list knows the light sleeper; restaurant list knows the coeliac). Exactly what plan_trip.py already does, generalized from one companion to a group. 3. Daily feedback → continuous improvement. A one-tap daily form per participant feeds back; tomorrow's plan adjusts to today's signal. The trip learns as it runs. 4. Memories → automated group album. Photos from all participants pool into a structured, day-by-day group album; a shared online photobook / trip site is generated. Shared memory as an automatic byproduct of structure.

Why it's credible (proof, not slides)

Every loop already exists as running machinery in C:/Repos/ai/travel-curation/ + trips.duckdb:

  • Interests / anti-interests / exclusions: dim_preference, fact_exclusion, derive_exclusions.py, load_preferences.py (21 scored signals, anti-prefs, 642 place-exclusions).
  • Group-shaped planning: plan_trip.py (affinity ranking, facts-only brief in-voice).
  • Per-participant personalization + sharing: map_place_annemarie, export_annemarie.py — already personalizes/exports for one companion; the use case makes it N.
  • Daily structure + photo linking: dim_trip_day, fact_activity, bridge_activity_photo, link_trip_photos.py.
  • Shared album / trip site: Astro render layer (site/pages/trips/), photo web-optimization, built + HTTP-200 verified.
  • Pilots: Sicily 2022 (8 days / 55 activities / 19 places / 1128 photos, shared) + France-Verdon 2026 (18 days / 91 activities / 69 places).

The use case is a generalization of a proven personal system — the brand promise made concrete.

Using this in workshops / training / demos

  • Demo: show the four loops on the real Sicily/France data — a credible, concrete "look what structure does."
  • Workshop: hand participants a blank intake form and let them structure a trip they're planning; the anti-interests idea lands hardest live.
  • Training: the loops teach the general method (capture as data → plan from the collection → learn from feedback → memory assembles itself) through a situation everyone recognizes.
  • Positioning: a prospect who hosts trips sees their own job here and gets the whole thesis in one example.