{"slug":"whatagraph-n2n6xv","companyName":"Whatagraph","domain":"whatagraph.com","url":"https://whatagraph.com","headline":"A marketing analytics platform that publishes prices only after JavaScript runs and routes all access through sales conversations.","compositeScore":38,"humanScore":36,"agentScore":40,"doorGap":-4,"humanMeasured":4,"agentMeasured":6,"percentile":4,"humanPercentile":1,"agentPercentile":30,"isPartial":false,"depth":"free","siteClass":"b2b_saas","scannerVersion":12,"scannedAt":"2026-09-08T14:09:20.749Z","unlocked":false,"mission":{"steps":[{"url":"https://whatagraph.com","outcome":"ok","purpose":"reach the site at all"},{"url":"https://whatagraph.com/robots.txt","outcome":"ok","purpose":"find out whether machines are welcome"},{"url":"https://whatagraph.com","outcome":"ok","purpose":"ask whether the door opens for requests carrying the AI crawlers' names"},{"url":"https://whatagraph.com/llms.txt","outcome":"ok","purpose":"read the site's own guide for language models"},{"url":"https://whatagraph.com/sitemap.xml","outcome":"ok","purpose":"find out what pages exist"},{"url":"https://whatagraph.com/.well-known/security.txt","outcome":"missing","purpose":"find a contact route for machines"},{"url":"https://whatagraph.com","outcome":"missing","purpose":"find a published agent interface"},{"url":"https://whatagraph.com/.well-known/ai-plugin.json","outcome":"missing","purpose":"find an agent plugin manifest"},{"url":"https://whatagraph.com","outcome":"missing","purpose":"find out whether verified agents are recognised"},{"url":"https://whatagraph.com","outcome":"ok","purpose":"read the homepage as data rather than as a page"},{"url":"https://whatagraph.com/openapi.json","outcome":"ok","purpose":"find a machine readable API spec"},{"url":"https://whatagraph.com","outcome":"ok","purpose":"read the developer documentation"},{"url":"https://whatagraph.com/pricing","outcome":"missing","purpose":"read the prices without running JavaScript"},{"url":"https://whatagraph.com","outcome":"ok","purpose":"find a comparison page worth citing"},{"url":"https://whatagraph.com/book-a-call","outcome":"missing","purpose":"walk the way a visitor would, to a signup form or a product"}],"verdict":"The agent got through 9 of 15 requests, but could not find a contact route for machines. It came up empty on 5 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":82,"summary":"Robots.txt explicitly names and allows 6 AI crawlers including GPTBot, Perplexity, and Claude variants. A real browser is served the page normally. The sitemap lists 45 URLs and llms.txt is published with 538 lines.","evidence":{"locked":true,"count":4}},{"key":"programmatic_onboarding","audience":"agent","score":35,"summary":"A machine readable API spec is published, the only route to an account is a sales conversation.","evidence":{"locked":true,"count":3}},{"key":"pricing_legibility","audience":"agent","score":30,"summary":"Two prices appear on the pricing page only after JavaScript runs. A client that does not render pages sees no prices at all in the raw HTML. The structured data includes Offer schema, but the actual figures are inaccessible to.","evidence":{"locked":true,"count":1}},{"key":"agent_aware_instrumentation","audience":"agent","score":40,"summary":"Robots.txt names 6 AI crawlers and allows them, and a machine readable API spec is published. No MCP manifest is present at the 3 standard paths checked.","evidence":{"locked":true,"count":4}},{"key":"machine_fetchable_trust","audience":"agent","score":40,"summary":"The homepage answers automated requests with HTTP 200 and structured data. No security.txt is published at /.well-known/security.txt. The site provides minimal machine-readable trust signals beyond basic availability.","evidence":{"locked":true,"count":2}},{"key":"commercial_rails","audience":"agent","score":15,"summary":"The entry point is a sales conversation. Plans are published as Offer structured data in JSON-LD, but no self-serve purchase path exists. All access to the product requires a human sales interaction.","evidence":{"locked":true,"count":2}},{"key":"steps_to_first_value","audience":"human","score":20,"summary":"The primary call to action is 'Get a demo', a sales route reached in 2 steps from the homepage. No trial, free tier, or self-serve signup path is available. A visitor cannot access working product without scheduling a conversation.","evidence":{"locked":true,"count":1}},{"key":"required_fields","audience":"human","score":25,"summary":"The entry point is a 5-field demo booking form with 0 required fields and 0 validation rules on any input. However, this is a sales form, not a signup form. The site has no self-serve account creation path to measure.","evidence":{"locked":true,"count":1}},{"key":"verification_walls","audience":"human","score":65,"summary":"No email verification, phone verification, or CAPTCHA appears on the demo booking form. The form asks for name, email, company, and phone with no constraints. Access to the product itself requires a sales conversation, not form submission.","evidence":{"locked":true,"count":1}},{"key":"error_recovery","audience":"human","score":35,"summary":"The demo booking form has 5 inputs with 0 validation rules, 0 inline error containers, and 0 live regions. A visitor cannot receive feedback about malformed input before submission. The form does not guide correction of errors.","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":"The only route to an account is a sales conversation, so nobody signs up without talking to a person.","dimensionKey":"steps_to_first_value","evidence":{"locked":true,"count":1},"fix":null},{"rank":3,"title":"No MCP manifest is published, preventing Claude and other agents from discovering and using the API without manual configuration.","dimensionKey":"agent_aware_instrumentation","evidence":{"locked":true,"count":3},"fix":null}],"fixArtifacts":{"locked":true,"count":5,"summaries":[{"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":"comparison_page_brief:compare-whatagraph-vs-competitor","kind":"comparison_page_brief","title":"A comparison page brief","path":"/compare/whatagraph-vs-competitor","effort":{"minutes":180,"role":"owner"},"outcome":{"dimension":"machine_discoverability","external":["A server-rendered comparison page exists for an assistant to cite."]}},{"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":"steps_to_first_value","checkId":"entry_path","key":"issue:steps_to_first_value:entry_path"},{"type":"issue","dimensionKey":"agent_aware_instrumentation","checkId":null,"key":"issue:agent_aware_instrumentation:-"}]}}