Ulta Beauty
What an agent can confirm
- Access and discovery
- Confirmed100% checked
- Offer identification
- Confirmed83% checked
- Material terms
- Partly81% checked
- Observable operability
- Confirmed81% checked
- Evidence and recourse
- Confirmed86% checked
- Indexing crawlers
- ReachedThe declared HTTP client, which runs no JavaScript
Strengths
- Offer and policy pages are readable and the offer is discoverable.
- Product identity, price with currency and availability are exposed on the offer page.
- Seller, policy and a stable offer reference are identifiable.
Gaps
- Cost, delivery or return terms are partly missing.
- The purchase control or its state is not exposed in the markup.
Terms an agent can confirm
From Ulta Beauty'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 yet confirmedRead from page text. Not yet through the two-rater check.
- Delivery estimate
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Full price before checkout
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- Seller name
- Not yet confirmedRead from typed data. Held for review before publication.
- Seller contact
- Phone +1 866 983 8582Source page · Observed 20 October 2026
- Price of the sampled offer
- $69Source page · Observed 20 October 2026
- Availability
- In stockSource page · Observed 20 October 2026
- Sales tax
- Not yet confirmedRead from page text. Not yet through the two-rater check.
- 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
- Not checkedThe purchase control has no observable target.
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 · 86% of tests checked · score range 78 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.
Beauty & Health has 54 stores in the directory. Their median score is 88.2, across the 41 with a score. 10 have complete assessments.
The chart shows their scores. The shaded band is Ulta Beauty'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: 743916915806061bd9beaec7affa60e0027f74d661bdaf379373c27648f975ec. 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/ulta.com/",
"name": "Ulta Beauty (ulta.com) agent readiness facts",
"description": "Ulta Beauty (ulta.com) is labelled Close for AI shopping agents. 86% of tests were checked from public pages, observed 20 October 2026.",
"url": "https://evolutionairy.ai/agent-ready/ulta.com/",
"identifier": "ulta.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": "Ulta Beauty",
"url": "https://www.ulta.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/ulta.com/index.json"
},
{
"@type": "DataDownload",
"encodingFormat": "text/markdown",
"contentUrl": "https://evolutionairy.ai/agent-ready/ulta.com/index.md"
}
],
"record_schema": "evolutionairy.agent-ready.profile/3",
"store": {
"domain": "ulta.com",
"name": "Ulta Beauty",
"site": "https://www.ulta.com/",
"category": "Beauty \u0026 Health"
},
"label": "close",
"label_text": "Close",
"detail": "Close · 86% of tests checked · score range 78 to 89",
"indexing_crawler_access": "served",
"assessment_status": "incomplete",
"coverage_pct": 85.6,
"score": 87.2,
"score_range": [
77.6,
88.7
],
"score_basis": "mean of the two agent profiles, a missing value counting as 0",
"headline_profile": "declared-http",
"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_yet_confirmed",
"status_text": "Not yet confirmed",
"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_yet_confirmed",
"status_text": "Not yet confirmed",
"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": "Phone +1 866 983 8582",
"status": "confirmed",
"status_text": null,
"source_url": "https://www.ulta.com/guestservices/all",
"observed": "2026-10-20"
},
"price": {
"label": "Price of the sampled offer",
"value": "$69",
"status": "confirmed",
"status_text": null,
"source_url": "https://www.ulta.com/p/dewy-skin-go-set-pimprod2061256?sku=2659656",
"observed": "2026-10-20"
},
"availability": {
"label": "Availability",
"value": "In stock",
"status": "confirmed",
"status_text": null,
"source_url": "https://www.ulta.com/p/dewy-skin-go-set-pimprod2061256?sku=2659656",
"observed": "2026-10-20"
},
"tax": {
"label": "Sales tax",
"value": null,
"status": "not_yet_confirmed",
"status_text": "Not yet confirmed",
"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": null,
"status": "not_checked",
"status_text": "Not checked",
"source_url": null,
"observed": null
}
},
"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": 100.0,
"score": 100.0,
"score_range": [
100.0,
100.0
]
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 88.9,
"score": 100.0,
"score_range": [
93.8,
100.0
]
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 100.0,
"score": 66.7,
"score_range": [
66.7,
66.7
]
},
"D": {
"name": "Observable operability",
"weight": 0.2,
"coverage_pct": 62.5,
"score": 80.0,
"score_range": [
50.0,
87.5
]
},
"E": {
"name": "Evidence and recourse",
"weight": 0.15,
"coverage_pct": 100.0,
"score": 100.0,
"score_range": [
100.0,
100.0
]
}
},
"declared-headless": {
"A": {
"name": "Access and discovery",
"weight": 0.15,
"coverage_pct": 100.0,
"score": 100.0,
"score_range": [
100.0,
100.0
]
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 77.8,
"score": 100.0,
"score_range": [
87.5,
100.0
]
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 62.5,
"score": 50.0,
"score_range": [
37.5,
62.5
]
},
"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": 100.0,
"score_range": [
75.0,
100.0
]
}
}
},
"pillars_mean": {
"A": {
"name": "Access and discovery",
"weight": 0.15,
"coverage_pct": 100.0,
"score": 100.0,
"score_range": [
100.0,
100.0
],
"status": "Confirmed"
},
"B": {
"name": "Offer identification",
"weight": 0.25,
"coverage_pct": 83.4,
"score": 100.0,
"score_range": [
90.7,
100.0
],
"status": "Confirmed"
},
"C": {
"name": "Material terms",
"weight": 0.25,
"coverage_pct": 81.3,
"score": 58.4,
"score_range": [
52.1,
64.6
],
"status": "Partly"
},
"D": {
"name": "Observable operability",
"weight": 0.2,
"coverage_pct": 81.3,
"score": 83.8,
"score_range": [
68.8,
87.5
],
"status": "Confirmed"
},
"E": {
"name": "Evidence and recourse",
"weight": 0.15,
"coverage_pct": 85.7,
"score": 100.0,
"score_range": [
87.5,
100.0
],
"status": "Confirmed"
}
},
"category_context": {
"category": "Beauty \u0026 Health",
"stores": 54,
"complete_assessments": 10,
"median_score": 88.2,
"sample_size": 41
},
"claim_url": "https://evolutionairy.ai/agent-ready/account/claim/?domain=ulta.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."
}
}