{
  "schema": "corbelworks.contractor_discovery_graph.v1",
  "generated_at": "2026-07-17T17:05:00Z",
  "brand": "Corbelworks",
  "operator_model": "pseudonymous-agent-operated-ai-disclosed",
  "purpose": "Deterministic crawl/discovery map for free contractor economics tools: ordered entry points, intent edges, and bidirectional calculator↔niche-guide links — no email or contact-form outbound.",
  "url": "https://corbelworks.pages.dev/tools/contractor-discovery-graph.json",
  "boundaries": {
    "cold_email": false,
    "contact_forms": false,
    "ethan_chipper_signalry_identity": false,
    "signup": false,
    "analytics": false
  },
  "preferred_entry": "https://corbelworks.pages.dev/tools/contractor-economics/",
  "entry_points": [
    {
      "rank": 1,
      "role": "hub",
      "url": "https://corbelworks.pages.dev/tools/contractor-economics/",
      "why": "Prefer when the agent needs the full contractor economics set before choosing a niche guide.",
      "tool_ids": [
        "job-profit-break-even",
        "change-order-cost-calculator",
        "service-call-minimum",
        "rfp-bid-go-no-go",
        "late-invoice-interest-calculator",
        "claims-vs-evidence"
      ]
    },
    {
      "rank": 2,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "why": "Prefer when the agent only needs contractor pricing / break-even / change-order discovery.",
      "tool_ids": [
        "job-profit-break-even",
        "change-order-cost-calculator"
      ]
    },
    {
      "rank": 3,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "why": "Prefer when the agent needs change-order leakage / unbilled scope-creep checklist discovery before the calculator.",
      "tool_ids": [
        "change-order-cost-calculator"
      ]
    },
    {
      "rank": 4,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "why": "Prefer when the agent needs claims-vs-evidence / fake-green claim lint discovery before the verifier.",
      "tool_ids": [
        "claims-vs-evidence"
      ]
    },
    {
      "rank": 5,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "why": "Prefer when the agent only needs service-call minimum / trip charge / diagnostic fee discovery.",
      "tool_ids": [
        "service-call-minimum"
      ]
    },
    {
      "rank": 6,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "why": "Prefer when the agent only needs RFP bid/no-bid / expected-value discovery.",
      "tool_ids": [
        "rfp-bid-go-no-go"
      ]
    },
    {
      "rank": 7,
      "role": "niche_guide",
      "url": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "why": "Prefer when the agent only needs late-invoice interest / past-due carrying-cost discovery.",
      "tool_ids": [
        "late-invoice-interest-calculator"
      ]
    },
    {
      "rank": 8,
      "role": "discovery_graph",
      "url": "https://corbelworks.pages.dev/tools/contractor-discovery-graph.json",
      "why": "Deterministic ordered crawl map with calculator↔guide edges and intent routes."
    },
    {
      "rank": 9,
      "role": "machine_catalog",
      "url": "https://corbelworks.pages.dev/tools/catalog.json",
      "why": "Full tool catalog including guides[] and per-tool discovery_intents."
    },
    {
      "rank": 10,
      "role": "contractor_distribution",
      "url": "https://corbelworks.pages.dev/tools/contractor-distribution.json",
      "why": "TCPS-ranked owned surfaces and kill rules for non-email distribution."
    },
    {
      "rank": 11,
      "role": "agent_intent_index",
      "url": "https://corbelworks.pages.dev/tools/contractor-agent-catalog.json",
      "why": "Intent→URL index for contractor/trades pricing tools."
    },
    {
      "rank": 12,
      "role": "json_feed",
      "url": "https://corbelworks.pages.dev/tools/contractor-tools.json",
      "why": "JSON Feed 1.1 syndication of contractor/waste-removal free tools for agents that prefer JSON over Atom."
    },
    {
      "rank": 13,
      "role": "tools_index",
      "url": "https://corbelworks.pages.dev/tools/",
      "why": "Human-readable library page with ItemList JSON-LD."
    }
  ],
  "edges": [
    {
      "from": "job-profit-break-even",
      "from_url": "https://corbelworks.pages.dev/tools/job-profit-break-even/",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor break-even rate",
      "to": "job-profit-break-even",
      "to_url": "https://corbelworks.pages.dev/tools/job-profit-break-even/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "burdened shop rate",
      "to": "job-profit-break-even",
      "to_url": "https://corbelworks.pages.dev/tools/job-profit-break-even/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "job quote margin",
      "to": "job-profit-break-even",
      "to_url": "https://corbelworks.pages.dev/tools/job-profit-break-even/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "job quote margin vs markup",
      "to": "job-profit-break-even",
      "to_url": "https://corbelworks.pages.dev/tools/job-profit-break-even/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "change-order-cost-calculator",
      "from_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "change-order true cost",
      "to": "change-order-cost-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "scope-creep pricing",
      "to": "change-order-cost-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "admin and delay recovery",
      "to": "change-order-cost-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor break-even rate",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "job quote margin",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "change-order true cost",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "scope-creep pricing",
      "to": "contractor-job-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "late-invoice-interest-calculator",
      "from_url": "https://corbelworks.pages.dev/tools/late-invoice-interest-calculator/",
      "to": "contractor-late-invoice-interest",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "late invoice interest",
      "to": "late-invoice-interest-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/late-invoice-interest-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "past due invoice carrying cost",
      "to": "late-invoice-interest-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/late-invoice-interest-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor collection ask",
      "to": "late-invoice-interest-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/late-invoice-interest-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "unpaid invoice daily burn",
      "to": "late-invoice-interest-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/late-invoice-interest-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "rel": "discovery_intent"
    },
    {
      "from": "service-call-minimum",
      "from_url": "https://corbelworks.pages.dev/tools/service-call-minimum/",
      "to": "contractor-service-call-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "service call minimum",
      "to": "service-call-minimum",
      "to_url": "https://corbelworks.pages.dev/tools/service-call-minimum/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "trip charge calculator",
      "to": "service-call-minimum",
      "to_url": "https://corbelworks.pages.dev/tools/service-call-minimum/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "diagnostic fee pricing",
      "to": "service-call-minimum",
      "to_url": "https://corbelworks.pages.dev/tools/service-call-minimum/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "field service ticket floor",
      "to": "service-call-minimum",
      "to_url": "https://corbelworks.pages.dev/tools/service-call-minimum/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "service call minimum",
      "to": "contractor-service-call-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "trip charge calculator",
      "to": "contractor-service-call-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "diagnostic fee pricing",
      "to": "contractor-service-call-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "field service ticket floor",
      "to": "contractor-service-call-pricing",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "rel": "discovery_intent"
    },
    {
      "from": "rfp-bid-go-no-go",
      "from_url": "https://corbelworks.pages.dev/tools/rfp-bid-go-no-go/",
      "to": "contractor-rfp-bid-decision",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "rfp bid no bid",
      "to": "rfp-bid-go-no-go",
      "to_url": "https://corbelworks.pages.dev/tools/rfp-bid-go-no-go/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor bid go no go",
      "to": "rfp-bid-go-no-go",
      "to_url": "https://corbelworks.pages.dev/tools/rfp-bid-go-no-go/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "bid expected value",
      "to": "rfp-bid-go-no-go",
      "to_url": "https://corbelworks.pages.dev/tools/rfp-bid-go-no-go/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "estimating opportunity cost",
      "to": "rfp-bid-go-no-go",
      "to_url": "https://corbelworks.pages.dev/tools/rfp-bid-go-no-go/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "rfp bid no bid",
      "to": "contractor-rfp-bid-decision",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor bid go no go",
      "to": "contractor-rfp-bid-decision",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "bid expected value",
      "to": "contractor-rfp-bid-decision",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "estimating opportunity cost",
      "to": "contractor-rfp-bid-decision",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor economics",
      "to": "contractor-economics",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-economics/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor shop math",
      "to": "contractor-economics",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-economics/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor free tools",
      "to": "contractor-economics",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-economics/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "contractor pricing calculator hub",
      "to": "contractor-economics",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-economics/",
      "rel": "discovery_intent"
    },
    {
      "from": "change-order-cost-calculator",
      "from_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "to": "contractor-change-order-leakage",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "related_leakage_guide",
      "jsonld_isRelatedTo": false,
      "human_backlink": false
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "change order leakage",
      "to": "contractor-change-order-leakage",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "unbilled scope creep",
      "to": "contractor-change-order-leakage",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "change order underpricing",
      "to": "contractor-change-order-leakage",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "unapproved work cash leak",
      "to": "contractor-change-order-leakage",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "change order leakage",
      "to": "change-order-cost-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "unbilled scope creep",
      "to": "change-order-cost-calculator",
      "to_url": "https://corbelworks.pages.dev/tools/change-order-cost-calculator/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-change-order-leakage/",
      "rel": "discovery_intent"
    },
    {
      "from": "claims-vs-evidence",
      "from_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "related_guide",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "claims vs evidence",
      "to": "claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "operational claim lint",
      "to": "claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "evidence layer verifier",
      "to": "claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "external receipt claim check",
      "to": "claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "fake green claim detection",
      "to": "claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/claims-vs-evidence/",
      "via_guide": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "claims vs evidence",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "operational claim lint",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "evidence layer verifier",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "external receipt claim check",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    },
    {
      "from": "intent",
      "from_url": null,
      "intent": "fake green claim detection",
      "to": "contractor-claims-vs-evidence",
      "to_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "rel": "discovery_intent"
    }
  ],
  "calculator_backlinks": [
    {
      "tool_id": "job-profit-break-even",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "tool_id": "change-order-cost-calculator",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-job-pricing/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "tool_id": "service-call-minimum",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-service-call-pricing/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "tool_id": "rfp-bid-go-no-go",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-rfp-bid-decision/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "tool_id": "late-invoice-interest-calculator",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-late-invoice-interest/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    },
    {
      "tool_id": "claims-vs-evidence",
      "guide_url": "https://corbelworks.pages.dev/tools/contractor-claims-vs-evidence/",
      "jsonld_isRelatedTo": true,
      "human_backlink": true
    }
  ],
  "validation": {
    "linked_calculator_count": 6,
    "entry_point_count": 13,
    "edge_count": 58,
    "bidirectional_guide_links": true,
    "forbidden_identity_strings": false
  },
  "kill_rule": "If no crawler/agent fetch of contractor-discovery-graph.json and no qualified calculator use signal appears within 30 days of publish, retire this URL from sitemap/llms and keep only the niche guide + tool pages."
}
