Skip to content

Instantly share code, notes, and snippets.

@jokull
Created February 27, 2026 12:21
Show Gist options
  • Select an option

  • Save jokull/33335e75c8e835e83e0c34348782d7ab to your computer and use it in GitHub Desktop.

Select an option

Save jokull/33335e75c8e835e83e0c34348782d7ab to your computer and use it in GitHub Desktop.
Dato Tour Model — Field Audit (fromPrice removal + deprecation candidates)

Dato Tour Model — Field Audit

Why fromPrice is going away

The static fromPrice field in DatoCMS has been replaced by live inventory pricing (amount) from our booking providers. The static price was stale and misleading — it didn't reflect actual availability or seasonal pricing. We've removed it from all queries and components.

What changes for tours without inventory pricing? They simply show no price instead of a stale/incorrect one. This is cleaner and more honest.


Chopping block — fields we plan to deprecate

These are Dato Tour model fields that are either never queried or queried but dead (overridden by live config from tRPC). We'd like to remove them to reduce model complexity.

Please flag any fields you want to keep before we proceed.

Never queried (safe to remove from Dato)

# Field Why it's unused
1 startTime (singular DateTime) startTimes (string) exists but is also unused — see #9
2 tourStarts Not referenced anywhere
3 isFeatured Featured tours are curated via HomePage links, not a boolean flag
4 tripadvisorLocationId Only tripadvisorRating, tripadvisorReviewCount, tripadvisorUrl, and tripadvisorReviews are used
5 operator Not referenced in any query
6 collections Not referenced in any query
7 accordion Replaced by questions (QA format) which is actively used

Queried but dead (we'll remove from queries first, then from Dato)

# Field What replaced it
8 groupSize Not consumed by any component
9 startTimes (string) config.startTimes from tRPC (live provider data)
10 geolocation (tour-level) Only itinerary[].geolocation is consumed for maps
11 seoMetadata _seoMetaTags (Dato built-in) is used instead
12 cancellationPolicy config.cancellationPolicy from tRPC (live provider data)
13 pickupLocations Replaced by pickupPlaces (newer model with coordinates)
14 features Queried (__typename id) but values are never displayed
15 linktivityPlanId Queried in cart but never actually read/used
16 plans (Dato) config.plans from tRPC drives the booking UI

Next steps: Once you confirm none of these are needed for content workflows, we'll clean up the queries and then remove the fields from the Dato model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment