{"slug":"sundaysfordogs-gxqskr","companyName":"Sundays Food for Dogs","domain":"sundaysfordogs.com","url":"https://sundaysfordogs.com","headline":"A subscription pet food service blocks machine pricing discovery behind JavaScript rendering, forcing agents to complete signup before understanding cost.","compositeScore":51,"humanScore":73,"agentScore":29,"doorGap":44,"humanMeasured":4,"agentMeasured":6,"percentile":17,"humanPercentile":22,"agentPercentile":78,"isPartial":false,"depth":"free","siteClass":"unknown","scannerVersion":12,"scannedAt":"2026-09-08T14:32:45.753Z","unlocked":false,"mission":{"steps":[{"url":"https://sundaysfordogs.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://sundaysfordogs.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://sundaysfordogs.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://sundaysfordogs.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"find out what pages exist"},{"url":"https://sundaysfordogs.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://sundaysfordogs.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"read the homepage as data rather than as a page"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"find a machine readable API spec"},{"url":"https://sundaysfordogs.com","outcome":"missing","purpose":"read the developer documentation"},{"url":"https://sundaysfordogs.com/pricing","outcome":"missing","purpose":"read the prices without running JavaScript"},{"url":"https://sundaysfordogs.com/dogs/quiz_steps/start","outcome":"ok","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 5 of 14 requests, but could not find out what pages exist. It came up empty on 8 other checks too. That is enough missing for a machine to give up before it reaches a purchase."},"observations":null,"dimensions":[{"key":"machine_discoverability","audience":"agent","score":44,"summary":"The site publishes llms.txt and allows all declared AI crawlers by user agent, but key content including pricing appears only after JavaScript runs. No sitemap or schema.org markup exists on the homepage.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":10,"summary":"No API documentation is linked from the homepage or published at standard paths. No OpenAPI spec exists at any of the 6 checked locations. The signup form is HTML-based only, with no programmatic alternative for agents to complete.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":30,"summary":"Prices appear only after JavaScript executes. The raw HTML contains zero prices; the rendered page shows 1 price ($50). A client that does not render pages sees no pricing at all, making cost discovery impossible for non-browser agents.","evidence":{"locked":true,"count":1}},{"key":"agent_aware_instrumentation","audience":"agent","score":8,"summary":"No MCP manifest is published at any of the 3 standard paths checked. No ai-plugin.json or Web Bot Auth signals exist. The site has no machine-readable way for agents to understand what actions are available.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":40,"summary":"No security.txt file is published at /.well-known/security.txt. The homepage responds to automated requests, but no trust signals or security contact information are machine-readable.","evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":40,"summary":"A self serve signup form is reachable from the homepage.","evidence":{"locked":true,"count":2}},{"key":"steps_to_first_value","audience":"human","score":80,"summary":"The primary call to action, '30% off your first box. Get started.', reaches a signup form in 2 steps from the homepage. The form itself is the entry point to the service, placing first value access very close to initial landing.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":90,"summary":"The signup form contains 6 fields with 0 marked as required. A visitor can proceed through the form without filling any mandatory information, removing friction from initial entry.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":65,"summary":"No verification requirement appears on the signup page itself. The form accepts entry with no email confirmation, phone verification, or identity checks visible before submission.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":58,"summary":"1 of 6 form inputs carries validation rules. The page has 4 inline error containers in the markup, providing structure for error messages. Recovery paths exist but are sparsely implemented across the form.","evidence":{"locked":true,"count":1}}],"issues":[{"rank":1,"title":"Prices appear only after JavaScript runs, so a client that reads raw HTML sees no price at all.","dimensionKey":"pricing_legibility","evidence":{"locked":true,"count":1},"fix":null},{"rank":2,"title":"No security.txt is published, so a machine has no documented route to report a problem.","dimensionKey":"machine_fetchable_trust","evidence":{"locked":true,"count":1},"fix":null},{"rank":3,"title":"No API documentation or programmatic onboarding path exists for agents to complete transactions without a browser.","dimensionKey":"programmatic_onboarding","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":8,"summaries":[{"id":"robots_search_bots:robots-txt","kind":"robots_search_bots","title":"robots.txt rules for AI crawlers","path":"/robots.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["The assistants' search crawlers read and cite the site to buyers; training stays the owner's decision."]}},{"id":"pricing_ssr_fallback:pricing-page","kind":"pricing_ssr_fallback","title":"Prices in the HTML, not only after JavaScript","path":"pricing page","effort":{"minutes":60,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["A client that reads raw HTML sees the plans and prices."]}},{"id":"software_offer_jsonld:pricing-page","kind":"software_offer_jsonld","title":"Pricing as Offer structured data","path":"pricing page","effort":{"minutes":20,"role":"developer"},"outcome":{"dimension":"pricing_legibility","external":["Assistants comparing vendors read the plans and prices as Offer structured data."]}},{"id":"sitemap_xml:sitemap-xml","kind":"sitemap_xml","title":"sitemap.xml","path":"/sitemap.xml","effort":{"minutes":20,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["Search engines and assistant crawlers find every listed page without walking for it."]}},{"id":"organization_jsonld:homepage","kind":"organization_jsonld","title":"Organization structured data","path":"homepage","effort":{"minutes":15,"role":"developer"},"outcome":{"dimension":"machine_discoverability","external":["Search and assistant crawlers read the company entity from the homepage rather than inferring it."]}},{"id":"interfaces_note:notes","kind":"interfaces_note","title":"Machine interfaces: where you stand","path":"notes","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["The developer surface is built in an order where every published pointer answers."]}},{"id":"pricing_md:pricing-md","kind":"pricing_md","title":"pricing.md","path":"/pricing.md","effort":{"minutes":20,"role":"owner"},"outcome":{"dimension":"agent_aware_instrumentation","external":["Agents read the price list directly instead of rendering the pricing page."]}},{"id":"security_txt:well-known-security-txt","kind":"security_txt","title":"security.txt","path":"/.well-known/security.txt","effort":{"minutes":10,"role":"owner"},"outcome":{"dimension":"machine_fetchable_trust","external":["Researchers and automated scanners find a disclosure address instead of guessing one."]}}]},"feedback":{"endpoint":"/api/feedback","mcpTool":"rate_fix","targets":[{"type":"report","key":"report"},{"type":"dimension","dimensionKey":"machine_discoverability","key":"dimension:machine_discoverability"},{"type":"dimension","dimensionKey":"programmatic_onboarding","key":"dimension:programmatic_onboarding"},{"type":"dimension","dimensionKey":"pricing_legibility","key":"dimension:pricing_legibility"},{"type":"dimension","dimensionKey":"agent_aware_instrumentation","key":"dimension:agent_aware_instrumentation"},{"type":"dimension","dimensionKey":"machine_fetchable_trust","key":"dimension:machine_fetchable_trust"},{"type":"dimension","dimensionKey":"commercial_rails","key":"dimension:commercial_rails"},{"type":"dimension","dimensionKey":"steps_to_first_value","key":"dimension:steps_to_first_value"},{"type":"dimension","dimensionKey":"required_fields","key":"dimension:required_fields"},{"type":"dimension","dimensionKey":"verification_walls","key":"dimension:verification_walls"},{"type":"dimension","dimensionKey":"error_recovery","key":"dimension:error_recovery"},{"type":"issue","dimensionKey":"pricing_legibility","checkId":"pricing_nojs","key":"issue:pricing_legibility:pricing_nojs"},{"type":"issue","dimensionKey":"machine_fetchable_trust","checkId":"security_txt","key":"issue:machine_fetchable_trust:security_txt"},{"type":"issue","dimensionKey":"programmatic_onboarding","checkId":null,"key":"issue:programmatic_onboarding:-"}]}}