Skip to main content
Glama

Tektolo

Quick turnover estimate (start here)

property_turnover_quick_estimate
Read-onlyIdempotent

Estimates what it costs to turn over a US rental unit after move-out; the first tool for a turnover estimate. Inputs: a 5-digit ZIP, bedrooms, bathrooms and the issues in plain English (e.g. "stained carpet in both bedrooms"); optional unit type, size, year built. Returns a priced make-ready estimate: repair tasks by trade with low/expected/high costs for the ZIP's labor market, must/should/could priorities, refer-outs to licensed professionals, assumptions, and links to the web tool and downloads. Same engine as property_turnover_scope. Not for: diagnosing hazards, legal advice on deposits, remodel bids, properties outside the US. Deterministic and source-cited: the same input gives the same result.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
zipYes
auditNoAlso return the run record and input/result hashes (an audit trail). Default false.
sq_ftNoInterior sq ft.
carpetNoIs there wall-to-wall carpet?
detailNosummary (default, small) or full (every line).summary
issuesNoWhat was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed.
profileNostandard
bedroomsYes
bathroomsYes
unit_typeNoapartment
price_tierNopm_vendor
year_builtNo
client_refsNoYour own reference ids (e.g. unit_id, job_id). Echoed back, never used.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
runNo
linksNo
resultYes
input_hashNo
client_refsNo
result_hashNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed188 schema fields changed
    • removedInput schema / $defs / PriceTier / title
      Removed value: -"PriceTier"
    • removedInput schema / $defs / Profile / title
      Removed value: -"Profile"
    • removedInput schema / $defs / UnitType / title
      Removed value: -"UnitType"
    • removedInput schema / properties / audit / title
      Removed value: -"Audit"
    • removedInput schema / properties / bathrooms / title
      Removed value: -"Bathrooms"
    • removedInput schema / properties / bedrooms / title
      Removed value: -"Bedrooms"
    • removedInput schema / properties / carpet / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / carpet / default
      Removed value: -null
    • removedInput schema / properties / carpet / title
      Removed value: -"Carpet"
    • addedInput schema / properties / carpet / type
      Added value: +"boolean"
    • addedInput schema / properties / client_refs / additionalProperties
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / client_refs / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": {
      -      "type": "string"
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / client_refs / default
      Removed value: -null
    • removedInput schema / properties / client_refs / title
      Removed value: -"Client Refs"
    • addedInput schema / properties / client_refs / type
      Added value: +"object"
    • removedInput schema / properties / detail / title
      Removed value: -"Detail"
    • changedInput schema / properties / issues / description
      Previous value: -"What was found, one plain-English item per entry, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. A room at the start sets the location ('Bedroom 2 carpet torn')."New value: +"What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed."
    • removedInput schema / properties / issues / title
      Removed value: -"Issues"
    • removedInput schema / properties / sq_ft / anyOf
      Removed value: -[
      -  {
      -    "maximum": 20000,
      -    "minimum": 150,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / sq_ft / default
      Removed value: -null
    • addedInput schema / properties / sq_ft / maximum
      Added value: +20000
    • addedInput schema / properties / sq_ft / minimum
      Added value: +150
    • removedInput schema / properties / sq_ft / title
      Removed value: -"Sq Ft"
    • addedInput schema / properties / sq_ft / type
      Added value: +"integer"
    • removedInput schema / properties / year_built / anyOf
      Removed value: -[
      -  {
      -    "maximum": 2100,
      -    "minimum": 1700,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / year_built / default
      Removed value: -null
    • addedInput schema / properties / year_built / maximum
      Added value: +2100
    • addedInput schema / properties / year_built / minimum
      Added value: +1700
    • removedInput schema / properties / year_built / title
      Removed value: -"Year Built"
    • addedInput schema / properties / year_built / type
      Added value: +"integer"
    • removedInput schema / properties / zip / title
      Removed value: -"Zip"
    • removedInput schema / title
      Removed value: -"property_turnover_quick_estimateArguments"
    • removedOutput schema / $defs / CostRange / description
      Removed value: -"A low / expected / high estimate. Invariant: low <= expected <= high."
    • removedOutput schema / $defs / CostRange / properties / expected / title
      Removed value: -"Expected"
    • removedOutput schema / $defs / CostRange / properties / high / title
      Removed value: -"High"
    • removedOutput schema / $defs / CostRange / properties / low / title
      Removed value: -"Low"
    • removedOutput schema / $defs / CostRange / title
      Removed value: -"CostRange"
    • removedOutput schema / $defs / Extent / title
      Removed value: -"Extent"
    • removedOutput schema / $defs / FindingResolution / properties / code / title
      Removed value: -"Code"
    • addedOutput schema / $defs / FindingResolution / properties / confidence
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / FindingResolution / properties / finding_id / title
      Removed value: -"Finding Id"
    • removedOutput schema / $defs / FindingResolution / properties / issue_name / description
      Removed value: -"Readable name of `code`."
    • removedOutput schema / $defs / FindingResolution / properties / issue_name / title
      Removed value: -"Issue Name"
    • removedOutput schema / $defs / FindingResolution / properties / line_ids / title
      Removed value: -"Line Ids"
    • removedOutput schema / $defs / FindingResolution / properties / location / description
      Removed value: -"Where, as shown on the lines."
    • removedOutput schema / $defs / FindingResolution / properties / location / title
      Removed value: -"Location"
    • removedOutput schema / $defs / FindingResolution / properties / match_note / description
      Removed value: -"Set when the match left a fixture word unexplained: check this finding."
    • removedOutput schema / $defs / FindingResolution / properties / match_note / title
      Removed value: -"Match Note"
    • addedOutput schema / $defs / FindingResolution / properties / model
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / FindingResolution / properties / needs_review
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / FindingResolution / properties / not_billed_reason
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "none",
      +        "ok",
      +        "done"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • changedOutput schema / $defs / FindingResolution / properties / resolution / enum
      Previous value: -[
      -  "exact",
      -  "alias",
      -  "unmapped"
      -]New value: +[
      +  "exact",
      +  "alias",
      +  "ai",
      +  "unmapped",
      +  "not_billed"
      +]
    • removedOutput schema / $defs / FindingResolution / properties / resolution / title
      Removed value: -"Resolution"
    • removedOutput schema / $defs / FindingResolution / properties / suggested_codes / title
      Removed value: -"Suggested Codes"
    • removedOutput schema / $defs / FindingResolution / properties / suggestions / description
      Removed value: -"Suggested codes with readable names, best first."
    • removedOutput schema / $defs / FindingResolution / properties / suggestions / title
      Removed value: -"Suggestions"
    • removedOutput schema / $defs / FindingResolution / properties / text / description
      Removed value: -"The finding as given (description, else code), for tracing."
    • removedOutput schema / $defs / FindingResolution / properties / text / title
      Removed value: -"Text"
    • removedOutput schema / $defs / FindingResolution / properties / uncertain / description
      Removed value: -"The description hedges ('mold?', 'maybe', 'possible'). Refer-outs from uncertain findings are check-first: they add a warning instead of holding phases."
    • removedOutput schema / $defs / FindingResolution / properties / uncertain / title
      Removed value: -"Uncertain"
    • removedOutput schema / $defs / FindingResolution / title
      Removed value: -"FindingResolution"
    • removedOutput schema / $defs / Links / description
      Removed value: -"Where the user gets files. MCP results only; the estimate itself is not stored."
    • removedOutput schema / $defs / Links / properties / downloads / description
      Removed value: -"Format -> URL. POST the property_turnover_scope arguments as JSON."
    • removedOutput schema / $defs / Links / properties / downloads / title
      Removed value: -"Downloads"
    • removedOutput schema / $defs / Links / properties / how_to_get_files / title
      Removed value: -"How To Get Files"
    • removedOutput schema / $defs / Links / properties / web_tool / description
      Removed value: -"The free web tool."
    • removedOutput schema / $defs / Links / properties / web_tool / title
      Removed value: -"Web Tool"
    • removedOutput schema / $defs / Links / properties / web_tool_prefilled / description
      Removed value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user."
    • removedOutput schema / $defs / Links / properties / web_tool_prefilled / title
      Removed value: -"Web Tool Prefilled"
    • removedOutput schema / $defs / Links / title
      Removed value: -"Links"
    • removedOutput schema / $defs / Note / properties / code / title
      Removed value: -"Code"
    • removedOutput schema / $defs / Note / properties / finding_ids / title
      Removed value: -"Finding Ids"
    • removedOutput schema / $defs / Note / properties / line_ids / title
      Removed value: -"Line Ids"
    • removedOutput schema / $defs / Note / properties / message / title
      Removed value: -"Message"
    • removedOutput schema / $defs / Note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / Phase / description
      Removed value: -"Make-ready order. Values sort in sequence order via PHASE_ORDER."
    • removedOutput schema / $defs / Phase / title
      Removed value: -"Phase"
    • removedOutput schema / $defs / PriceBasis / title
      Removed value: -"PriceBasis"
    • removedOutput schema / $defs / PriceTier / description
      Removed value: -"Purchasing channel. Library prices are pm_vendor (a PM buying turns from a local vendor)."
    • removedOutput schema / $defs / PriceTier / title
      Removed value: -"PriceTier"
    • removedOutput schema / $defs / Priority / title
      Removed value: -"Priority"
    • removedOutput schema / $defs / Profile / title
      Removed value: -"Profile"
    • removedOutput schema / $defs / Provenance / properties / ruleset_hash / title
      Removed value: -"Ruleset Hash"
    • removedOutput schema / $defs / Provenance / properties / ruleset_id / title
      Removed value: -"Ruleset Id"
    • removedOutput schema / $defs / Provenance / properties / ruleset_version / title
      Removed value: -"Ruleset Version"
    • removedOutput schema / $defs / Provenance / properties / sources / title
      Removed value: -"Sources"
    • removedOutput schema / $defs / Provenance / title
      Removed value: -"Provenance"
    • removedOutput schema / $defs / RateCardUse / properties / entry / description
      Removed value: -"0-based index into the request's rate_card."
    • removedOutput schema / $defs / RateCardUse / properties / entry / title
      Removed value: -"Entry"
    • removedOutput schema / $defs / RateCardUse / properties / lines / title
      Removed value: -"Lines"
    • removedOutput schema / $defs / RateCardUse / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / RateCardUse / properties / target / description
      Removed value: -"The entry's task_id or trade."
    • removedOutput schema / $defs / RateCardUse / properties / target / title
      Removed value: -"Target"
    • removedOutput schema / $defs / RateCardUse / title
      Removed value: -"RateCardUse"
    • removedOutput schema / $defs / ReferOutNote / properties / blocks_phases / title
      Removed value: -"Blocks Phases"
    • removedOutput schema / $defs / ReferOutNote / properties / finding_ids / title
      Removed value: -"Finding Ids"
    • removedOutput schema / $defs / ReferOutNote / properties / id / title
      Removed value: -"Id"
    • removedOutput schema / $defs / ReferOutNote / properties / kind / title
      Removed value: -"Kind"
    • removedOutput schema / $defs / ReferOutNote / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / $defs / ReferOutNote / properties / professional / title
      Removed value: -"Professional"
    • removedOutput schema / $defs / ReferOutNote / properties / reason / title
      Removed value: -"Reason"
    • removedOutput schema / $defs / ReferOutNote / properties / sources / title
      Removed value: -"Sources"
    • removedOutput schema / $defs / ReferOutNote / properties / unconfirmed / description
      Removed value: -"Every triggering finding was hedged ('maybe', '?'): check first; no phase is held until the condition is confirmed (see warnings)."
    • removedOutput schema / $defs / ReferOutNote / properties / unconfirmed / title
      Removed value: -"Unconfirmed"
    • removedOutput schema / $defs / ReferOutNote / title
      Removed value: -"ReferOutNote"
    • removedOutput schema / $defs / Region / properties / basis / title
      Removed value: -"Basis"
    • removedOutput schema / $defs / Region / properties / cbsa / title
      Removed value: -"Cbsa"
    • removedOutput schema / $defs / Region / properties / cbsa_name / title
      Removed value: -"Cbsa Name"
    • removedOutput schema / $defs / Region / properties / vintage / title
      Removed value: -"Vintage"
    • removedOutput schema / $defs / Region / properties / zip3 / title
      Removed value: -"Zip3"
    • removedOutput schema / $defs / Region / title
      Removed value: -"Region"
    • removedOutput schema / $defs / Responsibility / title
      Removed value: -"Responsibility"
    • removedOutput schema / $defs / RunInfo / properties / capability / title
      Removed value: -"Capability"
    • removedOutput schema / $defs / RunInfo / properties / contract_version / title
      Removed value: -"Contract Version"
    • removedOutput schema / $defs / RunInfo / properties / duration_ms / title
      Removed value: -"Duration Ms"
    • removedOutput schema / $defs / RunInfo / properties / engine_version / title
      Removed value: -"Engine Version"
    • removedOutput schema / $defs / RunInfo / properties / id / title
      Removed value: -"Id"
    • removedOutput schema / $defs / RunInfo / properties / operation / title
      Removed value: -"Operation"
    • removedOutput schema / $defs / RunInfo / properties / received_at / title
      Removed value: -"Received At"
    • removedOutput schema / $defs / RunInfo / properties / ruleset_hash / title
      Removed value: -"Ruleset Hash"
    • removedOutput schema / $defs / RunInfo / properties / ruleset_version / title
      Removed value: -"Ruleset Version"
    • removedOutput schema / $defs / RunInfo / title
      Removed value: -"RunInfo"
    • removedOutput schema / $defs / ScopeLine / properties / allowance / description
      Removed value: -"Quote-required lines only: a non-binding budget range. NOT included in any total; summed separately in totals.allowances."
    • removedOutput schema / $defs / ScopeLine / properties / confidence / title
      Removed value: -"Confidence"
    • removedOutput schema / $defs / ScopeLine / properties / decision / title
      Removed value: -"Decision"
    • removedOutput schema / $defs / ScopeLine / properties / finding_ids / title
      Removed value: -"Finding Ids"
    • removedOutput schema / $defs / ScopeLine / properties / line_id / title
      Removed value: -"Line Id"
    • removedOutput schema / $defs / ScopeLine / properties / location / title
      Removed value: -"Location"
    • removedOutput schema / $defs / ScopeLine / properties / name / title
      Removed value: -"Name"
    • addedOutput schema / $defs / ScopeLine / properties / needs_review
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • removedOutput schema / $defs / ScopeLine / properties / quantity / title
      Removed value: -"Quantity"
    • removedOutput schema / $defs / ScopeLine / properties / quantity_source / title
      Removed value: -"Quantity Source"
    • removedOutput schema / $defs / ScopeLine / properties / refer_out / title
      Removed value: -"Refer Out"
    • removedOutput schema / $defs / ScopeLine / properties / responsibility_by_finding / description
      Removed value: -"Set when the hint is 'mixed': the hint of each finding the line carries."
    • removedOutput schema / $defs / ScopeLine / properties / responsibility_by_finding / title
      Removed value: -"Responsibility By Finding"
    • removedOutput schema / $defs / ScopeLine / properties / rule_ids / title
      Removed value: -"Rule Ids"
    • removedOutput schema / $defs / ScopeLine / properties / task_id / title
      Removed value: -"Task Id"
    • addedOutput schema / $defs / ScopeLine / properties / to_confirm
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • removedOutput schema / $defs / ScopeLine / properties / vendor_note / title
      Removed value: -"Vendor Note"
    • removedOutput schema / $defs / ScopeLine / title
      Removed value: -"ScopeLine"
    • removedOutput schema / $defs / ScopeResult / description
      Removed value: -"Field order puts the answer first (summary, disclaimer, totals, refer-outs, vendor\nscopes), because agents and truncating clients read from the top."
    • removedOutput schema / $defs / ScopeResult / properties / assumptions / title
      Removed value: -"Assumptions"
    • removedOutput schema / $defs / ScopeResult / properties / detail / title
      Removed value: -"Detail"
    • removedOutput schema / $defs / ScopeResult / properties / disclaimer / title
      Removed value: -"Disclaimer"
    • removedOutput schema / $defs / ScopeResult / properties / findings / title
      Removed value: -"Findings"
    • removedOutput schema / $defs / ScopeResult / properties / lines / title
      Removed value: -"Lines"
    • removedOutput schema / $defs / ScopeResult / properties / lines_omitted / description
      Removed value: -"Lines left out in summary detail."
    • removedOutput schema / $defs / ScopeResult / properties / lines_omitted / title
      Removed value: -"Lines Omitted"
    • removedOutput schema / $defs / ScopeResult / properties / omitted_note / description
      Removed value: -"Summary detail: what the omitted lines are (routine turn tasks) and their cost."
    • removedOutput schema / $defs / ScopeResult / properties / omitted_note / title
      Removed value: -"Omitted Note"
    • removedOutput schema / $defs / ScopeResult / properties / rate_card_applied / description
      Removed value: -"Rate card entries that changed a price."
    • removedOutput schema / $defs / ScopeResult / properties / rate_card_applied / title
      Removed value: -"Rate Card Applied"
    • removedOutput schema / $defs / ScopeResult / properties / rate_card_ignored / description
      Removed value: -"Rate card entries that changed nothing, with why."
    • removedOutput schema / $defs / ScopeResult / properties / rate_card_ignored / title
      Removed value: -"Rate Card Ignored"
    • removedOutput schema / $defs / ScopeResult / properties / refer_outs / title
      Removed value: -"Refer Outs"
    • removedOutput schema / $defs / ScopeResult / properties / summary / title
      Removed value: -"Summary"
    • removedOutput schema / $defs / ScopeResult / properties / trade_scopes / title
      Removed value: -"Trade Scopes"
    • removedOutput schema / $defs / ScopeResult / properties / unknowns / title
      Removed value: -"Unknowns"
    • removedOutput schema / $defs / ScopeResult / properties / warnings / title
      Removed value: -"Warnings"
    • removedOutput schema / $defs / ScopeResult / title
      Removed value: -"ScopeResult"
    • removedOutput schema / $defs / SourceRef / properties / id / title
      Removed value: -"Id"
    • removedOutput schema / $defs / SourceRef / properties / title / title
      Removed value: -"Title"
    • removedOutput schema / $defs / SourceRef / properties / url / title
      Removed value: -"Url"
    • removedOutput schema / $defs / SourceRef / title
      Removed value: -"SourceRef"
    • removedOutput schema / $defs / Suggestion / properties / code / title
      Removed value: -"Code"
    • removedOutput schema / $defs / Suggestion / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / $defs / Suggestion / title
      Removed value: -"Suggestion"
    • removedOutput schema / $defs / Totals / properties / allowances / description
      Removed value: -"Budget allowance for quote-required lines (refer-outs, manual quotes). Shown outside the totals: subtotal and total never include it."
    • changedOutput schema / $defs / Totals / properties / note / default
      Previous value: -"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances are outside the total."New value: +"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances and to_confirm (uncertain items) are outside the total."
    • removedOutput schema / $defs / Totals / properties / note / description
      Removed value: -"How the totals add up."
    • removedOutput schema / $defs / Totals / properties / note / title
      Removed value: -"Note"
    • addedOutput schema / $defs / Totals / properties / to_confirm
      Added value: +{
      +  "$ref": "#/$defs/CostRange"
      +}
    • removedOutput schema / $defs / Totals / title
      Removed value: -"Totals"
    • removedOutput schema / $defs / Trade / title
      Removed value: -"Trade"
    • removedOutput schema / $defs / TradeScope / properties / line_ids / title
      Removed value: -"Line Ids"
    • removedOutput schema / $defs / TradeScope / title
      Removed value: -"TradeScope"
    • removedOutput schema / $defs / Uom / title
      Removed value: -"Uom"
    • removedOutput schema / $defs / Vendor / properties / contact / title
      Removed value: -"Contact"
    • removedOutput schema / $defs / Vendor / properties / name / title
      Removed value: -"Name"
    • removedOutput schema / $defs / Vendor / title
      Removed value: -"Vendor"
    • removedOutput schema / properties / client_refs / description
      Removed value: -"Your own ids, echoed when you sent client_refs."
    • removedOutput schema / properties / client_refs / title
      Removed value: -"Client Refs"
    • removedOutput schema / properties / input_hash / description
      Removed value: -"Only with audit=true."
    • removedOutput schema / properties / input_hash / title
      Removed value: -"Input Hash"
    • removedOutput schema / properties / result_hash / description
      Removed value: -"Only with audit=true."
    • removedOutput schema / properties / result_hash / title
      Removed value: -"Result Hash"
    • removedOutput schema / properties / run / description
      Removed value: -"Only with audit=true."
    • removedOutput schema / title
      Removed value: -"PropertyTurnoverQuickEstimateMcpResult"
  2. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.