{
  "catalog_version": 1,
  "name": "Tektolo capabilities",
  "description": "Reliable tools for real-world operations work. Each tool is a tested engine with cited rules; use it from the web, the API, or your AI assistant.",
  "base_url": "https://tektolo.com",
  "links": {
    "home": "https://tektolo.com/",
    "openapi": "https://tektolo.com/openapi.json",
    "docs": "https://tektolo.com/connect",
    "llms_txt": "https://tektolo.com/llms.txt",
    "api_catalog": "https://tektolo.com/.well-known/api-catalog",
    "mcp": "https://tektolo.com/mcp",
    "mcp_server_card": "https://tektolo.com/mcp/server-card",
    "health": "https://tektolo.com/healthz"
  },
  "legal": {
    "terms": "https://tektolo.com/terms",
    "privacy": "https://tektolo.com/privacy",
    "disclaimer": "https://tektolo.com/disclaimer"
  },
  "feedback": {
    "page": "https://tektolo.com/feedback",
    "endpoint": {
      "method": "POST",
      "url": "https://tektolo.com/v1/feedback"
    },
    "note": "For people. No MCP tool on purpose: point the user to the page."
  },
  "capabilities": [
    {
      "id": "property-turnover",
      "name": "Property Turnover Scope",
      "version": "0.3.0",
      "status": "experimental",
      "summary": "Turn move-out inspection findings into a priced, vendor-ready make-ready scope.",
      "outcome": "A vendor-ready turnover scope and owner estimate in minutes, with every number traced to a source or a stated assumption.",
      "audiences": [
        "property managers",
        "landlords",
        "maintenance coordinators",
        "AI agents working for them"
      ],
      "tags": [
        "property-management",
        "turnover",
        "make-ready",
        "maintenance",
        "estimating"
      ],
      "determinism": "strict",
      "coverage": {
        "regions": [
          "US"
        ],
        "as_of_input": false
      },
      "operations": [
        {
          "id": "quick_estimate",
          "title": "Quick turnover estimate (start here)",
          "kind": "deterministic",
          "summary": "The easiest way to estimate a US rental turnover: a ZIP, bedrooms, bathrooms and a list of plain-English issues in, a priced make-ready estimate out (same engine and result as property_turnover_scope, short summary by default).",
          "rest": {
            "method": "POST",
            "url": "https://tektolo.com/v1/property-turnover/quick_estimate"
          },
          "mcp_tool": "property_turnover_quick_estimate",
          "schemas": {
            "input": "https://tektolo.com/v1/capabilities/property-turnover/schemas/quick_estimate/input.json",
            "output": "https://tektolo.com/v1/capabilities/property-turnover/schemas/quick_estimate/output.json"
          },
          "artifacts": {},
          "requires_key": false,
          "pricing": {
            "model": "free_tier",
            "notes": "Free while experimental; rate limited per client."
          },
          "agent": {
            "when_to_use": "Start here when the user describes a move-out or turnover in words (\"carpet stained in both bedrooms, oven filthy\") and wants a cost estimate or what to tell vendors. Use property_turnover_scope instead for rate cards, owner decisions, measured quantities or per-finding control.",
            "when_not_to_use": "Diagnosing hazards (they come back as refer-outs to a licensed professional); legal advice on deposits; remodel bids; properties outside the US.",
            "tips": [
              "If the ZIP is missing or not exactly 5 digits, ask the user; never guess or pad it.",
              "Relay refer_outs first, then the totals; say the numbers are estimates, not quotes."
            ],
            "example": "{\"zip\": \"43215\", \"bedrooms\": 2, \"bathrooms\": 1, \"issues\": [\"stained carpet in both bedrooms\", \"nail holes everywhere\", \"oven is filthy\"]}"
          },
          "examples": []
        },
        {
          "id": "scope",
          "title": "Scope a property turnover",
          "kind": "deterministic",
          "summary": "Turn move-out / turnover inspection findings for a US rental unit into a priced make-ready scope: standardized tasks by trade, regional low/expected/high costs, must/should/could priorities, vendor scopes, refer-outs to licensed professionals, and every assumption stated.",
          "rest": {
            "method": "POST",
            "url": "https://tektolo.com/v1/property-turnover/scope"
          },
          "mcp_tool": "property_turnover_scope",
          "schemas": {
            "input": "https://tektolo.com/v1/capabilities/property-turnover/schemas/scope/input.json",
            "output": "https://tektolo.com/v1/capabilities/property-turnover/schemas/scope/output.json"
          },
          "artifacts": {
            "xlsx": {
              "rest": "https://tektolo.com/v1/property-turnover/scope/render/xlsx",
              "method": "POST",
              "media_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
            },
            "html": {
              "rest": "https://tektolo.com/v1/property-turnover/scope/render/html",
              "method": "POST",
              "media_type": "text/html; charset=utf-8"
            },
            "csv": {
              "rest": "https://tektolo.com/v1/property-turnover/scope/render/csv",
              "method": "POST",
              "media_type": "text/csv; charset=utf-8"
            },
            "vendor_csv": {
              "rest": "https://tektolo.com/v1/property-turnover/scope/render/vendor_csv",
              "method": "POST",
              "media_type": "application/zip"
            }
          },
          "requires_key": false,
          "pricing": {
            "model": "free_tier",
            "notes": "Free while experimental; rate limited per client."
          },
          "agent": {
            "when_to_use": "Turnover findings for a US rental unit when you need control: rooms, measured quantities, the manager's own prices (rate_card) or owner approve/decline decisions. For a plain-English estimate, property_turnover_quick_estimate is easier.",
            "when_not_to_use": "Diagnosing hazards (they come back as refer-outs to a licensed professional); legal advice on deposits; remodel bids; properties outside the US.",
            "tips": [
              "If the ZIP is missing or not exactly 5 digits, ask the user; never guess or pad it.",
              "Describe each finding in plain words (description). Only send a code returned by property_turnover_issue_codes; unmatched findings come back as manual-quote lines with suggested codes.",
              "Give measured quantities when you have them (e.g. 120 sq_ft); otherwise typical sizes are assumed and listed in assumptions.",
              "Send property.floor_coverings when you know whether there is carpet, and unit_type single_family for houses; both change the baseline scope.",
              "Relay the summary, refer_outs, assumptions and unknowns to the user; costs are estimate ranges, not quotes.",
              "Use detail=summary unless the user asks for every line item (summary already lists every line tied to a finding).",
              "Rate card examples - {\"trade\": \"handyman\", \"unit_price\": 65, \"uom\": \"hour\"} or {\"task_id\": \"carpet.clean\", \"unit_price\": 0.2, \"uom\": \"sq_ft\"}; check rate_card_applied and rate_card_ignored before saying a rate was used.",
              "For the Excel workbook or owner estimate, give the user links.web_tool_prefilled (opens the free web tool with these findings) or POST the same arguments to links.downloads; do not build a spreadsheet yourself."
            ],
            "example": "{\"property\": {\"zip\": \"43215\", \"bedrooms\": 2, \"bathrooms\": 1}, \"findings\": [{\"location\": \"Bedroom 2\", \"description\": \"pet urine in carpet\"}, {\"description\": \"3 blinds broken\", \"quantity\": {\"value\": 3, \"uom\": \"each\"}}]}"
          },
          "examples": [
            {
              "path": "examples/one_bed_charlotte_light_turn.json",
              "input": {
                "property": {
                  "zip": "28202",
                  "unit_type": "apartment",
                  "bedrooms": 1,
                  "bathrooms": "1",
                  "sq_ft": 700,
                  "year_built": 2008
                },
                "standards": {
                  "profile": "standard"
                },
                "findings": [
                  {
                    "id": "f1",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom"
                    },
                    "code": "walls.nail_holes",
                    "extent": "partial"
                  },
                  {
                    "id": "f2",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "walls.scuffs",
                    "extent": "spot"
                  },
                  {
                    "id": "f3",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "carpet.soiled",
                    "extent": "partial",
                    "quantity": {
                      "value": 220,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f4",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom"
                    },
                    "code": "carpet.soiled",
                    "extent": "partial",
                    "quantity": {
                      "value": 140,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f5",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "code": "range.dirty"
                  },
                  {
                    "id": "f6",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "code": "refrigerator.dirty"
                  },
                  {
                    "id": "f7",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "blinds.bent_missing",
                    "quantity": {
                      "value": 1,
                      "uom": "each"
                    }
                  }
                ],
                "client_refs": {
                  "unit_id": "example-1bed-charlotte"
                }
              }
            },
            {
              "path": "examples/three_bed_phoenix_pet_damage.json",
              "input": {
                "property": {
                  "zip": "85032",
                  "unit_type": "single_family",
                  "bedrooms": 3,
                  "bathrooms": "2",
                  "sq_ft": 1600,
                  "year_built": 1998
                },
                "standards": {
                  "profile": "standard"
                },
                "findings": [
                  {
                    "id": "f1",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 2"
                    },
                    "code": "carpet.pet_urine",
                    "extent": "partial",
                    "quantity": {
                      "value": 150,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f2",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 3"
                    },
                    "code": "carpet.pet_urine",
                    "extent": "partial",
                    "quantity": {
                      "value": 140,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f3",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "carpet.pet_urine",
                    "extent": "partial",
                    "quantity": {
                      "value": 280,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f4",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "trim.baseboard_damaged",
                    "extent": "partial",
                    "quantity": {
                      "value": 45,
                      "uom": "linear_ft"
                    }
                  },
                  {
                    "id": "f5",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 2"
                    },
                    "code": "door.interior_hole",
                    "extent": "partial"
                  },
                  {
                    "id": "f6",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "walls.paint_aged",
                    "extent": "full"
                  },
                  {
                    "id": "f7",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "clean.heavy_soil",
                    "extent": "partial",
                    "quantity": {
                      "value": 6,
                      "uom": "hour"
                    }
                  },
                  {
                    "id": "f8",
                    "location": {
                      "area": "yard",
                      "label": "Back yard"
                    },
                    "code": "yard.debris"
                  },
                  {
                    "id": "f9",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "trash.heavy",
                    "extent": "partial",
                    "quantity": {
                      "value": 8,
                      "uom": "cu_yd"
                    }
                  },
                  {
                    "id": "f10",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 3"
                    },
                    "code": "window.screen_torn",
                    "quantity": {
                      "value": 3,
                      "uom": "each"
                    }
                  },
                  {
                    "id": "f11",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "blinds.bent_missing",
                    "extent": "partial"
                  },
                  {
                    "id": "f12",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "code": "range.dirty"
                  },
                  {
                    "id": "f13",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "code": "refrigerator.dirty"
                  },
                  {
                    "id": "f14",
                    "location": {
                      "area": "bathroom",
                      "label": "Hall bath"
                    },
                    "code": "tile.grout_dirty"
                  },
                  {
                    "id": "f15",
                    "location": {
                      "area": "entry",
                      "label": "Entry"
                    },
                    "code": "key.missing"
                  },
                  {
                    "id": "f16",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 2"
                    },
                    "code": "walls.holes_many",
                    "extent": "partial"
                  },
                  {
                    "id": "f17",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "code": "odor.general",
                    "extent": "partial",
                    "notes": "Strong pet odor throughout"
                  }
                ],
                "client_refs": {
                  "unit_id": "example-3bed-phoenix-pets"
                }
              }
            },
            {
              "path": "examples/two_bed_cleveland_pre1978.json",
              "input": {
                "property": {
                  "zip": "44113",
                  "unit_type": "apartment",
                  "bedrooms": 2,
                  "bathrooms": "1",
                  "sq_ft": 880,
                  "year_built": 1962
                },
                "standards": {
                  "profile": "standard"
                },
                "findings": [
                  {
                    "id": "f1",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 2"
                    },
                    "code": "walls.large_hole"
                  },
                  {
                    "id": "f2",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "walls.paint_peeling",
                    "extent": "partial"
                  },
                  {
                    "id": "f3",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 1"
                    },
                    "code": "walls.nail_holes",
                    "extent": "partial"
                  },
                  {
                    "id": "f4",
                    "location": {
                      "area": "bathroom",
                      "label": "Bathroom"
                    },
                    "code": "tub.caulk_failed"
                  },
                  {
                    "id": "f5",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "code": "range.dirty"
                  },
                  {
                    "id": "f6",
                    "location": {
                      "area": "living_room",
                      "label": "Living room"
                    },
                    "code": "carpet.soiled",
                    "extent": "partial",
                    "quantity": {
                      "value": 240,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f7",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 1"
                    },
                    "code": "carpet.soiled",
                    "extent": "partial",
                    "quantity": {
                      "value": 130,
                      "uom": "sq_ft"
                    }
                  },
                  {
                    "id": "f8",
                    "location": {
                      "area": "bedroom",
                      "label": "Bedroom 2"
                    },
                    "code": "carpet.soiled",
                    "extent": "partial",
                    "quantity": {
                      "value": 120,
                      "uom": "sq_ft"
                    }
                  }
                ],
                "client_refs": {
                  "unit_id": "example-2bed-cleveland-1962"
                }
              }
            },
            {
              "path": "examples/studio_descriptions_only_no_metro.json",
              "input": {
                "property": {
                  "zip": "83843",
                  "unit_type": "apartment",
                  "bedrooms": 0,
                  "bathrooms": "1",
                  "year_built": 1985
                },
                "standards": {
                  "profile": "standard"
                },
                "findings": [
                  {
                    "id": "f1",
                    "location": {
                      "area": "living_room",
                      "label": "Main room"
                    },
                    "description": "carpet is dirty with a few stains near the window"
                  },
                  {
                    "id": "f2",
                    "location": {
                      "area": "living_room",
                      "label": "Main room"
                    },
                    "description": "a few nail holes in the walls from pictures"
                  },
                  {
                    "id": "f3",
                    "location": {
                      "area": "bathroom",
                      "label": "Bathroom"
                    },
                    "description": "bathroom fan is loud and barely works"
                  },
                  {
                    "id": "f4",
                    "location": {
                      "area": "whole_unit",
                      "label": "Whole unit"
                    },
                    "description": "smoke detector is chirping"
                  },
                  {
                    "id": "f5",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "description": "fridge smells and needs cleaning"
                  },
                  {
                    "id": "f6",
                    "location": {
                      "area": "kitchen",
                      "label": "Kitchen"
                    },
                    "description": "dishwasher not draining"
                  },
                  {
                    "id": "f7",
                    "location": {
                      "area": "living_room",
                      "label": "Main room"
                    },
                    "description": "tenant left a sticky residue along the window sills"
                  }
                ]
              }
            }
          ]
        },
        {
          "id": "issue_codes",
          "title": "Look up turnover issue codes",
          "kind": "deterministic",
          "summary": "Search the standard taxonomy of rental-unit turnover issues (component.issue codes) by keyword or area.",
          "rest": {
            "method": "POST",
            "url": "https://tektolo.com/v1/property-turnover/issue_codes"
          },
          "mcp_tool": "property_turnover_issue_codes",
          "schemas": {
            "input": "https://tektolo.com/v1/capabilities/property-turnover/schemas/issue_codes/input.json",
            "output": "https://tektolo.com/v1/capabilities/property-turnover/schemas/issue_codes/output.json"
          },
          "artifacts": {},
          "requires_key": false,
          "pricing": {
            "model": "free"
          },
          "agent": {
            "when_to_use": "Only while preparing findings for a turnover cost estimate, to find the standard issue code for something observed (e.g. \"pet stain on carpet\"). Never needed to answer a question; call with no arguments to list the taxonomy areas and the first codes.",
            "when_not_to_use": "Legal or security-deposit questions; anything outside rental turnover and make-ready work. Not needed before quick_estimate or scope: a plain description works there.",
            "tips": [
              "Call with no arguments to list the taxonomy areas (in `areas`) and the first codes.",
              "Codes are optional for scoping; a plain description also works."
            ],
            "example": "{} lists the areas and the first codes; {\"query\": \"pet stain carpet\"} searches; {\"area\": \"flooring\", \"limit\": 50} lists one area."
          },
          "examples": []
        }
      ],
      "privacy": {
        "retention_days": 730,
        "trains_models": false,
        "personal_data": "Inputs need a ZIP code, not an address. Request bodies and free-text notes are never logged or stored. Each estimate leaves one anonymized record: first 3 digits of the ZIP, size and age in coarse buckets, issue codes, totals and a daily-rotating anonymous client fingerprint; no notes, labels, names, vendors, rate-card prices, IP address or user agent. Descriptions of issues the taxonomy could not match are kept with digits, emails and links removed. These records are deleted 730 days after they are written and are not used to train models. Optional feedback (a rating, a note, an email only if typed) is stored separately, with a few estimate identifiers (hashes, versions, region, total) but never the request or notes."
      },
      "limitations": [
        "Estimate ranges, not quotes. Prices vary by vendor, market and condition.",
        "Does not diagnose structural, electrical, gas, mold, asbestos or lead hazards; those are referred to licensed professionals.",
        "Responsibility labels (wear vs damage) are hints, not legal determinations; deposit rules vary by state."
      ],
      "ruleset": {
        "version": "pt-2026.10.2",
        "hash": "sha256:44f837d84a49ffc28782a6c7b0a3c4156013a4699f13f6322fec3ece055eae83",
        "sources": [
          {
            "id": "hud.nspire.index",
            "title": "NSPIRE Standards index (per-standard PDFs, changelogs)",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/reac/nspire-standards"
          },
          {
            "id": "hud.nspire.terms",
            "title": "NSPIRE Terms and Definitions",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/reac/nspire-terms"
          },
          {
            "id": "hud.nspire.standards",
            "title": "NSPIRE individual standards v3.0 (2023-06-20 and 2023-08-11)",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/reac/nspire-standards"
          },
          {
            "id": "hud.nspire.final-rule",
            "title": "NSPIRE final rule, 88 FR 30442 (2023-05-11)",
            "publisher": "HUD / Federal Register",
            "url": "https://www.federalregister.gov/documents/2023/05/11/2023-09693/economic-growth-regulatory-relief-and-consumer-protection-act-implementation-of-national-standards"
          },
          {
            "id": "hud.nspire.scoring",
            "title": "NSPIRE scoring notice (FR 2023-13293) and NLIHC summary",
            "publisher": "HUD / NLIHC",
            "url": "https://www.govinfo.gov/content/pkg/FR-2023-06-22/html/2023-13293.htm"
          },
          {
            "id": "hud.pih-2026-18",
            "title": "Notice PIH 2026-18, NSPIRE administrative procedures for voucher programs (2026-07-15)",
            "publisher": "HUD PIH",
            "url": "https://www.hud.gov/sites/default/files/PIH/documents/PIH-2026-18.pdf"
          },
          {
            "id": "hud.nspire.hcv-extension",
            "title": "NSPIRE compliance date extension for HCV/PBV/Mod Rehab to 2027-02-01 (FR 2025-19070)",
            "publisher": "HUD / Federal Register",
            "url": "https://www.govinfo.gov/content/pkg/FR-2025-09-30/html/2025-19070.htm"
          },
          {
            "id": "cfr.24-982-404",
            "title": "24 CFR 982.404 Maintenance: owner and family responsibility",
            "publisher": "eCFR via Cornell LII",
            "url": "https://www.law.cornell.edu/cfr/text/24/982.404"
          },
          {
            "id": "rihousing.wear-and-tear",
            "title": "HCV Landlord Responsibility: Expected Wear and Tear flyer (2026)",
            "publisher": "Rhode Island Housing",
            "url": "https://www.rihousing.com/wp-content/uploads/2026/07/HCVP-Lanlodrd-Tenant-Wear-and-Tear-Flyer.pdf"
          },
          {
            "id": "bls.oews.tables",
            "title": "OEWS Data Tables / download page",
            "publisher": "BLS",
            "url": "https://www.bls.gov/oes/tables.htm"
          },
          {
            "id": "bls.oews.2025",
            "title": "Occupational Employment and Wages, May 2025 (released 2026-05-15)",
            "publisher": "BLS",
            "url": "https://www.bls.gov/news.release/ocwage.htm"
          },
          {
            "id": "bls.oews.methodology",
            "title": "OEWS FAQ and methodology",
            "publisher": "BLS",
            "url": "https://www.bls.gov/oes/oes_ques.htm"
          },
          {
            "id": "bls.api.oews",
            "title": "BLS Public Data API (OEWS series)",
            "publisher": "BLS",
            "url": "https://api.bls.gov/publicAPI/v1/timeseries/data/"
          },
          {
            "id": "bls.oews.msa-changes-2024",
            "title": "OEWS notice: new metropolitan area definitions (OMB Bulletin 23-01) from May 2024",
            "publisher": "BLS",
            "url": "https://www.bls.gov/oes/notices/2024/msa-changes.htm"
          },
          {
            "id": "bls.ecec.2026-06",
            "title": "Employer Costs for Employee Compensation, June 2026 (released 2026-09-09)",
            "publisher": "BLS",
            "url": "https://www.bls.gov/news.release/ecec.nr0.htm"
          },
          {
            "id": "epi.ecec-ratios",
            "title": "EPI note on ECEC compensation-to-pay ratios",
            "publisher": "Economic Policy Institute",
            "url": "https://www.epi.org/chart/2024-worker-misclassification-table-4-procedure-for-creating-ecec-compensation-to-pay-ratios-for-all-occupations-and-states/"
          },
          {
            "id": "hud.usps-crosswalk",
            "title": "HUD-USPS ZIP Code Crosswalk Files",
            "publisher": "HUD PD&R",
            "url": "https://www.huduser.gov/portal/datasets/usps_crosswalk.html"
          },
          {
            "id": "census.rel2020.zcta-county",
            "title": "Census 2020 ZCTA-to-county relationship file",
            "publisher": "U.S. Census Bureau",
            "url": "https://www2.census.gov/geo/docs/maps-data/data/rel2020/zcta520/tab20_zcta520_county20_natl.txt"
          },
          {
            "id": "census.cbsa-delineation-2023",
            "title": "OMB Bulletin 23-01 CBSA delineation (list1_2023.xlsx)",
            "publisher": "OMB / U.S. Census Bureau",
            "url": "https://www2.census.gov/programs-surveys/metro-micro/geographies/reference-files/2023/delineation-files/list1_2023.xlsx"
          },
          {
            "id": "bea.rpp",
            "title": "Regional Price Parities by State and Metro Area",
            "publisher": "BEA",
            "url": "https://www.bea.gov/data/prices-inflation/regional-price-parities-state-and-metro-area"
          },
          {
            "id": "dod.ufs-3-701-01",
            "title": "UFS 3-701-01 DoD Facilities Pricing Guide (6 June 2026)",
            "publisher": "DoD / WBDG",
            "url": "https://legacy.wbdg.org/FFC/DOD/UFC/ufs_3_701_01_06_2026.pdf"
          },
          {
            "id": "levelset.contractor-profit",
            "title": "Contractor profit and overhead references ('10 and 10')",
            "publisher": "Levelset",
            "url": "https://www.levelset.com/blog/contractor-profit/"
          },
          {
            "id": "nahb.life-expectancy-2007",
            "title": "Study of Life Expectancy of Home Components (2007)",
            "publisher": "NAHB Economics Group",
            "url": "https://standards.nsf.org/higherlogic/ws/public/download/348/NAHB%202007%20StudyUseful%20Life%20of%20Home%20Components.pdf"
          },
          {
            "id": "fanniemae.eul-appendix-f",
            "title": "Appendix F Estimated Useful Life Tables, Form 4099.F (Aug 2019)",
            "publisher": "Fannie Mae Multifamily",
            "url": "https://multifamily.fanniemae.com/media/document/pdf/appendix-f-estimated-useful-life-tables"
          },
          {
            "id": "irs.pub-946",
            "title": "IRS Publication 946 (2025) How to Depreciate Property",
            "publisher": "IRS",
            "url": "https://www.irs.gov/publications/p946"
          },
          {
            "id": "stimmel.ca-deposits",
            "title": "Security Deposit Refunds, Residential Leases, California: Basic Law",
            "publisher": "Stimmel Law",
            "url": "https://stimmel-law.com/articles/security-deposit-refunds-residential-leases-calfornia-basic-law/"
          },
          {
            "id": "baylegal.wear-and-tear",
            "title": "What is Normal Wear and Tear? A California Landlord's Guide",
            "publisher": "Bay Legal PC",
            "url": "https://baylegal.com/what-is-normal-wear-and-tear-a-california-landlords-guide/"
          },
          {
            "id": "ca.civ-1950-5",
            "title": "California Civil Code 1950.5",
            "publisher": "California Legislature",
            "url": "https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=CIV&sectionNum=1950.5"
          },
          {
            "id": "tx.prop-92-103",
            "title": "Texas Property Code 92.103",
            "publisher": "Texas Legislature",
            "url": "https://statutes.capitol.texas.gov/Docs/PR/htm/PR.92.htm"
          },
          {
            "id": "fl.stat-83-49",
            "title": "Florida Statutes 83.49",
            "publisher": "Florida Legislature",
            "url": "https://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0000-0099/0083/Sections/0083.49.html"
          },
          {
            "id": "ny.gol-7-108",
            "title": "New York General Obligations Law 7-108(e)",
            "publisher": "NY Senate",
            "url": "https://www.nysenate.gov/legislation/laws/GOB/7-108"
          },
          {
            "id": "nc.gs-42-52",
            "title": "North Carolina G.S. 42-52",
            "publisher": "NC General Assembly",
            "url": "https://www.ncleg.gov/EnactedLegislation/Statutes/HTML/BySection/Chapter_42/GS_42-52.html"
          },
          {
            "id": "ga.ocga-44-7-34",
            "title": "Georgia O.C.G.A. 44-7-34",
            "publisher": "Georgia General Assembly",
            "url": "https://codes.findlaw.com/ga/title-44-property/ga-code-sect-44-7-34/"
          },
          {
            "id": "az.ars-33-1321",
            "title": "Arizona A.R.S. 33-1321",
            "publisher": "Arizona Legislature",
            "url": "https://www.azleg.gov/ars/33/01321.htm"
          },
          {
            "id": "wa.rcw-59-18-280",
            "title": "Washington RCW 59.18.280",
            "publisher": "Washington Legislature",
            "url": "https://app.leg.wa.gov/rcw/default.aspx?cite=59.18.280"
          },
          {
            "id": "naa.apartment-turnover-2025",
            "title": "Apartment Turnover guidance (2025-03-06)",
            "publisher": "National Apartment Association",
            "url": "https://naahq.org/sites/default/files/2025-03/01a.%20Apartment%20Turnover%202025.pdf"
          },
          {
            "id": "naa.turnover-costs-2016",
            "title": "Crunching the Numbers on Turnover Costs (2016-10-24)",
            "publisher": "National Apartment Association",
            "url": "https://naahq.org/news/crunching-numbers-turnover-costs"
          },
          {
            "id": "treaty-oak.make-ready-sop",
            "title": "Move-Out Make Ready: Repairs, Paint, Flooring & Rekeying Work Orders",
            "publisher": "Treaty Oak Property Management",
            "url": "https://treaty-oak-property-management-llc.helpscoutdocs.com/article/105-move-out-make-ready-rekeying-work-orders"
          },
          {
            "id": "raleigh-ha.rfp-vacant-unit-turns",
            "title": "RFP Vacant Unit Turns (2025-11)",
            "publisher": "Raleigh Housing Authority",
            "url": "https://rhanc.gov/wp-content/uploads/2025/11/RFP-Vacant-Unit-Turns.pdf"
          },
          {
            "id": "hakc.rfp-24-0318",
            "title": "RFP 24-0318 Make Ready/Vacant Unit Turnover",
            "publisher": "Housing Authority of Kansas City, MO",
            "url": "https://www.hakc.org/utility/openPDF/kchamo/HAKC_RFP_24-0318_Make_Ready_Vacant_Unit_Turnover.pdf?alt=media"
          },
          {
            "id": "wilmington-ha.rfp-vut-2026",
            "title": "Re-Bid RFP Vacant Unit Turn Services (2026-03-16)",
            "publisher": "Wilmington Housing Authority",
            "url": "https://wha.net/wp-content/uploads/2026/03/Re-Bid-RFP-for-Vacant-Unit-Turn-Services-VUT-Authority-Wide-3-16-26.pdf"
          },
          {
            "id": "rentready.turn-economics-2026",
            "title": "2026 Multifamily Turn Economics Report",
            "publisher": "Rent Ready",
            "url": "https://www.rentready.com/resources/turn-economics-report"
          },
          {
            "id": "lula.make-ready-cost",
            "title": "How Much Does a Make-Ready Cost? 2026 Benchmarks",
            "publisher": "Lula",
            "url": "https://lula.life/articles/make-ready-cost"
          },
          {
            "id": "dropcurb.make-ready-checklist",
            "title": "Apartment Make Ready Checklist: Unit Turn Guide 2026",
            "publisher": "Dropcurb",
            "url": "https://dropcurb.com/blog/apartment-make-ready-checklist"
          },
          {
            "id": "turnoverla.make-ready-cost",
            "title": "What is apartment make ready for rent, and what does it cost? (Los Angeles price list)",
            "publisher": "TurnOver LA",
            "url": "https://www.turnoverla.com/blog/apartment-make-ready-for-rent"
          },
          {
            "id": "multifamilyinsiders.turn-cost-thread",
            "title": "What will be the cost to turn a unit on average? (practitioner thread)",
            "publisher": "Multifamily Insiders",
            "url": "https://www.multifamilyinsiders.com/apartment-ideas/apartment-maintenance/17314-what-will-be-the-cost-to-turn-a-unit-punch-painting-cleaning-and-carpet-cleaning-on-average"
          },
          {
            "id": "cleaning4profit.turnover-pricing",
            "title": "How much should you charge for apartment turnovers? (2016)",
            "publisher": "Cleaning-4-Profit",
            "url": "https://www.cleaning-4-profit.com/2016/06/19/how-much-should-you-charge-for-apartment-turnovers/"
          },
          {
            "id": "advancedpainting.turnover-painting",
            "title": "Apartment Turnover Painting Cost Guide for Property Managers",
            "publisher": "Advanced Painting and Drywall",
            "url": "https://advancedpaintinganddrywall.com/apartment-turnover-painting-cost-property-managers/"
          },
          {
            "id": "painttechs.turnover-painting",
            "title": "Rental Property Turnover Painting: A Landlord's Guide (2026)",
            "publisher": "Paint Techs",
            "url": "https://www.paint-techs.com/blog/rental-property-turnover-painting"
          },
          {
            "id": "estimaterocket.production-rates",
            "title": "How to Create Profitable Estimates, Part 2: Calculating your Rates",
            "publisher": "EstimateRocket",
            "url": "https://www.estimaterocket.com/blog/how-to-create-profitable-estimates-part-2/"
          },
          {
            "id": "paintscout.production-rate",
            "title": "Introduction to Production Rate Estimation",
            "publisher": "PaintScout",
            "url": "https://help.paintscout.com/en/articles/8137528-introduction-to-production-rate-estimation"
          },
          {
            "id": "zinspector.appfolio",
            "title": "zInspector / AppFolio integration",
            "publisher": "zInspector",
            "url": "https://support.zinspector.com/?p=5090"
          },
          {
            "id": "happyco.inspections",
            "title": "HappyCo Inspections support",
            "publisher": "HappyCo",
            "url": "https://support.happy.co/hc/en-us/sections/12611984112916-Inspections"
          },
          {
            "id": "appfolio.unit-turns",
            "title": "Streamline unit turns (AppFolio Unit Turn Board)",
            "publisher": "AppFolio",
            "url": "https://www.appfolio.com/blog/streamline-unit-turns"
          },
          {
            "id": "propexo.buildium-service-request",
            "title": "Create a service request for Buildium (Propexo)",
            "publisher": "Propexo",
            "url": "https://docs.propexo.com/api-reference/buildium/service-requests/create-a-service-request-for-buildium"
          },
          {
            "id": "greenresidential.vendor-portal",
            "title": "Vendor Portal Guide (AppFolio vendor work orders)",
            "publisher": "Green Residential",
            "url": "https://support.greenresidential.com/hc/en-us/articles/17680858367639-Vendor-Portal-Guide"
          },
          {
            "id": "epa.mold-guide",
            "title": "A Brief Guide to Mold, Moisture and Your Home",
            "publisher": "U.S. EPA",
            "url": "https://www.epa.gov/mold/brief-guide-mold-moisture-and-your-home"
          },
          {
            "id": "cfr.40-745-rrp",
            "title": "40 CFR 745.82, 745.83, 745.85, 745.103 (EPA Renovation, Repair and Painting rule)",
            "publisher": "eCFR via Cornell LII",
            "url": "https://www.law.cornell.edu/cfr/text/40/745.83"
          },
          {
            "id": "epa.rrp-program",
            "title": "Renovation, Repair and Painting Program",
            "publisher": "U.S. EPA",
            "url": "https://www.epa.gov/lead/renovation-repair-and-painting-program"
          },
          {
            "id": "epa.asbestos-protect-family",
            "title": "Protect Your Family From Exposures to Asbestos",
            "publisher": "U.S. EPA",
            "url": "https://www.epa.gov/asbestos/protect-your-family-exposures-asbestos"
          },
          {
            "id": "epa.asbestos-learn",
            "title": "Learn About Asbestos",
            "publisher": "U.S. EPA",
            "url": "https://www.epa.gov/asbestos/learn-about-asbestos"
          },
          {
            "id": "epa-hud.lead-disclosure",
            "title": "Lead-based paint disclosure rule for pre-1978 housing (40 CFR Part 745 Subpart F)",
            "publisher": "EPA / HUD",
            "url": "https://www.epa.gov/sites/default/files/documents/lesr_eng.pdf"
          },
          {
            "id": "nfpa72.smoke-alarm-replacement",
            "title": "NFPA 72 smoke-alarm replacement and placement (secondary report)",
            "publisher": "Security Sales & Integration",
            "url": "https://www.securitysales.com/news/learning-the-nfpa-code-for-replacing-smoke-alarms/46193/"
          },
          {
            "id": "boulder.egress-b10",
            "title": "B10 Emergency Escape and Rescue Openings (IRC R310)",
            "publisher": "Boulder County Building Dept.",
            "url": "https://bouldercounty.gov/property-and-land/land-use/building/building-publications/b10-emergency-escape-and-rescue-openings/"
          },
          {
            "id": "centerpoint.gas-smell",
            "title": "What Should You Do If You Smell Natural Gas?",
            "publisher": "CenterPoint Energy",
            "url": "https://actioncenter.centerpointenergy.com/en-us/resources/what-should-you-do-if-you-smell-natural-gas"
          },
          {
            "id": "zinspector.condition-values",
            "title": "Condition Values: The N, S, D, & ! of Property Inspection",
            "publisher": "zInspector",
            "url": "https://support.zinspector.com/article/property-management-pm-inspection/"
          },
          {
            "id": "paperform.move-out-form",
            "title": "Rental Property Move-Out Inspection Form with Security Deposit Calculator",
            "publisher": "Paperform",
            "url": "https://paperform.co/templates/rental-property-move-out-inspection-checklist"
          },
          {
            "id": "propexo.service-request-models",
            "title": "Propexo service-request models for Buildium, AppFolio and generic PMS",
            "publisher": "Propexo",
            "url": "https://docs.propexo.com/api-reference/pms-generic-ap-is/service-requests/create-service-request.md"
          },
          {
            "id": "homeguide.interior-painting",
            "title": "Interior painting cost (2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-paint-interior-of-house"
          },
          {
            "id": "homeguide.ceiling-painting",
            "title": "Paint a ceiling",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-paint-a-ceiling"
          },
          {
            "id": "homeguide.door-painting",
            "title": "Paint a door",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-paint-a-door"
          },
          {
            "id": "homeguide.trim-painting",
            "title": "Paint trim and baseboards",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-paint-trim-baseboards"
          },
          {
            "id": "homeguide.cabinet-painting",
            "title": "Paint kitchen cabinets",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-paint-kitchen-cabinets"
          },
          {
            "id": "homeguide.drywall-repair",
            "title": "Drywall repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/drywall-repair-cost"
          },
          {
            "id": "homeguide.wallpaper-removal",
            "title": "Wallpaper removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/wallpaper-removal-cost"
          },
          {
            "id": "homeguide.popcorn-ceiling-removal",
            "title": "Popcorn ceiling removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/popcorn-ceiling-removal-cost"
          },
          {
            "id": "homeguide.ceiling-repair",
            "title": "Ceiling repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/ceiling-repair-cost"
          },
          {
            "id": "homeguide.carpet-cleaning",
            "title": "Carpet cleaning (2026 prices)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-cleaning-prices"
          },
          {
            "id": "homeguide.carpet-installation",
            "title": "Carpet installation (2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-installation-cost"
          },
          {
            "id": "homeguide.carpet-removal",
            "title": "Carpet removal (2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-removal-cost"
          },
          {
            "id": "homeguide.carpet-padding",
            "title": "Carpet padding (2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-padding-prices"
          },
          {
            "id": "homeguide.carpet-repair",
            "title": "Carpet repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-repair-cost"
          },
          {
            "id": "homeguide.carpet-stretching",
            "title": "Carpet stretching",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-stretching-cost"
          },
          {
            "id": "homeguide.carpet-prices",
            "title": "Carpet prices per square foot",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/carpet-prices-per-square-foot"
          },
          {
            "id": "homeguide.carpet-cleaner-rental",
            "title": "Rent a carpet cleaner",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-rent-a-carpet-cleaner"
          },
          {
            "id": "homeguide.vinyl-flooring",
            "title": "Vinyl flooring installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/vinyl-flooring-installation-cost"
          },
          {
            "id": "homeguide.lvp",
            "title": "Luxury vinyl plank/tile flooring",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/luxury-vinyl-flooring-cost"
          },
          {
            "id": "homeguide.laminate",
            "title": "Laminate flooring installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-install-laminate-flooring"
          },
          {
            "id": "homeguide.hardwood-refinish",
            "title": "Refinish hardwood floors",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-refinish-hardwood-floors"
          },
          {
            "id": "homeguide.hardwood-repair",
            "title": "Hardwood floor repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/hardwood-floor-repair-cost"
          },
          {
            "id": "homeguide.tile-grout-cleaning",
            "title": "Tile and grout cleaning",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/tile-and-grout-cleaning-cost"
          },
          {
            "id": "homeguide.regrout",
            "title": "Regrout shower or bathroom",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-regrout-a-shower-or-bathroom"
          },
          {
            "id": "homeguide.move-out-cleaning",
            "title": "Move-out cleaning",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/move-out-cleaning-cost"
          },
          {
            "id": "homeguide.house-cleaning",
            "title": "House cleaning prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/house-cleaning-prices"
          },
          {
            "id": "homeguide.apartment-cleaning",
            "title": "Apartment cleaning prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/apartment-cleaning-prices"
          },
          {
            "id": "homeguide.deep-cleaning",
            "title": "Deep cleaning a house",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/deep-cleaning-house-cost"
          },
          {
            "id": "homeguide.window-cleaning",
            "title": "Window cleaning prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/window-cleaning-prices"
          },
          {
            "id": "homeguide.pressure-washing",
            "title": "Pressure washing prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/pressure-washing-prices"
          },
          {
            "id": "homeguide.dryer-vent-cleaning",
            "title": "Dryer vent cleaning",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/dryer-vent-cleaning-cost"
          },
          {
            "id": "homeguide.junk-removal",
            "title": "Junk removal prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/junk-removal-prices"
          },
          {
            "id": "homeguide.dumpster-rental",
            "title": "Dumpster rental prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/dumpster-rental-prices"
          },
          {
            "id": "homeguide.debris-removal",
            "title": "Construction debris removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/construction-debris-removal-cost"
          },
          {
            "id": "homeguide.mattress-removal",
            "title": "Mattress removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/mattress-removal-cost"
          },
          {
            "id": "homeguide.change-locks",
            "title": "Cost to change locks (rekey/replace)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-change-locks"
          },
          {
            "id": "homeguide.locksmith",
            "title": "Locksmith cost",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/locksmith-cost"
          },
          {
            "id": "homeguide.door-knob",
            "title": "Door knob replacement",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/door-knob-replacement-cost"
          },
          {
            "id": "homeguide.door-repair",
            "title": "Door repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/door-repair-cost"
          },
          {
            "id": "homeguide.interior-door",
            "title": "Interior door installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/interior-door-installation-cost"
          },
          {
            "id": "homeguide.closet-door",
            "title": "Closet door installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/closet-door-installation-cost"
          },
          {
            "id": "homeguide.window-screen",
            "title": "Window screen replacement",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/window-screen-replacement-cost"
          },
          {
            "id": "homeguide.window-repair",
            "title": "Window repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/window-repair-cost"
          },
          {
            "id": "homeguide.blinds",
            "title": "Blinds installation cost",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/blinds-cost-to-install"
          },
          {
            "id": "homeguide.window-treatments",
            "title": "Window treatments",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/window-treatment-cost"
          },
          {
            "id": "homeguide.bathtub-repair",
            "title": "Bathtub repair (incl. caulking)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/bathtub-repair-cost"
          },
          {
            "id": "homeguide.bathtub-refinishing",
            "title": "Bathtub refinishing",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/bathtub-refinishing-cost"
          },
          {
            "id": "homeguide.toilet-install",
            "title": "Toilet installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/toilet-installation-cost"
          },
          {
            "id": "homeguide.toilet-repair",
            "title": "Toilet repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/toilet-repair-cost"
          },
          {
            "id": "homeguide.bathroom-faucet",
            "title": "Bathroom faucet installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-install-bathroom-faucet"
          },
          {
            "id": "homeguide.disposal-install",
            "title": "Garbage disposal installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/garbage-disposal-installation-cost"
          },
          {
            "id": "homeguide.disposal-repair",
            "title": "Garbage disposal repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/garbage-disposal-repair-cost"
          },
          {
            "id": "homeguide.cabinet-repair",
            "title": "Cabinet repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cabinet-repair-cost"
          },
          {
            "id": "homeguide.cabinet-doors",
            "title": "Replace cabinet doors",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-replace-cabinet-doors"
          },
          {
            "id": "homeguide.cabinet-hardware",
            "title": "Install cabinet hardware",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-install-cabinet-hardware"
          },
          {
            "id": "homeguide.laminate-countertops",
            "title": "Laminate countertops",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/laminate-countertops-cost"
          },
          {
            "id": "homeguide.bathroom-countertop",
            "title": "Replace bathroom countertop",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-replace-a-bathroom-countertop"
          },
          {
            "id": "homeguide.appliance-installation",
            "title": "Appliance installation costs",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/appliance-installation-costs"
          },
          {
            "id": "homeguide.dishwasher",
            "title": "Dishwasher installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/dishwasher-installation-cost"
          },
          {
            "id": "homeguide.range",
            "title": "Oven or stove cost",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/oven-or-stove-cost"
          },
          {
            "id": "homeguide.refrigerator",
            "title": "Refrigerator cost",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/refrigerator-cost"
          },
          {
            "id": "homeguide.appliance-repair",
            "title": "Appliance repair costs",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/appliance-repair-costs"
          },
          {
            "id": "homeguide.water-heater",
            "title": "Water heater installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/water-heater-installation-cost"
          },
          {
            "id": "homeguide.outlet",
            "title": "Install electrical outlet",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-install-electrical-outlet"
          },
          {
            "id": "homeguide.gfci",
            "title": "GFCI outlet",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/gfci-outlet-cost"
          },
          {
            "id": "homeguide.light-switch",
            "title": "Install or replace a light switch",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-install-or-replace-a-light-switch"
          },
          {
            "id": "homeguide.light-fixture",
            "title": "Replace or repair a light fixture",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cost-to-replace-or-repair-a-light-fixture"
          },
          {
            "id": "homeguide.ceiling-fan",
            "title": "Ceiling fan installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/ceiling-fan-installation-cost"
          },
          {
            "id": "homeguide.smoke-detector",
            "title": "Smoke detector installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/smoke-detector-installation-cost"
          },
          {
            "id": "homeguide.hvac-repair",
            "title": "HVAC repair",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/hvac-repair-cost"
          },
          {
            "id": "homeguide.pest-control",
            "title": "Pest control prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/pest-control-prices"
          },
          {
            "id": "homeguide.cockroach",
            "title": "Cockroach exterminator",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/cockroach-exterminator-cost"
          },
          {
            "id": "homeguide.bed-bug",
            "title": "Bed bug exterminator",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/bed-bug-exterminator-cost"
          },
          {
            "id": "homeguide.mice",
            "title": "Mice exterminator",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/mice-exterminator-cost"
          },
          {
            "id": "homeguide.handyman",
            "title": "2026 Handyman Hourly Rates (HomeGuide)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/handyman-prices"
          },
          {
            "id": "homeguide.electrician",
            "title": "Electrician Cost Per Hour (HomeGuide, 2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/electrician-cost-per-hour"
          },
          {
            "id": "homeguide.plumber",
            "title": "2026 Plumber Cost Per Hour (HomeGuide)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/plumber-cost"
          },
          {
            "id": "homeguide.lawn-mowing",
            "title": "Lawn mowing cost",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/lawn-mowing-cost"
          },
          {
            "id": "homeguide.lawn-care",
            "title": "Lawn care prices",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/lawn-care-prices"
          },
          {
            "id": "homeguide.yard-cleanup",
            "title": "Yard cleanup",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/yard-cleanup-cost"
          },
          {
            "id": "homeguide.landscaping",
            "title": "Landscaping costs",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/landscaping-costs"
          },
          {
            "id": "homeguide.mold-removal",
            "title": "Mold removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/mold-removal-cost"
          },
          {
            "id": "homeguide.mold-inspection",
            "title": "Mold inspection",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/mold-inspection-cost"
          },
          {
            "id": "homeguide.lead-paint-removal",
            "title": "Lead paint removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/lead-paint-removal-cost"
          },
          {
            "id": "homeguide.asbestos-removal",
            "title": "Asbestos removal",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/asbestos-removal-cost"
          },
          {
            "id": "homeguide.smoke-remediation",
            "title": "Smoke remediation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/smoke-remediation-cost"
          },
          {
            "id": "homeguide.hoarding-cleanup",
            "title": "Hoarding cleanup",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/hoarding-cleanup-cost"
          },
          {
            "id": "homeguide.biohazard-cleanup",
            "title": "Biohazard cleanup",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/biohazard-cleanup-cost"
          },
          {
            "id": "homeguide.baseboard",
            "title": "Baseboard installation",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/baseboard-installation-cost"
          },
          {
            "id": "homeguide.air-duct-cleaning",
            "title": "Air duct cleaning",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/air-duct-cleaning-cost"
          },
          {
            "id": "hud.nspire.walls",
            "title": "NSPIRE Standard: Wall - Interior (v3.0, 2023-08-11)",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/sites/dfiles/PIH/documents/NSPIRE-Standard-Wall-Interior_20230811.pdf"
          },
          {
            "id": "hud.nspire.smoke-alarm",
            "title": "NSPIRE Standard: Smoke Alarm (v3.0, 2023-08-11)",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/sites/dfiles/PIH/documents/NSPIRE-Standard-Smoke-Alarm_20230811.pdf"
          },
          {
            "id": "hud.nspire.mold",
            "title": "NSPIRE Standard: Mold-like Substance (v3.0, 2023-08-11)",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/sites/dfiles/PIH/documents/NSPIRE-Standard-Mold-like-Substance_20230811.pdf"
          },
          {
            "id": "qo.assumption",
            "title": "QuietOps modelling assumption",
            "publisher": "QuietOps",
            "url": null
          },
          {
            "id": "turnoverla.paint-2026",
            "title": "Apartment painting cost LA: real prices and timelines (TurnOver LA, 2026-07-29)",
            "publisher": "TurnOver LA",
            "url": "https://www.turnoverla.com/blog/apartment-painting-los-angeles-cost"
          },
          {
            "id": "cda.multifamily-2026",
            "title": "Apartment Painting in Coeur d'Alene: Multifamily Costs (2026-09-21)",
            "publisher": "Coeur d'Alene Painters",
            "url": "https://coeurdalenepainters.com/blog/apartment-multifamily-painting-coeur-dalene-2026"
          },
          {
            "id": "tas.atlanta-turn-paint",
            "title": "Multifamily interior painting in Atlanta (Total Apartment Solutions)",
            "publisher": "Total Apartment Solutions",
            "url": "https://totalapartmentsolutions.com/news-and-insights/multifamily-interior-painting-atlanta/"
          },
          {
            "id": "aphanj.rfp-2026",
            "title": "Asbury Park HA, RFP Vacancy Prep Unit Turnover (2026)",
            "publisher": "Asbury Park Housing Authority",
            "url": "https://aphanj.org/wp-content/uploads/2026-INVITATION-FOR-RFP-Vacancy-Prep-Unit-Turnover_.pdf"
          },
          {
            "id": "homeguide.microwave-install",
            "title": "Microwave Installation Cost (HomeGuide, 2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/microwave-installation-cost"
          },
          {
            "id": "homeguide.appliances-prices",
            "title": "Home Appliance Prices (HomeGuide, 2026)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/appliances-prices"
          },
          {
            "id": "homeguide.asbestos-testing",
            "title": "Asbestos Testing Cost (HomeGuide)",
            "publisher": "HomeGuide",
            "url": "https://homeguide.com/costs/asbestos-testing-and-inspection-costs"
          },
          {
            "id": "homeadvisor.junk-removal",
            "title": "Junk Removal Cost (HomeAdvisor, 2025)",
            "publisher": "HomeAdvisor",
            "url": "https://www.homeadvisor.com/cost/cleaning-services/remove-waste/"
          },
          {
            "id": "epa.rrp-cost",
            "title": "How much will it cost contractors to comply with the RRP rule? (EPA, archived)",
            "publisher": "US EPA",
            "url": "https://19january2021snapshot.epa.gov/lead/how-much-will-it-cost-contractors-comply-rrp-rule_.html"
          },
          {
            "id": "epa.rrp-window-faq",
            "title": "Window repair vs removal under RRP (EPA FAQ)",
            "publisher": "US EPA",
            "url": "https://epa.gov/lead/how-window-repair-or-maintenance-distinct-removal-treated-under-rrp-rule-would-rule-apply-job"
          },
          {
            "id": "osha.1926-1101",
            "title": "OSHA asbestos standard for construction (significant changes; PACM)",
            "publisher": "OSHA",
            "url": "https://www.osha.gov/training/library/asbestos/construction"
          },
          {
            "id": "hud.nspire.hvac-v2.2",
            "title": "NSPIRE Standards v2.2, HVAC",
            "publisher": "HUD REAC",
            "url": "https://www.hud.gov/sites/dfiles/PIH/documents/NSPIRE-Standards-v2.2-HVAC.pdf"
          },
          {
            "id": "ncsl.co-detectors",
            "title": "Carbon Monoxide Detector Requirements (NCSL)",
            "publisher": "NCSL",
            "url": "https://www.ncsl.org/environment-and-natural-resources/carbon-monoxide-detector-requirements-laws-and-regulations"
          },
          {
            "id": "cpsc.range-tipover",
            "title": "Free-Standing Kitchen Ranges (CPSC)",
            "publisher": "US CPSC",
            "url": "https://www.cpsc.gov/Regulations-Laws--Standards/Voluntary-Standards/Topics/Free-Standing-Kitchen-Ranges"
          },
          {
            "id": "tx.prop-code-92-156",
            "title": "Texas Property Code § 92.156, Rekeying",
            "publisher": "FindLaw (Texas statute)",
            "url": "https://codes.findlaw.com/tx/property-code/prop-sect-92-156/"
          },
          {
            "id": "ca.civ-1984",
            "title": "Cal. Civ. Code § 1984 (abandoned property notice)",
            "publisher": "California Public Law",
            "url": "https://california.public.law/codes/civil_code_section_1984"
          },
          {
            "id": "rentcafe.apt-size-2024",
            "title": "U.S. average apartment size (RentCafe)",
            "publisher": "RentCafe",
            "url": "https://www.rentcafe.com/blog/rental-market/real-estate-news/national-average-apartment-size/"
          },
          {
            "id": "bls.oews-nonmetro",
            "title": "OEWS metropolitan and nonmetropolitan area definitions (May 2024 county list, via the Internet Archive)",
            "publisher": "US BLS",
            "url": "https://www.bls.gov/oes/current/msa_def.htm"
          },
          {
            "id": "bea.rpp-2024",
            "title": "Regional Price Parities 2024 (BEA, Feb 2026)",
            "publisher": "US BEA",
            "url": "https://www.bea.gov/sites/default/files/2026-02/rpp0226.pdf"
          },
          {
            "id": "bid.grhc-2024",
            "title": "Grand Rapids Housing Commission, Res. 24-43 painting per unit (board minutes 2024-11-19)",
            "publisher": "Grand Rapids Housing Commission",
            "url": "https://grhousing.org/pdf/nov24minutes.pdf"
          },
          {
            "id": "bid.grhc-2026",
            "title": "Grand Rapids Housing Commission, Res. 25-79 unit-turn hourly labor rates (2026-03-17)",
            "publisher": "Grand Rapids Housing Commission",
            "url": "https://www.grhousing.org/pdf/mar26minutes.pdf"
          },
          {
            "id": "bid.saha-2020",
            "title": "San Antonio HA, prior bid tab Unit Make Ready Paint (2020)",
            "publisher": "San Antonio Housing Authority",
            "url": "https://saha.org/wp-content/uploads/2020/02/1909-910-54-4967PaintingServicesForBeaconCommunities_Addendum2.pdf"
          },
          {
            "id": "bid.ccha-2020",
            "title": "Corpus Christi HA, RFP P2006 Unit Make Ready Services (2020)",
            "publisher": "Corpus Christi Housing Authority",
            "url": "https://www.hacc.org/wp-content/uploads/2020/03/RFP-20006-Unit-Make-Ready-Services.pdf"
          },
          {
            "id": "bid.calvert-2025",
            "title": "Calvert County ITB 2025-023 interior painting bid comparison",
            "publisher": "Calvert County Government",
            "url": "https://www.calvertcountymd.gov/DocumentCenter/View/47562"
          },
          {
            "id": "bid.fortbend-2025",
            "title": "Fort Bend County B25-040 carpet supply and install, signed contract",
            "publisher": "Fort Bend County Purchasing",
            "url": "https://agendalink.fortbendcountytx.gov/mindocs/2025/CCTR/20250311_3974/minutes/3756%5F36D%5Fsigned%5Fcontract%2Epdf"
          },
          {
            "id": "bid.sc-painting-2024",
            "title": "SC statewide painting GS-FPB-230213-02, intent to award",
            "publisher": "SC Materials Management Office",
            "url": "https://sc.edu/purchasing/solicitations/documents/Intent_to_Award_GS-FPB-230213-02.pdf"
          },
          {
            "id": "bid.ia-pbs-2026",
            "title": "Iowa DAS (Iowa PBS) commercial janitorial contract price sheet",
            "publisher": "Iowa DAS",
            "url": "https://bidopportunities.iowa.gov/Home/ShowContractDocument/88e00fdb-e46f-4095-8780-1346a869518e"
          },
          {
            "id": "bid.ne-das",
            "title": "Nebraska DAS awarded bid tab, North Platte custodial services",
            "publisher": "State of Nebraska DAS",
            "url": "https://das.nebraska.gov/materiel/purchasing/5758/bid tab AWARDED.pdf"
          },
          {
            "id": "bid.carpet-clean-5agencies",
            "title": "Carpet-cleaning per-sq-ft bid tabs, five agencies (research 09)",
            "publisher": "QuietOps research 09",
            "url": null
          }
        ]
      },
      "links": {
        "page": "https://tektolo.com/capabilities/property-turnover",
        "api": "https://tektolo.com/v1/capabilities/property-turnover",
        "openapi": "https://tektolo.com/openapi.json",
        "mcp": "https://tektolo.com/mcp"
      }
    }
  ]
}