{
 "meta": {
  "title": "The State of STR Direct Booking Readiness 2026: aggregate statistics",
  "citeAs": "hostAI Research (2026). The State of STR Direct Booking Readiness 2026. gethostai.com/research/str-direct-booking-readiness-2026. Version 1.0, July 2026.",
  "basis": "audited sample n=1,939, randomly drawn from a database of approximately 15,000 operator domains; audits 2026-07-13/14; one post-audit exclusion documented in the report, section 2.5",
  "scoreWeights": {
   "conversion": 0.25,
   "performance": 0.2,
   "trust": 0.2,
   "content": 0.15,
   "aiReadiness": 0.11,
   "seo": 0.09
  },
  "bands": {
   "needsWork": "<60",
   "fair": "60-66",
   "good_directReady": "67-74",
   "strong": ">=75"
  },
  "note": "Every figure published in the report, with its n and filter. Row-level data is not published (anonymization, report §2.6)."
 },
 "population": {
  "attempted": 2206,
  "completed": 2013,
  "retained": 2012,
  "industry": 1939,
  "refusals": {
   "dns-unresolvable": 12,
   "not-str-site": 95,
   "insufficient-data": 86
  },
  "postAuditExclusions": 1
 },
 "headline": {
  "n": 1939,
  "meanOverall": 47.2,
  "medianOverall": 48,
  "bands": {
   "needs-work": 1797,
   "fair": 131,
   "good": 11
  },
  "directReady": {
   "n": 1939,
   "count": 11,
   "pct": 0.6
  },
  "strong": {
   "n": 1939,
   "count": 0,
   "pct": 0
  },
  "needsWork": {
   "n": 1939,
   "count": 1797,
   "pct": 92.7
  },
  "equalWeighted": {
   "meanOverall": 48.1,
   "directReadyPct": 0.6,
   "note": "mean of per-source means across 7 industry sources"
  },
  "confidenceRestricted": {
   "filter": "industry rows with medium/high conversion confidence",
   "n": 807,
   "meanOverall": 51.7,
   "directReady": {
    "n": 807,
    "count": 10,
    "pct": 1.2
   },
   "strong": {
    "n": 807,
    "count": 0,
    "pct": 0
   }
  },
  "categoryMeans": {
   "conversion": 45.5,
   "performance": 61.3,
   "trustScore": 34.2,
   "content": 56.9,
   "aiReadiness": 34.3,
   "seo": 49.3
  }
 },
 "architecture": {
  "ladder": {
   "none-detected": {
    "n": 689,
    "pctOfIndustry": 35.5,
    "meanOverall": 43,
    "meanConversion": 26.3
   },
   "other:native": {
    "n": 24,
    "pctOfIndustry": 1.2,
    "meanOverall": 55.4,
    "meanConversion": 66.3
   },
   "dead-engine": {
    "n": 2,
    "pctOfIndustry": 0.1,
    "meanOverall": 41,
    "meanConversion": 37
   },
   "hosted-redirect": {
    "n": 439,
    "pctOfIndustry": 22.6,
    "meanOverall": 45.1,
    "meanConversion": 39.4
   },
   "embedded": {
    "n": 697,
    "pctOfIndustry": 35.9,
    "meanOverall": 52.7,
    "meanConversion": 68
   },
   "subdomain-hop": {
    "n": 25,
    "pctOfIndustry": 1.3,
    "meanOverall": 46.9,
    "meanConversion": 37.5
   },
   "behavioral-external": {
    "n": 63,
    "pctOfIndustry": 3.2,
    "meanOverall": 44.5,
    "meanConversion": 44.8
   }
  },
  "offsiteCheckout": {
   "n": 504,
   "pctOfIndustry": 26,
   "meanOverall": 45,
   "meanConversion": 40.1
  },
  "onSiteGrouped": {
   "n": 721,
   "meanConversion": 67.9,
   "meanOverall": 52.8,
   "definition": "embedded + custom/native"
  },
  "embeddedVsOffsite": {
   "overallGap": 7.7,
   "conversionGap": 27.9
  }
 },
 "funnel": {
  "explorerAttempted": 1939,
  "steps": {
   "propertyFound": {
    "n": 923,
    "pctOfAttempted": 47.6
   },
   "datesSelected": {
    "n": 921,
    "pctOfAttempted": 47.5
   },
   "checkoutReached": {
    "n": 378,
    "pctOfAttempted": 19.5
   }
  },
  "clicksToCheckout": {
   "n": 90,
   "median": 4,
   "p75": 4
  },
  "crossDomainAmongReached": {
   "n": 90,
   "count": 14,
   "pct": 15.6
  },
  "staticClicksToBook": {
   "n": 1939,
   "median": 8
  }
 },
 "ai": {
  "scoreBelow50": {
   "n": 1939,
   "count": 1839,
   "pct": 94.8
  },
  "llmsTxt": {
   "n": 1939,
   "count": 540,
   "pct": 27.8
  },
  "llmsTxtHtmlFalsePositive": {
   "n": 540,
   "count": 141,
   "pct": 26.1,
   "filter": "llms.txt=true whose stored content starts with '<' (SPA catch-all)"
  },
  "sitemap": {
   "n": 1939,
   "count": 1744,
   "pct": 89.9
  },
  "robotsTxt": {
   "n": 1939,
   "count": 1762,
   "pct": 90.9
  },
  "blocksAllAI": {
   "n": 1762,
   "count": 1,
   "pct": 0.1,
   "filter": "among sites with robots.txt"
  },
  "botAllowances": {
   "allowsGPTBot": 97.2,
   "allowsClaudeBot": 97.3,
   "allowsPerplexityBot": 99.7
  },
  "schemaAdoption": {
   "anyLodgingType": {
    "n": 1939,
    "count": 485,
    "pct": 25
   },
   "vacationRental": {
    "n": 1939,
    "count": 264,
    "pct": 13.6
   },
   "lodgingBusiness": {
    "n": 1939,
    "count": 63,
    "pct": 3.2
   },
   "localBusiness": {
    "n": 1939,
    "count": 166,
    "pct": 8.6
   },
   "faqPage": {
    "n": 1939,
    "count": 51,
    "pct": 2.6
   },
   "aggregateRating": {
    "n": 1939,
    "count": 590,
    "pct": 30.4
   },
   "zeroSchema": {
    "n": 1939,
    "count": 1088,
    "pct": 56.1
   }
  }
 },
 "trust": {
  "noOnSiteReviews": {
   "n": 1939,
   "count": 693,
   "pct": 35.7
  },
  "reviewRecency": {
   "filter": "among sites with on-site reviews",
   "n": 1246,
   "dist": {
    "unknown": 859,
    "fresh": 200,
    "recent": 76,
    "stale": 111
   }
  },
  "reviewSourceTypes": {
   "custom": 301,
   "google": 317,
   "aggregate": 583,
   "tripadvisor": 15,
   "airbnb": 25,
   "trustpilot": 5
  },
  "missingPhone": {
   "n": 1939,
   "count": 253,
   "pct": 13
  },
  "missingAddress": {
   "n": 1939,
   "count": 1241,
   "pct": 64
  },
  "missingEmail": {
   "n": 1939,
   "count": 227,
   "pct": 11.7
  },
  "missingAllContact": {
   "n": 1939,
   "count": 42,
   "pct": 2.2
  },
  "noSocials": {
   "n": 1939,
   "count": 585,
   "pct": 30.2
  }
 },
 "mobile": {
  "filter": "industry rows with mobile vision analysis, viewport not obstructed",
  "n": 1844,
  "noMobileCta": {
   "n": 1844,
   "count": 504,
   "pct": 27.3
  },
  "ctaProminenceLow": {
   "n": 1340,
   "count": 57,
   "pct": 4.3,
   "filter": "among detected CTAs: prominence <=2 of 5"
  },
  "noMobileDatePicker": {
   "n": 1844,
   "count": 1127,
   "pct": 61.1
  },
  "priceNotVisible": {
   "n": 1844,
   "count": 1624,
   "pct": 88.1
  }
 },
 "performance": {
  "n": 1720,
  "lighthouse": {
   "median": 57,
   "below50": 27.8,
   "above90": 1.7
  },
  "lcp": {
   "n": 1727,
   "medianMs": 8689,
   "slowPct": 86.5,
   "filter": "LCP > 2.5s = failing Google's threshold"
  },
  "pageSpeedAbsent": {
   "n": 1939,
   "count": 212,
   "pct": 10.9
  }
 },
 "search": {
  "n": 1938,
  "organicTraffic": {
   "median": 0,
   "p25": 0,
   "p75": 44,
   "p90": 729.1
  },
  "below100PerMonth": {
   "n": 1938,
   "count": 1548,
   "pct": 79.9
  },
  "authorityScore": {
   "median": 6,
   "below20": 87.6
  },
  "semrushMissing": {
   "n": 1939,
   "count": 1,
   "pct": 0.1
  }
 },
 "quartiles": {
  "n_per_quartile": 484,
  "categoryMeans": {
   "conversion": {
    "top": 75.4,
    "bottom": 13.1,
    "delta": 62.3
   },
   "performance": {
    "top": 62.7,
    "bottom": 60.4,
    "delta": 2.2
   },
   "trustScore": {
    "top": 42.9,
    "bottom": 24,
    "delta": 18.9
   },
   "content": {
    "top": 65,
    "bottom": 45.2,
    "delta": 19.8
   },
   "aiReadiness": {
    "top": 37.6,
    "bottom": 30.3,
    "delta": 7.3
   },
   "seo": {
    "top": 49.8,
    "bottom": 49.9,
    "delta": -0.1
   }
  },
  "architectureShare": {
   "topEmbeddedPct": 63,
   "bottomEmbeddedPct": 9,
   "bottomNoneDetectedPct": 59
  },
  "byPortfolioSize": {
   "1": {
    "n": 279,
    "meanOverall": 47.5
   },
   "2-5": {
    "n": 280,
    "meanOverall": 50
   },
   "6-20": {
    "n": 198,
    "meanOverall": 51.5
   },
   "21+": {
    "n": 66,
    "meanOverall": 52.5
   }
  },
  "byCountry": {
   "US": {
    "n": 1507,
    "meanOverall": 47.7
   },
   "GB": {
    "n": 29,
    "meanOverall": 44.3
   },
   "CA": {
    "n": 21,
    "meanOverall": 45.7
   },
   "DE": {
    "n": 93,
    "meanOverall": 45.2
   }
  },
  "rawSearchRobustness": {
   "organicTrafficMedians": {
    "top": 1,
    "bottom": 0
   },
   "authorityScore": {
    "medianBoth": 6,
    "p90Top": 16,
    "p90Bottom": 24
   },
   "corrLogTrafficWithOverall": 0.02,
   "corrLogTrafficWithSeoScore": 0.71
  }
 },
 "perSourceDirectionCheck": {
  "comparableLists": 6,
  "summary": "five lists show on-site-minus-off-site conversion gaps of +25.4 to +32.1; one list (20 on-site, 33 off-site) shows +0.6; one list has no off-site sites",
  "definition": "per source list, mean conversion of on-site (embedded+custom/native) minus off-site (PMS-hosted+behavioral external+dead) classes"
 },
 "performanceCategory": {
  "p10": 47,
  "p90": 71,
  "n": 1939,
  "definition": "10th/90th percentiles of the performance category score across the industry population; cited in report section 5"
 },
 "thresholdSensitivity": {
  "n": 1939,
  "atOrAbove": {
   "60": 142,
   "62": 63,
   "65": 28,
   "67": 11,
   "68": 5,
   "70": 1,
   "75": 0
  },
  "definition": "count of sites with overall score at or above each cutoff; report A2.4"
 },
 "agentMeasures": {
  "navigable": 922,
  "propertyLocated": 923,
  "navigableAndLocated": 922,
  "locatedOnlyNotNavigable": 1,
  "definition": "overlap of the agent navigability classification and the property-location outcome; report section 2.3"
 }
}