{
 "tool": "schemaorg",
 "raw_files": [
  "raw/sv_lab2.txt",
  "raw/sv_lab2-clean.txt"
 ],
 "reach": {
  "fetched_paths": [
   "/",
   "/assets/site.css",
   "/assets/site.js",
   "/img/*.svg (3)",
   "/__px (beacon)"
  ],
  "agents": [
   "Schema-Markup-Validator",
   "Google-Structured-Data-Testing-Tool (renderer; UA does not contain \"Googlebot\")"
  ]
 },
 "faults": {
  "R1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "R7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "robots"
  },
  "S1": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:PerplexityBot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S2": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:Applebot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S3": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:OAI-SearchBot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S4": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:ClaudeBot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S5": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:GPTBot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S6": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home:Googlebot",
   "note": "Set by the independent verification pass (grades/_verification.json)."
  },
  "S7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/pricing:Bingbot"
  },
  "I1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/services/gutter-guards"
  },
  "I2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/pricing"
  },
  "I3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/areas/riverbend"
  },
  "I4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/services/downspout-repair"
  },
  "I5": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  },
  "I6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/faq"
  },
  "I7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/about"
  },
  "J1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/pricing"
  },
  "J2": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  },
  "J3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/reviews"
  },
  "J4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/faq"
  },
  "J5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/gallery"
  },
  "J6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/careers"
  },
  "D1": {
   "v": "caught",
   "quote": "\"errorType\":\"JSON_PARSE_ERROR\",\"args\":[\"JSON_PARSER_OBJ_MEMBER_MISSING_RCB\"],\"begin\":1064,\"end\":1065,\"isSevere\":true",
   "where": "sv_lab2.txt errors[0]",
   "note": "Offset 1064 is the \",\" before \"}\" in the returned html (verified: html[1063:1065] == \",}\").",
   "loc": "home"
  },
  "D2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/contact"
  },
  "D3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/contact"
  },
  "D4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/reviews"
  },
  "D5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/about"
  },
  "D6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/about"
  },
  "D7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/blog/*"
  },
  "M1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "llms"
  },
  "M2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "llms"
  },
  "M3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "security"
  },
  "M4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "security"
  },
  "M5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "security"
  },
  "X1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smidx"
  },
  "X2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "X3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "X4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "X5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "X6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "L1": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  },
  "L2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/old-gutter-page"
  },
  "L3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/blog/do-gutter-guards-work,/promo-a"
  },
  "L4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/specials"
  },
  "L5": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "smpages"
  },
  "L6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/faq/"
  },
  "L7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/about"
  },
  "P1": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/careers"
  },
  "P2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/areas/millbrook,/areas/cedar-park"
  },
  "P3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/services/fascia-repair"
  },
  "P4": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/services/ice-dam-prevention"
  },
  "P5": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  },
  "P6": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/privacy"
  },
  "P7": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/terms"
  },
  "T1": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  },
  "T2": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/about"
  },
  "T3": {
   "v": "unreached",
   "quote": "",
   "where": "",
   "loc": "sub:/blog/do-gutter-guards-work"
  },
  "T4": {
   "v": "missed",
   "quote": "",
   "where": "",
   "loc": "home"
  }
 },
 "score": {
  "caught": 1,
  "partial": 0,
  "points": 1.0,
  "wrong": 0,
  "reached": 13,
  "points_of_reached": 0.077,
  "pct_of_63": 1.6
 },
 "clean": {
  "false_alarms": [],
  "advisories": [],
  "note": "Clean twin: LocalBusiness + PostalAddress parsed, totalNumErrors 0, totalNumWarnings 0."
 },
 "other_false_claims_lab2": [],
 "evidence_quality": {
  "score": 3,
  "why": "Names the exact error class, gives the character offset, and returns the fetched HTML so the error can be located and reproduced."
 },
 "strengths_not_scored": [
  "Returns the rendered HTML it validated (isRendered: true) with character offsets for every node and error.",
  "Fetches page subresources with a rendering agent, so script-injected JSON-LD would be seen."
 ],
 "notes": "Single-page structured-data validator by design: only D1 is in its scope on the homepage. It does not check Google rich-result eligibility, so D2-D7 would need those pages and Google's policies anyway."
}