Proper Hospitality
What an agent can confirm
- Access and discovery
- Partly83% checked
- Offer identification
- Partly checked38% checked
- Material terms
- Confirmed62% checked
- Observable operability
- Confirmed88% checked
- Evidence and recourse
- Confirmed71% checked
- Indexing crawlers
- ReachedThe declared HTTP client, which runs no JavaScript
Strengths
- Shipping, tax, delivery and return terms are stated.
- The purchase control is named, bound to the offer, and its state is exposed.
Gaps
- Some pages or links are not reachable by declared agents.
- Seller contact, policy applicability or recourse channel is missing.
Terms an agent can confirm
From Proper Hospitality's public pages. A value is shown with its source page and the day it was observed.
- Return window
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Who pays return shipping
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Shipping cost
- Not checkedService fees need extractor.
- Delivery estimate
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Full price before checkout
- Not checkedBase price not extracted.
- Seller name
- Not yet confirmedRead from typed data. Held for review before publication.
- Seller contact
- Email sales@properhotel.comSource page · Observed 20 October 2026
- Price of the sampled offer
- Not found on public pagesNo price amount was found.
- Availability
- Not checkedDeciding it needs free-text reading, which this release does not publish.
- Sales tax
- Not checkedPolicy not recognized.
- Ships to
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Refund method
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Checkout
- On the store's own siteSource page · Observed 20 October 2026
Access
What each declared agent profile received. A barrier is an access result. It says nothing about the store's honesty.
Declared HTTP client
A plain HTTP client with an identifiable user agent. It does not run page scripts, like Meta's discovery crawler.
- Home page
- Served
- Offer page
- Found
- Observed
- 20 October 2026
Declared headless browser
Headless Chromium with the same identifiable user agent and no concealment. It renders pages.
- Home page
- Served
- Offer page
- Found
- Observed
- 20 October 2026
Readiness
Close · 68% of tests checked · score range 52 to 89. The better agent profile has at least 50% of tests checked. The pillars below are the mean of the two agent profiles. The pillar card beside the score shows each profile on its own.
Hotels has 311 stores in the directory. Their median score is 80.3, across the 67 with a score. 0 have complete assessments.
The chart shows their scores. The shaded band is Proper Hospitality's range.
For the store owner
Is this your store? Claim it to see your full report and fix list.
How the label and the score are set: How we score.
SHA-256 of index.json: 44ce97cad8a3cc4bf268e1c9f6fa976dc15d95a279c5c3c23d6d76229455653b. The same bytes are embedded in this page as JSON-LD.
View the JSON
{
"@context": "https://schema.org",
"@type": "Dataset",
"@id": "https://evolutionairy.ai/agent-ready/properhotel.com/",
"name": "Proper Hospitality (properhotel.com) agent readiness facts",
"description": "Proper Hospitality (properhotel.com) is labelled Close for AI shopping agents. 68% of tests were checked from public pages, observed 20 October 2026.",
"url": "https://evolutionairy.ai/agent-ready/properhotel.com/",
"identifier": "properhotel.com",
"inLanguage": "en",
"dateModified": "2026-10-20",
"temporalCoverage": "2026-10-20/2026-10-20",
"isAccessibleForFree": true,
"license": "https://creativecommons.org/licenses/by-nc/4.0/",
"usageInfo": "https://evolutionairy.ai/terms",
"creator": {
"@type": "Organization",
"name": "Evolutionairy",
"url": "https://evolutionairy.ai/"
},
"about": {
"@type": "Organization",
"name": "Proper Hospitality",
"url": "https://www.properhotel.com/"
},
"isPartOf": {
"@type": "DataCatalog",
"@id": "https://evolutionairy.ai/agent-ready/directory/",
"name": "Agent Ready directory"
},
"distribution": [
{
"@type": "DataDownload",
"encodingFormat": "application/json",
"contentUrl": "https://evolutionairy.ai/agent-ready/properhotel.com/index.json"
},
{
"@type": "DataDownload",
"encodingFormat": "text/markdown",
"contentUrl": "https://evolutionairy.ai/agent-ready/properhotel.com/index.md"
}
],
"record_schema": "evolutionairy.agent-ready.profile/3",
"store": {
"domain": "properhotel.com",
"name": "Proper Hospitality",
"site": "https://www.properhotel.com/",
"category": "Hotels"
},
"label": "close",
"label_text": "Close",
"detail": "Close · 68% of tests checked · score range 52 to 89",
"indexing_crawler_access": "served",
"assessment_status": "incomplete",
"coverage_pct": 67.6,
"score": 81.9,
"score_range": [
51.8,
88.6
],
"score_basis": "mean of the two agent profiles, a missing value counting as 0",
"headline_profile": "declared-headless",
"observed": {
"access": "2026-10-20",
"pages": "2026-10-20"
},
"facts": {
"return_window": {
"label": "Return window",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"return_shipping": {
"label": "Who pays return shipping",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"shipping": {
"label": "Shipping cost",
"value": null,
"status": "not_checked",
"status_text": "Not checked",
"source_url": null,
"observed": null
},
"delivery": {
"label": "Delivery estimate",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"total": {
"label": "Full price before checkout",
"value": null,
"status": "not_checked",
"status_text": "Not checked",
"source_url": null,
"observed": null
},
"seller": {
"label": "Seller name",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"contact": {
"label": "Seller contact",
"value": "Email sales@properhotel.com",
"status": "confirmed",
"status_text": null,
"source_url": "https://www.properhotel.com/san-francisco/rooms/deluxe-queen/",
"observed": "2026-10-20"
},
"price": {
"label": "Price of the sampled offer",
"value": null,
"status": "not_found",
"status_text": "Not found on public pages",
"source_url": null,
"observed": "2026-10-20"
},
"availability": {
"label": "Availability",
"value": null,
"status": "not_checked",
"status_text": "Not checked",
"source_url": null,
"observed": null
},
"tax": {
"label": "Sales tax",
"value": null,
"status": "not_checked",
"status_text": "Not checked",
"source_url": null,
"observed": null
},
"destination": {
"label": "Ships to",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"refund": {
"label": "Refund method",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"source_url": null,
"observed": null
},
"checkout": {
"label": "Checkout",
"value": "On the store's own site",
"status": "confirmed",
"status_text": null,
"source_url": "https://www.properhotel.com/san-francisco/rooms/deluxe-queen/",
"observed": "2026-10-20"
}
},
"access": {
"declared-http": {
"profile": "Declared HTTP client",
"home_page": "Served",
"offer_page_found": true,
"observed": "2026-10-20"
},
"declared-headless": {
"profile": "Declared headless browser",
"home_page": "Served",
"offer_page_found": true,
"observed": "2026-10-20"
}
},
"pillars": {
"declared-http": {
"A": {
"name": "Access and discovery",
"weight": 0.15,
"coverage_pct": 83.3,
"score": 71.4,
"score_range": [
62.5,
75.0
]
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 37.5,
"score": 60.0,
"score_range": [
20.0,
86.7
]
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 62.5,
"score": 100.0,
"score_range": [
50.0,
100.0
]
},
"D": {
"name": "Observable operability",
"weight": 0.2,
"coverage_pct": 75.0,
"score": 83.3,
"score_range": [
62.5,
87.5
]
},
"E": {
"name": "Evidence and recourse",
"weight": 0.15,
"coverage_pct": 71.4,
"score": 83.3,
"score_range": [
62.5,
87.5
]
}
},
"declared-headless": {
"A": {
"name": "Access and discovery",
"weight": 0.15,
"coverage_pct": 83.3,
"score": 71.4,
"score_range": [
62.5,
75.0
]
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 37.5,
"score": 60.0,
"score_range": [
20.0,
86.7
]
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 62.5,
"score": 100.0,
"score_range": [
50.0,
100.0
]
},
"D": {
"name": "Observable operability",
"weight": 0.2,
"coverage_pct": 100.0,
"score": 87.5,
"score_range": [
87.5,
87.5
]
},
"E": {
"name": "Evidence and recourse",
"weight": 0.15,
"coverage_pct": 71.4,
"score": 83.3,
"score_range": [
62.5,
87.5
]
}
}
},
"pillars_mean": {
"A": {
"name": "Access and discovery",
"weight": 0.15,
"coverage_pct": 83.3,
"score": 71.4,
"score_range": [
62.5,
75.0
],
"status": "Partly"
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 37.5,
"score": 60.0,
"score_range": [
20.0,
86.7
],
"status": "Partly checked"
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 62.5,
"score": 100.0,
"score_range": [
50.0,
100.0
],
"status": "Confirmed"
},
"D": {
"name": "Observable operability",
"weight": 0.2,
"coverage_pct": 87.5,
"score": 85.4,
"score_range": [
75.0,
87.5
],
"status": "Confirmed"
},
"E": {
"name": "Evidence and recourse",
"weight": 0.15,
"coverage_pct": 71.4,
"score": 83.3,
"score_range": [
62.5,
87.5
],
"status": "Confirmed"
}
},
"category_context": {
"category": "Hotels",
"stores": 311,
"complete_assessments": 0,
"median_score": 80.3,
"sample_size": 67
},
"claim_url": "https://evolutionairy.ai/agent-ready/account/claim/?domain=properhotel.com",
"method_url": "https://evolutionairy.ai/agent-ready/how-we-score/",
"license_terms": "Free to read and cite with attribution. Commercial reuse of the data requires a licence.",
"method": {
"rubric_version": "0.3",
"observations": 1,
"review_state": "unreviewed",
"label_rule": "The better agent profile has at least 50% of tests checked.",
"coverage": "Share of the rubric's weight that could be decided.",
"score": "Readiness among the tests that could be decided, 0 to 100, as the mean of the two agent profiles. The range is the score if every undecided test failed or passed.",
"scope": "Public pages only. Add-to-cart, checkout, payment, delivery and refunds were not tested."
}
}