Skip to main content
Glama

Settle a security deposit after move-out

deposit_settlement_settle
Read-onlyIdempotent

Settles a US residential security deposit after move-out under the state's statute (50 states and DC) and a covered city's ordinance. Inputs: state, deposit_usd, vacated_on; optional city, monthly_rent_usd, move_in_on, deductions (category, amount, item age, whether the tenant caused it), the dates that start a state's clock, and as_of. Returns the return deadline and its status, each deduction allowed or not (with depreciation), interest owed, refund due, penalty exposure, a draft itemized statement and a citation for every rule. Not for: legal advice, tenant demand letters, repair cost estimates, pet deposits, rentals outside the US. Deterministic and source-cited: the same input gives the same result.

Input Schema

NameRequiredDescriptionDefault
cityNoCity, for a city overlay where covered (e.g. 'Chicago'). Optional.
as_ofNoDate for deadline status; defaults to today (UTC). Send YYYY-MM-DD for repeatable results.
auditNoAlso return the run record and input/result hashes (an audit trail). Default false.
stateYesUS state, 2-letter code (e.g. 'CA'); a state name also works.
countyNoTN county: act applies over 75,000 population by 2010 census (66-28-102(a)). Inferred from city only if unambiguous.
returnedNoPrior refund/statement and date; timeliness assesses each duty and days late.
furnishedNoThe unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap).
deductionsNoCharges to deduct (or the landlord's list). Explicit [] means no deductions and selects shorter periods (MT10 days, AK14); omit when unknown.
move_in_onNoTenancy start (YYYY-MM-DD). Used for interest and, when an item's age is unknown, for depreciation.
vacated_onYesDay the tenant moved out and returned possession (YYYY-MM-DD).
client_refsNoYour own reference ids (e.g. unit_id, job_id). Echoed back, never used.
deposit_usdYesSecurity deposit held, dollars.
lease_end_onNoScheduled lease end (YYYY-MM-DD), if different from actual tenancy end. Lost rent/lease-break charges use it. Deadlines use tenancy_ended_on, else move-out; scheduled end remains a later alternative.
serve_pinnedNoOptional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.
tenancy_typeNowritten_lease or at_will. ME 6033(2): written period<=30 days, at-will 21. MA 15 B(4):30 days from move-out(at-will) or lease end(written). Omitted when vacated_on precedes tenancy_ended_on: earlier at-will date leads; other date listed.
documentationNoWhat documentation you have; leave a field out when unknown.
building_unitsNoUnits in the building. Some interest rules depend on it (NY 6+, IL 25+).
expect_rulesetNoOptional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.
owner_occupiedNoThe landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units).
small_landlordNoCA AB 12: natural person or LLC of natural persons, at most 2 properties containing at most 4 units total, tenant not a service member;2 month cap.
pet_deposit_usdNoPet portion of deposit_usd: outside caps in MO/AL/ND/Saint Paul; extra cap allowance of 1 month in HI/AK, half in KS, quarter in NE.
monthly_rent_usdNoMonthly rent, for the deposit cap check.
prepaid_rent_usdNoAdvance rent beyond first month, held besides deposit_usd. Counts in AK/AZ/CA/CT/MD/MI/NY caps; earns interest in CT/MA(last-month rent)/MD/Chicago; Minneapolis cap becomes half-month. UT: send only unused balance, added to refund (57-17-3(2)(b)); elsewhere refund is deposit-only with prepaid-return warning.
tenancy_ended_onNoActual tenancy end: lease end, early termination or accepted surrender (YYYY-MM-DD). End-of-tenancy deadlines use this; send a different scheduled end as lease_end_on. Legacy scheduled ends still work, with an earlier move-out alternative where applicable.
tenant_abandonedNoAbandoned or evicted: MD 8-203(h) clock starts at written demand; WA 59.18.280 at landlord awareness; LA 9:3251(C) one-month rule excluded. Omitted: inferred from tenant_gave_proper_notice=false. If vacated_on precedes tenancy_ended_on, earlier abandonment clock leads; other date listed.
contractor_neededNoDamage exceeds the deposit and needs a third-party contractor, and you said so in writing in time (Virginia, West Virginia: 15 more days).
lease_return_daysNoReturn period the lease sets, in days, where the statute lets a lease set one (Colorado up to 60, Idaho up to 30, Maine shorter).
lease_term_monthsNoTerm of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones.
statement_sent_onNoItemized statement sent/delivered (YYYY-MM-DD), to assess timeliness; documentation.itemized_statement alone supplies no date.
demand_received_onNoDeposit demand received (YYYY-MM-DD): written in OK; first-class mail in MD (8-203(h)). Starts clocks in AZ/KS/OK/SC/MS.
tenant_age_60_plusNoAn occupant is 60+ (NH 540-A:5,I: owner-occupied exemption excluded). tenant_age_62_plus=true implies this.
tenant_age_62_plusNoThe tenant is 62 or older (Connecticut: a one-month cap).
deposit_required_onNoColorado cap: date submission was required. Collection, move-out and as_of cannot establish the 2027 exception.
new_tenant_rent_usdNoMonthly rent the new tenant pays (with new_tenant_moved_in_on): the rent received for overlapping days is credited against rent claimed for them.
third_party_managedNoA third party manages the unit or collects rent for a fee.
claim_notice_sent_onNoWritten claim notice sent (YYYY-MM-DD). FL: within 30 days of termination; DC:45. Balance due 30 days after timely notice; late notice does not count.
deposit_collected_onNoCollection date; defaults to move_in_on. CA AB12 uses it. CO: proxy only if deposit_required_on is absent; never proves the exception.
landlord_units_ownedNoRental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt).
interest_paid_throughNoInterest already paid/credited through this date; accrual starts here (annual-payment rules, e.g. SF/LA/Berkeley/CT/MA).
interest_rate_percentNoAnnual deposit-bank rate: NJ/ND/NH/NY/PA/Portland; MA uses lesser of bank rate or 5%. Omitted bank rate is unknown. IL 765 ILCS 715 uses published IDFPR rate instead.
new_tenant_moved_in_onNoRe-rented: new tenant's move-in date (YYYY-MM-DD). Can shorten WV/WI periods; rent overlapping the new tenancy is unrecoverable.
rent_ordinance_coveredNoCovered by LA RSO or Berkeley Rent Ordinance: required for their deposit interest. Unknown interest stays beside, not inside, refund.
owner_is_natural_personNoGA 44-7-36 only: true=natural-person owner; false=LLC/corporation/partnership/trust, which cannot claim small-landlord exemption. Omitted: exemption stays an alternative.
renter_notice_served_onNoUT 57-17-3(3) renter notice served after deadline (YYYY-MM-DD). Owner gets 5 business days to comply (5); no notice means no 57-17-5 relief.
landlord_filed_action_onNoMI 554.613: date landlord sued for claimed damage (YYYY-MM-DD); sue or return balance within 45 days. Omitted assumes no suit.
tenant_gave_proper_noticeNoA termination notice that meets the statute was given (Alaska: 14 days instead of 30 when nothing is deducted for damage).
lease_signed_or_renewed_onNoCurrent lease signing/last renewal (YYYY-MM-DD). GA cap from 2024-07-01; MD from 2024-10-01. Defaults move_in_on; warns later renewal may activate cap.
deposit_in_separate_accountNoTN 66-28-301(a): deposit-only separate account. No account and no damage listing means none can be kept (c).
nonstandard_provision_signedNoWisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'.
forwarding_address_received_onNoWritten forwarding address received (YYYY-MM-DD). Can start/hold clocks in TX, CT, IA, MN.
tenant_gave_forwarding_addressNoFalse: no written forwarding address ever given. May relieve penalties in IL/PA/OH/SC/NH; DE also accepts a lease notice address. forwarding_address_received_on implies true.
colorado_post_closing_occupancyNoColorado: buyer-landlord bought this residence from seller-tenant; both executed purchase-contract post-closing occupancy before the deposit was required. True confirms all facts; false excludes; null unknown. Exception from 2027-01-01.

Output Schema

NameRequiredDescriptionDefault
runNo
linksNo
resultYes
reviewNo
readingNo
signatureNo
input_hashNo
client_refsNo
deprecationNo
result_hashNo
request_hashNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed35 schema fields changed
    • removedOutput schema / $defs
      Removed value: -{
      -  "Citation": {
      -    "properties": {
      -      "accessed": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "quote": {
      -        "type": "string"
      -      },
      -      "rule": {
      -        "type": "string"
      -      },
      -      "section": {
      -        "type": "string"
      -      },
      -      "source_title": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "verbatim": {
      -        "default": true,
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "rule",
      -      "section",
      -      "quote"
      -    ],
      -    "type": "object"
      -  },
      -  "Deadline": {
      -    "properties": {
      -      "alternatives": {
      -        "items": {
      -          "$ref": "#/$defs/DeadlineAlternative"
      -        },
      -        "type": "array"
      -      },
      -      "counting": {
      -        "enum": [
      -          "calendar",
      -          "business"
      -        ],
      -        "type": "string"
      -      },
      -      "days": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "days_remaining": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "extended_to": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "interest_due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "itemization_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "months": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "return_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "reverted_after": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "start_date": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "start_event": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "upcoming",
      -          "due_today",
      -          "overdue",
      -          "not_started",
      -          "none_in_statute",
      -          "reverted",
      -          "no_deposit",
      -          "met",
      -          "late"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "start_event",
      -      "counting",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  "DeadlineAlternative": {
      -    "properties": {
      -      "applies_if": {
      -        "type": "string"
      -      },
      -      "on": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "send": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "applies_if",
      -      "send"
      -    ],
      -    "type": "object"
      -  },
      -  "DeductionResult": {
      -    "properties": {
      -      "allowed": {
      -        "enum": [
      -          "yes",
      -          "no",
      -          "depends"
      -        ],
      -        "type": "string"
      -      },
      -      "amount_allowed_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "amount_claimed_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "basis": {
      -        "enum": [
      -          "allowed_category",
      -          "normal_wear",
      -          "not_allowed",
      -          "unclassified",
      -          "forfeited",
      -          "statutory_bar",
      -          "mitigation",
      -          "excluded_by_fee",
      -          "documentation_missing"
      -        ],
      -        "type": "string"
      -      },
      -      "category": {
      -        "enum": [
      -          "unpaid_rent",
      -          "unpaid_utilities",
      -          "cleaning",
      -          "carpet",
      -          "flooring",
      -          "paint",
      -          "blinds_window_coverings",
      -          "appliance",
      -          "fixture_or_hardware",
      -          "wall_or_door_repair",
      -          "key_or_lock",
      -          "late_fees",
      -          "lease_break_fee",
      -          "moving_and_storage",
      -          "reletting_costs",
      -          "trash_and_abandoned_items",
      -          "other_damage",
      -          "other"
      -        ],
      -        "type": "string"
      -      },
      -      "depreciation": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Depreciation"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "documentation_needed": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "exclusive_option": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "fee",
      -              "actual"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "notes": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "range_high_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "range_low_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "category",
      -      "amount_claimed_usd",
      -      "allowed",
      -      "basis",
      -      "amount_allowed_usd"
      -    ],
      -    "type": "object"
      -  },
      -  "DepositCapCheck": {
      -    "properties": {
      -      "alternative_cap_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "cap_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "citation": {
      -        "type": "string"
      -      },
      -      "counted_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "exceeded": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "months_rent": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "status": {
      -        "default": "unknown",
      -        "enum": [
      -          "within",
      -          "exceeded",
      -          "depends",
      -          "unknown",
      -          "no_cap",
      -          "not_applicable"
      -        ],
      -        "type": "string"
      -      },
      -      "variants": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "citation"
      -    ],
      -    "type": "object"
      -  },
      -  "Deprecation": {
      -    "properties": {
      -      "field": {
      -        "type": "string"
      -      },
      -      "until": {
      -        "format": "date",
      -        "type": "string"
      -      },
      -      "use": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "field",
      -      "until",
      -      "use"
      -    ],
      -    "type": "object"
      -  },
      -  "Depreciation": {
      -    "properties": {
      -      "age_years": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "applied": {
      -        "type": "boolean"
      -      },
      -      "method": {
      -        "anyOf": [
      -          {
      -            "enum": [
      -              "straight_line",
      -              "step_table"
      -            ],
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "range_high_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "range_low_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "remaining_fraction": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "schedule_source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "source": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "useful_life_years": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "applied"
      -    ],
      -    "type": "object"
      -  },
      -  "DocumentationDuty": {
      -    "properties": {
      -      "citation": {
      -        "type": "string"
      -      },
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "duty": {
      -        "enum": [
      -          "itemized_statement",
      -          "receipts",
      -          "photos",
      -          "photos_move_in",
      -          "move_in_statement",
      -          "move_out_list"
      -        ],
      -        "type": "string"
      -      },
      -      "met": {
      -        "enum": [
      -          "yes",
      -          "no",
      -          "unknown",
      -          "not_yet_due"
      -        ],
      -        "type": "string"
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "required": {
      -        "type": "boolean"
      -      },
      -      "threshold": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "duty",
      -      "required",
      -      "met",
      -      "citation"
      -    ],
      -    "type": "object"
      -  },
      -  "ForfeitureCheck": {
      -    "properties": {
      -      "amount_released_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ],
      -        "default": "0.00"
      -      },
      -      "citation": {
      -        "type": "string"
      -      },
      -      "court_rule_due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "gate": {
      -        "type": "string"
      -      },
      -      "keeps_claim": {
      -        "type": "boolean"
      -      },
      -      "lines": {
      -        "items": {
      -          "type": "integer"
      -        },
      -        "type": "array"
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "scope": {
      -        "enum": [
      -          "all",
      -          "damage"
      -        ],
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "met",
      -          "not_yet",
      -          "complied",
      -          "not_started",
      -          "relieved",
      -          "unknown"
      -        ],
      -        "type": "string"
      -      },
      -      "trigger": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "trigger",
      -      "status",
      -      "scope",
      -      "gate",
      -      "keeps_claim",
      -      "citation"
      -    ],
      -    "type": "object"
      -  },
      -  "Guide": {
      -    "properties": {
      -      "accessed": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "publisher": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "title": {
      -        "type": "string"
      -      },
      -      "url": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "title"
      -    ],
      -    "type": "object"
      -  },
      -  "Interest": {
      -    "properties": {
      -      "amount_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "base_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "basis": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "citation": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "condition": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "formula": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "if_required_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "method": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "parts": {
      -        "items": {
      -          "$ref": "#/$defs/InterestPart"
      -        },
      -        "type": "array"
      -      },
      -      "period_days": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "rate_percent": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "required": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "required"
      -    ],
      -    "type": "object"
      -  },
      -  "InterestPart": {
      -    "properties": {
      -      "amount_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "period_from": {
      -        "format": "date",
      -        "type": "string"
      -      },
      -      "period_to": {
      -        "format": "date",
      -        "type": "string"
      -      },
      -      "rate_percent": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "period_from",
      -      "period_to",
      -      "rate_percent",
      -      "amount_usd"
      -    ],
      -    "type": "object"
      -  },
      -  "JurisdictionRef": {
      -    "properties": {
      -      "city": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "city_overlay": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "city_rules_checked": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "covered": {
      -        "type": "boolean"
      -      },
      -      "state": {
      -        "type": "string"
      -      },
      -      "state_name": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "verified": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "state",
      -      "covered",
      -      "verified"
      -    ],
      -    "type": "object"
      -  },
      -  "Links": {
      -    "properties": {
      -      "downloads": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "how_to_get_files": {
      -        "type": "string"
      -      },
      -      "web_tool": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "web_tool_prefilled": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "how_to_get_files"
      -    ],
      -    "type": "object"
      -  },
      -  "Note": {
      -    "properties": {
      -      "code": {
      -        "type": "string"
      -      },
      -      "text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "text"
      -    ],
      -    "type": "object"
      -  },
      -  "NoteFormat": {
      -    "properties": {
      -      "bold": {
      -        "default": false,
      -        "type": "boolean"
      -      },
      -      "larger_than_body_pt": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "min_pt": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "Outcome": {
      -    "properties": {
      -      "interest_unknown": {
      -        "default": false,
      -        "type": "boolean"
      -      },
      -      "interest_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "next_due": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "obligation_mode": {
      -        "default": "all",
      -        "enum": [
      -          "all",
      -          "alternative"
      -        ],
      -        "type": "string"
      -      },
      -      "owed_now_min_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "owed_now_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "refund_due_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "refund_min_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "returned_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "stages": {
      -        "items": {
      -          "$ref": "#/$defs/Stage"
      -        },
      -        "type": "array"
      -      },
      -      "status": {
      -        "enum": [
      -          "upcoming",
      -          "due_today",
      -          "overdue",
      -          "not_started",
      -          "none_in_statute",
      -          "reverted",
      -          "no_deposit",
      -          "met",
      -          "late"
      -        ],
      -        "type": "string"
      -      },
      -      "tenant_owes_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "uncertain": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "refund_due_usd",
      -      "refund_min_usd",
      -      "tenant_owes_usd"
      -    ],
      -    "type": "object"
      -  },
      -  "PenaltyExposure": {
      -    "properties": {
      -      "additional": {
      -        "items": {
      -          "$ref": "#/$defs/PenaltyExposure"
      -        },
      -        "type": "array"
      -      },
      -      "applies_if": {
      -        "type": "string"
      -      },
      -      "base": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "basis": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "citation": {
      -        "type": "string"
      -      },
      -      "discretionary": {
      -        "type": "boolean"
      -      },
      -      "estimated_max_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "estimated_min_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "fees_only_without_multiple": {
      -        "default": false,
      -        "type": "boolean"
      -      },
      -      "fixed_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "forfeits_right_to_withhold": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "in_addition_to_refund": {
      -        "default": false,
      -        "type": "boolean"
      -      },
      -      "kind": {
      -        "type": "string"
      -      },
      -      "minimum_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "multiple": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "not_applicable_reason": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "per_violation": {
      -        "default": false,
      -        "type": "boolean"
      -      },
      -      "plus_attorney_fees": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "applies_if",
      -      "kind",
      -      "discretionary",
      -      "plus_attorney_fees",
      -      "forfeits_right_to_withhold",
      -      "citation"
      -    ],
      -    "type": "object"
      -  },
      -  "Provenance": {
      -    "properties": {
      -      "rule_ids": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "rules_as_of": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "ruleset_hash": {
      -        "type": "string"
      -      },
      -      "ruleset_id": {
      -        "type": "string"
      -      },
      -      "ruleset_version": {
      -        "type": "string"
      -      },
      -      "sources": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "ruleset_id",
      -      "ruleset_version",
      -      "ruleset_hash"
      -    ],
      -    "type": "object"
      -  },
      -  "Reading": {
      -    "properties": {
      -      "counts": {
      -        "$ref": "#/$defs/ReadingCounts"
      -      },
      -      "findings": {
      -        "items": {
      -          "additionalProperties": true,
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "kind": {
      -        "enum": [
      -          "notes",
      -          "document"
      -        ],
      -        "type": "string"
      -      },
      -      "model": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "notes": {
      -        "items": {
      -          "$ref": "#/$defs/ReadingNote"
      -        },
      -        "type": "array"
      -      },
      -      "prompt_version": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "kind",
      -      "counts",
      -      "findings"
      -    ],
      -    "type": "object"
      -  },
      -  "ReadingCounts": {
      -    "properties": {
      -      "ai": {
      -        "type": "integer"
      -      },
      -      "parser": {
      -        "type": "integer"
      -      },
      -      "total": {
      -        "type": "integer"
      -      },
      -      "unmatched": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "total",
      -      "ai",
      -      "parser",
      -      "unmatched"
      -    ],
      -    "type": "object"
      -  },
      -  "ReadingNote": {
      -    "properties": {
      -      "code": {
      -        "type": "string"
      -      },
      -      "finding_ids": {
      -        "default": [],
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "kind": {
      -        "enum": [
      -          "warning",
      -          "assumption"
      -        ],
      -        "type": "string"
      -      },
      -      "message": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "kind",
      -      "code",
      -      "message"
      -    ],
      -    "type": "object"
      -  },
      -  "ResultSignature": {
      -    "properties": {
      -      "jws": {
      -        "type": "string"
      -      },
      -      "payload": {
      -        "$ref": "#/$defs/ResultSignaturePayload"
      -      },
      -      "verify_code": {
      -        "type": "string"
      -      },
      -      "verify_url": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "jws",
      -      "payload",
      -      "verify_code",
      -      "verify_url"
      -    ],
      -    "type": "object"
      -  },
      -  "ResultSignaturePayload": {
      -    "properties": {
      -      "capability": {
      -        "type": "string"
      -      },
      -      "engine_version": {
      -        "type": "string"
      -      },
      -      "issued_at": {
      -        "type": "string"
      -      },
      -      "kid": {
      -        "type": "string"
      -      },
      -      "operation": {
      -        "type": "string"
      -      },
      -      "result_hash": {
      -        "type": "string"
      -      },
      -      "ruleset_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "ruleset_version": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "v": {
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "v",
      -      "kid",
      -      "capability",
      -      "operation",
      -      "ruleset_version",
      -      "ruleset_hash",
      -      "engine_version",
      -      "result_hash",
      -      "issued_at"
      -    ],
      -    "type": "object"
      -  },
      -  "Review": {
      -    "properties": {
      -      "ai_read": {
      -        "default": 0,
      -        "type": "integer"
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "reading_id": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "status": {
      -        "default": "verified",
      -        "enum": [
      -          "draft",
      -          "verified"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  },
      -  "RunInfo": {
      -    "properties": {
      -      "capability": {
      -        "type": "string"
      -      },
      -      "contract_version": {
      -        "type": "string"
      -      },
      -      "duration_ms": {
      -        "type": "integer"
      -      },
      -      "engine_version": {
      -        "type": "string"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "operation": {
      -        "type": "string"
      -      },
      -      "received_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "ruleset_hash": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "ruleset_version": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "capability",
      -      "operation",
      -      "contract_version",
      -      "engine_version",
      -      "ruleset_version",
      -      "ruleset_hash",
      -      "received_at",
      -      "duration_ms"
      -    ],
      -    "type": "object"
      -  },
      -  "SettleResult": {
      -    "properties": {
      -      "as_of": {
      -        "format": "date",
      -        "type": "string"
      -      },
      -      "assumptions": {
      -        "items": {
      -          "$ref": "#/$defs/Note"
      -        },
      -        "type": "array"
      -      },
      -      "citations": {
      -        "items": {
      -          "$ref": "#/$defs/Citation"
      -        },
      -        "type": "array"
      -      },
      -      "deadline": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Deadline"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "deductions": {
      -        "items": {
      -          "$ref": "#/$defs/DeductionResult"
      -        },
      -        "type": "array"
      -      },
      -      "deposit_cap": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/DepositCapCheck"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "disclaimer": {
      -        "type": "string"
      -      },
      -      "documentation": {
      -        "items": {
      -          "$ref": "#/$defs/DocumentationDuty"
      -        },
      -        "type": "array"
      -      },
      -      "forfeiture": {
      -        "items": {
      -          "$ref": "#/$defs/ForfeitureCheck"
      -        },
      -        "type": "array"
      -      },
      -      "guides": {
      -        "items": {
      -          "$ref": "#/$defs/Guide"
      -        },
      -        "type": "array"
      -      },
      -      "interest": {
      -        "$ref": "#/$defs/Interest"
      -      },
      -      "jurisdiction": {
      -        "$ref": "#/$defs/JurisdictionRef"
      -      },
      -      "outcome": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Outcome"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "penalty_exposure": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/PenaltyExposure"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "provenance": {
      -        "$ref": "#/$defs/Provenance"
      -      },
      -      "small_claims": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Guide"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "statement": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Statement"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "summary": {
      -        "type": "string"
      -      },
      -      "timeliness": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/Timeliness"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "totals": {
      -        "$ref": "#/$defs/Totals"
      -      },
      -      "unknowns": {
      -        "items": {
      -          "$ref": "#/$defs/Note"
      -        },
      -        "type": "array"
      -      },
      -      "warnings": {
      -        "items": {
      -          "$ref": "#/$defs/Note"
      -        },
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "summary",
      -      "disclaimer",
      -      "jurisdiction",
      -      "as_of",
      -      "totals",
      -      "interest",
      -      "provenance"
      -    ],
      -    "type": "object"
      -  },
      -  "Stage": {
      -    "properties": {
      -      "days": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "done_on": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "duty": {
      -        "enum": [
      -          "itemized_statement",
      -          "refund",
      -          "interest"
      -        ],
      -        "type": "string"
      -      },
      -      "label": {
      -        "type": "string"
      -      },
      -      "status": {
      -        "enum": [
      -          "met",
      -          "late",
      -          "short",
      -          "overdue",
      -          "due_today",
      -          "upcoming",
      -          "not_started",
      -          "none_in_statute"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "duty",
      -      "label",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  "Statement": {
      -    "properties": {
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "lines": {
      -        "items": {
      -          "$ref": "#/$defs/StatementLine"
      -        },
      -        "type": "array"
      -      },
      -      "notes": {
      -        "items": {
      -          "$ref": "#/$defs/StatementNote"
      -        },
      -        "type": "array"
      -      },
      -      "refund_due_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "lines",
      -      "refund_due_usd",
      -      "text"
      -    ],
      -    "type": "object"
      -  },
      -  "StatementLine": {
      -    "properties": {
      -      "amount_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "label": {
      -        "type": "string"
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "label"
      -    ],
      -    "type": "object"
      -  },
      -  "StatementNote": {
      -    "properties": {
      -      "audience": {
      -        "enum": [
      -          "tenant",
      -          "manager"
      -        ],
      -        "type": "string"
      -      },
      -      "blanks": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "citation": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "format": {
      -        "anyOf": [
      -          {
      -            "$ref": "#/$defs/NoteFormat"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "kind": {
      -        "default": "note",
      -        "enum": [
      -          "note",
      -          "required_notice",
      -          "attestation"
      -        ],
      -        "type": "string"
      -      },
      -      "text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "text",
      -      "audience"
      -    ],
      -    "type": "object"
      -  },
      -  "Timeliness": {
      -    "properties": {
      -      "amount_kept_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "amount_returned_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "checks": {
      -        "items": {
      -          "$ref": "#/$defs/TimelyCheck"
      -        },
      -        "type": "array"
      -      },
      -      "days_late": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "difference_min_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "difference_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "late": {
      -        "anyOf": [
      -          {
      -            "type": "boolean"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "late_since": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "note": {
      -        "default": "",
      -        "type": "string"
      -      },
      -      "on": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "what": {
      -        "enum": [
      -          "nothing",
      -          "full_refund",
      -          "partial_refund",
      -          "itemized_statement"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "what",
      -      "late"
      -    ],
      -    "type": "object"
      -  },
      -  "TimelyCheck": {
      -    "properties": {
      -      "days_late": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "days_left": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "done_on": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "due_by": {
      -        "anyOf": [
      -          {
      -            "format": "date",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "duty": {
      -        "enum": [
      -          "refund",
      -          "itemized_statement",
      -          "interest"
      -        ],
      -        "type": "string"
      -      },
      -      "note": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "status": {
      -        "enum": [
      -          "on_time",
      -          "late",
      -          "not_yet_due",
      -          "overdue",
      -          "not_started",
      -          "none_in_statute",
      -          "reverted"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "duty",
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  "Totals": {
      -    "properties": {
      -      "allowed_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "claimed_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "counted_floor_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ],
      -        "default": "0.00"
      -      },
      -      "depends_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ],
      -        "default": "0.00"
      -      },
      -      "deposit_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "interest_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "refund_due_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      },
      -      "refund_min_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ],
      -        "default": "0.00"
      -      },
      -      "tenant_owes_usd": {
      -        "anyOf": [
      -          {
      -            "type": "number"
      -          },
      -          {
      -            "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -            "type": "string"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "deposit_usd",
      -      "claimed_usd",
      -      "allowed_usd",
      -      "refund_due_usd",
      -      "tenant_owes_usd"
      -    ],
      -    "type": "object"
      -  }
      -}
    • removedOutput schema / properties / client_refs / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / client_refs / default
      Removed value: -null
    • addedOutput schema / properties / client_refs / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / deprecation / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "$ref": "#/$defs/Deprecation"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / deprecation / default
      Removed value: -null
    • addedOutput schema / properties / deprecation / type
      Added value: +[
      +  "array",
      +  "null"
      +]
    • removedOutput schema / properties / input_hash / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / input_hash / default
      Removed value: -null
    • addedOutput schema / properties / input_hash / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / links / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/Links"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / links / default
      Removed value: -null
    • addedOutput schema / properties / links / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / reading / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/Reading"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / reading / default
      Removed value: -null
    • addedOutput schema / properties / reading / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / request_hash / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / request_hash / default
      Removed value: -null
    • addedOutput schema / properties / request_hash / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / result / $ref
      Removed value: -"#/$defs/SettleResult"
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "as_of": {
      +    "type": "string"
      +  },
      +  "assumptions": {
      +    "type": "array"
      +  },
      +  "citations": {
      +    "type": "array"
      +  },
      +  "deadline": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "deductions": {
      +    "type": "array"
      +  },
      +  "deposit_cap": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "disclaimer": {
      +    "type": "string"
      +  },
      +  "documentation": {
      +    "type": "array"
      +  },
      +  "forfeiture": {
      +    "type": "array"
      +  },
      +  "guides": {
      +    "type": "array"
      +  },
      +  "interest": {
      +    "type": "object"
      +  },
      +  "jurisdiction": {
      +    "type": "object"
      +  },
      +  "outcome": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "penalty_exposure": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "provenance": {
      +    "type": "object"
      +  },
      +  "small_claims": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "statement": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "summary": {
      +    "type": "string"
      +  },
      +  "timeliness": {
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "totals": {
      +    "type": "object"
      +  },
      +  "unknowns": {
      +    "type": "array"
      +  },
      +  "warnings": {
      +    "type": "array"
      +  }
      +}
    • addedOutput schema / properties / result / required
      Added value: +[
      +  "summary",
      +  "disclaimer",
      +  "jurisdiction",
      +  "as_of",
      +  "totals",
      +  "interest",
      +  "provenance"
      +]
    • addedOutput schema / properties / result / type
      Added value: +"object"
    • removedOutput schema / properties / result_hash / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / result_hash / default
      Removed value: -null
    • addedOutput schema / properties / result_hash / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / review / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/Review"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / review / default
      Removed value: -null
    • addedOutput schema / properties / review / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / run / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/RunInfo"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / run / default
      Removed value: -null
    • addedOutput schema / properties / run / type
      Added value: +[
      +  "object",
      +  "null"
      +]
    • removedOutput schema / properties / signature / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/ResultSignature"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedOutput schema / properties / signature / default
      Removed value: -null
    • addedOutput schema / properties / signature / type
      Added value: +[
      +  "object",
      +  "null"
      +]
  2. Changed32 schema fields changed
    • changedInput schema / $defs / Deduction / properties / category / description
      Previous value: -"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, moving_and_storage, reletting_costs (advertising or a broker to re-rent after an early move-out), trash_and_abandoned_items (removing trash or belongings left behind), other_damage, other. Carpet cleaning is cleaning (with cleaning_kind), not carpet."New value: +"Charge category; carpet cleaning uses cleaning with cleaning_kind, not carpet."
    • changedInput schema / properties / as_of / description
      Previous value: -"Today's date (YYYY-MM-DD) for the deadline status. Defaults to today (UTC); send it for repeatable results."New value: +"Date for deadline status; defaults to today (UTC). Send YYYY-MM-DD for repeatable results."
    • changedInput schema / properties / claim_notice_sent_on / description
      Previous value: -"Day you sent the written notice of intent to impose a claim on the deposit (YYYY-MM-DD). Florida (due within 30 days of termination) and the District of Columbia (within 45 days): the balance is due 30 days after it; a late notice does not count."New value: +"Written claim notice sent (YYYY-MM-DD). FL: within 30 days of termination; DC:45. Balance due 30 days after timely notice; late notice does not count."
    • addedInput schema / properties / colorado_post_closing_occupancy
      Added value: +{
      +  "description": "Colorado: buyer-landlord bought this residence from seller-tenant; both executed purchase-contract post-closing occupancy before the deposit was required. True confirms all facts; false excludes; null unknown. Exception from 2027-01-01.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / county / description
      Previous value: -"Tennessee only: the county the unit is in (the landlord-tenant act applies only in counties over 75,000 by the 2010 census, 66-28-102(a)). Taken from the city when it lies in one county."New value: +"TN county: act applies over 75,000 population by 2010 census (66-28-102(a)). Inferred from city only if unambiguous."
    • changedInput schema / properties / deductions / description
      Previous value: -"What you intend to deduct (or, for a tenant, what the landlord listed). An explicit empty list means nothing is deducted (it decides the shorter no-deduction periods, e.g. Montana 10 days, Alaska 14); leave it out when that is not known yet."New value: +"Charges to deduct (or the landlord's list). Explicit [] means no deductions and selects shorter periods (MT10 days, AK14); omit when unknown."
    • changedInput schema / properties / demand_received_on / description
      Previous value: -"Day you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it."New value: +"Deposit demand received (YYYY-MM-DD): written in OK; first-class mail in MD (8-203(h)). Starts clocks in AZ/KS/OK/SC/MS."
    • changedInput schema / properties / deposit_collected_on / description
      Previous value: -"Day the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it."New value: +"Collection date; defaults to move_in_on. CA AB12 uses it. CO: proxy only if deposit_required_on is absent; never proves the exception."
    • changedInput schema / properties / deposit_in_separate_account / description
      Previous value: -"Tennessee only (66-28-301(a)): the deposit was kept in a separate account used only for deposits. No account and no damage listing means none of it can be kept (66-28-301(c))."New value: +"TN 66-28-301(a): deposit-only separate account. No account and no damage listing means none can be kept (c)."
    • addedInput schema / properties / deposit_required_on
      Added value: +{
      +  "description": "Colorado cap: date submission was required. Collection, move-out and as_of cannot establish the 2027 exception.",
      +  "format": "date",
      +  "type": "string"
      +}
    • changedInput schema / properties / forwarding_address_received_on / description
      Previous value: -"Day you received the tenant's written forwarding address (YYYY-MM-DD). Several states start or hold the clock on it (Texas, Connecticut, Iowa, Minnesota)."New value: +"Written forwarding address received (YYYY-MM-DD). Can start/hold clocks in TX, CT, IA, MN."
    • changedInput schema / properties / interest_paid_through / description
      Previous value: -"Interest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it."New value: +"Interest already paid/credited through this date; accrual starts here (annual-payment rules, e.g. SF/LA/Berkeley/CT/MA)."
    • changedInput schema / properties / interest_rate_percent / description
      Previous value: -"Annual rate the deposit account paid, where the law sets interest at the bank's rate (New Jersey, North Dakota, New Hampshire, New York, Pennsylvania, Portland), or caps it (Massachusetts: 5% or the bank's lesser rate). Without it bank-rate interest is unknown. Illinois 765 ILCS 715 uses IDFPR's published rate instead."New value: +"Annual deposit-bank rate: NJ/ND/NH/NY/PA/Portland; MA uses lesser of bank rate or 5%. Omitted bank rate is unknown. IL 765 ILCS 715 uses published IDFPR rate instead."
    • changedInput schema / properties / landlord_filed_action_on / description
      Previous value: -"Michigan only (YYYY-MM-DD): day the landlord sued for the damages claimed (554.613: sue or return the balance within 45 days). Not given: no suit assumed."New value: +"MI 554.613: date landlord sued for claimed damage (YYYY-MM-DD); sue or return balance within 45 days. Omitted assumes no suit."
    • changedInput schema / properties / lease_end_on / description
      Previous value: -"Day the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative)."New value: +"Scheduled lease end (YYYY-MM-DD), if different from actual tenancy end. Lost rent/lease-break charges use it. Deadlines use tenancy_ended_on, else move-out; scheduled end remains a later alternative."
    • changedInput schema / properties / lease_signed_or_renewed_on / description
      Previous value: -"Day the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap."New value: +"Current lease signing/last renewal (YYYY-MM-DD). GA cap from 2024-07-01; MD from 2024-10-01. Defaults move_in_on; warns later renewal may activate cap."
    • changedInput schema / properties / new_tenant_moved_in_on / description
      Previous value: -"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation)."New value: +"Re-rented: new tenant's move-in date (YYYY-MM-DD). Can shorten WV/WI periods; rent overlapping the new tenancy is unrecoverable."
    • changedInput schema / properties / owner_is_natural_person / description
      Previous value: -"Georgia only (44-7-36): the units are owned by a natural person (false: an LLC, corporation, partnership or trust owns them). The small-landlord exemption reaches only a natural person; not given, the statute is shown with the exemption as the alternative."New value: +"GA 44-7-36 only: true=natural-person owner; false=LLC/corporation/partnership/trust, which cannot claim small-landlord exemption. Omitted: exemption stays an alternative."
    • changedInput schema / properties / pet_deposit_usd / description
      Previous value: -"The part of deposit_usd that is a pet deposit (outside the cap in Missouri, Alabama, North Dakota and Saint Paul; allowed on top of it up to one month in Hawaii and Alaska, half a month in Kansas, a quarter in Nebraska)."New value: +"Pet portion of deposit_usd: outside caps in MO/AL/ND/Saint Paul; extra cap allowance of 1 month in HI/AK, half in KS, quarter in NE."
    • changedInput schema / properties / prepaid_rent_usd / description
      Previous value: -"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month. In UT its balance is returned with the deposit and counted in the refund (57-17-3(2)(b)): send only the unused part (rent already applied to a rental period is not a balance). Elsewhere the refund covers the deposit only and a warning says unused prepaid rent is owed back too."New value: +"Advance rent beyond first month, held besides deposit_usd. Counts in AK/AZ/CA/CT/MD/MI/NY caps; earns interest in CT/MA(last-month rent)/MD/Chicago; Minneapolis cap becomes half-month. UT: send only unused balance, added to refund (57-17-3(2)(b)); elsewhere refund is deposit-only with prepaid-return warning."
    • changedInput schema / properties / rent_ordinance_covered / description
      Previous value: -"The unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it."New value: +"Covered by LA RSO or Berkeley Rent Ordinance: required for their deposit interest. Unknown interest stays beside, not inside, refund."
    • changedInput schema / properties / renter_notice_served_on / description
      Previous value: -"Utah only (YYYY-MM-DD): day the renter served the 57-17-3(3) notice after the deadline passed. The owner then has five business days to comply (57-17-3(5)); without the notice there is no relief under 57-17-5."New value: +"UT 57-17-3(3) renter notice served after deadline (YYYY-MM-DD). Owner gets 5 business days to comply (5); no notice means no 57-17-5 relief."
    • changedInput schema / properties / returned / description
      Previous value: -"What the landlord has returned so far and when. With it, timeliness says whether the refund and the itemized statement were on time and how many days late."New value: +"Prior refund/statement and date; timeliness assesses each duty and days late."
    • changedInput schema / properties / small_landlord / description
      Previous value: -"California AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap."New value: +"CA AB 12: natural person or LLC of natural persons, at most 2 properties containing at most 4 units total, tenant not a service member;2 month cap."
    • changedInput schema / properties / statement_sent_on / description
      Previous value: -"Day you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell."New value: +"Itemized statement sent/delivered (YYYY-MM-DD), to assess timeliness; documentation.itemized_statement alone supplies no date."
    • changedInput schema / properties / tenancy_ended_on / description
      Previous value: -"When the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one)."New value: +"Actual tenancy end: lease end, early termination or accepted surrender (YYYY-MM-DD). End-of-tenancy deadlines use this; send a different scheduled end as lease_end_on. Legacy scheduled ends still work, with an earlier move-out alternative where applicable."
    • changedInput schema / properties / tenancy_type / description
      Previous value: -"written_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed."New value: +"written_lease or at_will. ME 6033(2): written period<=30 days, at-will 21. MA 15 B(4):30 days from move-out(at-will) or lease end(written). Omitted when vacated_on precedes tenancy_ended_on: earlier at-will date leads; other date listed."
    • changedInput schema / properties / tenant_abandoned / description
      Previous value: -"The tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed."New value: +"Abandoned or evicted: MD 8-203(h) clock starts at written demand; WA 59.18.280 at landlord awareness; LA 9:3251(C) one-month rule excluded. Omitted: inferred from tenant_gave_proper_notice=false. If vacated_on precedes tenancy_ended_on, earlier abandonment clock leads; other date listed."
    • changedInput schema / properties / tenant_age_60_plus / description
      Previous value: -"A person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it."New value: +"An occupant is 60+ (NH 540-A:5,I: owner-occupied exemption excluded). tenant_age_62_plus=true implies this."
    • changedInput schema / properties / tenant_gave_forwarding_address / description
      Previous value: -"False when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on."New value: +"False: no written forwarding address ever given. May relieve penalties in IL/PA/OH/SC/NH; DE also accepts a lease notice address. forwarding_address_received_on implies true."
    • addedOutput schema / $defs / Outcome / properties / obligation_mode
      Added value: +{
      +  "default": "all",
      +  "enum": [
      +    "all",
      +    "alternative"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / $defs / PenaltyExposure / properties / not_applicable_reason
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  3. Changed1 schema field changed
    • addedOutput schema / $defs / ForfeitureCheck / properties / court_rule_due_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  4. Changed10 schema fields changed
    • addedInput schema / properties / county
      Added value: +{
      +  "description": "Tennessee only: the county the unit is in (the landlord-tenant act applies only in counties over 75,000 by the 2010 census, 66-28-102(a)). Taken from the city when it lies in one county.",
      +  "maxLength": 60,
      +  "type": "string"
      +}
    • addedInput schema / properties / deposit_in_separate_account
      Added value: +{
      +  "description": "Tennessee only (66-28-301(a)): the deposit was kept in a separate account used only for deposits. No account and no damage listing means none of it can be kept (66-28-301(c)).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / landlord_filed_action_on
      Added value: +{
      +  "description": "Michigan only (YYYY-MM-DD): day the landlord sued for the damages claimed (554.613: sue or return the balance within 45 days). Not given: no suit assumed.",
      +  "format": "date",
      +  "type": "string"
      +}
    • addedInput schema / properties / owner_is_natural_person
      Added value: +{
      +  "description": "Georgia only (44-7-36): the units are owned by a natural person (false: an LLC, corporation, partnership or trust owns them). The small-landlord exemption reaches only a natural person; not given, the statute is shown with the exemption as the alternative.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / prepaid_rent_usd / description
      Previous value: -"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month."New value: +"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month. In UT its balance is returned with the deposit and counted in the refund (57-17-3(2)(b)): send only the unused part (rent already applied to a rental period is not a balance). Elsewhere the refund covers the deposit only and a warning says unused prepaid rent is owed back too."
    • addedInput schema / properties / renter_notice_served_on
      Added value: +{
      +  "description": "Utah only (YYYY-MM-DD): day the renter served the 57-17-3(3) notice after the deadline passed. The owner then has five business days to comply (57-17-3(5)); without the notice there is no relief under 57-17-5.",
      +  "format": "date",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / Deprecation
      Added value: +{
      +  "properties": {
      +    "field": {
      +      "type": "string"
      +    },
      +    "until": {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    "use": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "field",
      +    "until",
      +    "use"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / $defs / DocumentationDuty / properties / met / enum
      Previous value: -[
      -  "yes",
      -  "no",
      -  "unknown"
      -]New value: +[
      +  "yes",
      +  "no",
      +  "unknown",
      +  "not_yet_due"
      +]
    • addedOutput schema / $defs / PenaltyExposure / properties / fees_only_without_multiple
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / deprecation
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/Deprecation"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  5. Changed7 schema fields changed
    • addedOutput schema / $defs / Reading
      Added value: +{
      +  "properties": {
      +    "counts": {
      +      "$ref": "#/$defs/ReadingCounts"
      +    },
      +    "findings": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "notes",
      +        "document"
      +      ],
      +      "type": "string"
      +    },
      +    "model": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "notes": {
      +      "items": {
      +        "$ref": "#/$defs/ReadingNote"
      +      },
      +      "type": "array"
      +    },
      +    "prompt_version": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "kind",
      +    "counts",
      +    "findings"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ReadingCounts
      Added value: +{
      +  "properties": {
      +    "ai": {
      +      "type": "integer"
      +    },
      +    "parser": {
      +      "type": "integer"
      +    },
      +    "total": {
      +      "type": "integer"
      +    },
      +    "unmatched": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "ai",
      +    "parser",
      +    "unmatched"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ReadingNote
      Added value: +{
      +  "properties": {
      +    "code": {
      +      "type": "string"
      +    },
      +    "finding_ids": {
      +      "default": [],
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "kind": {
      +      "enum": [
      +        "warning",
      +        "assumption"
      +      ],
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Review
      Added value: +{
      +  "properties": {
      +    "ai_read": {
      +      "default": 0,
      +      "type": "integer"
      +    },
      +    "note": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "reading_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "status": {
      +      "default": "verified",
      +      "enum": [
      +        "draft",
      +        "verified"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / reading
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Reading"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / request_hash
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / properties / review
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Review"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  6. Changed11 schema fields changed
    • changedInput schema / $defs / Deduction / properties / description / description
      Previous value: -"Your own short note (e.g. 'bedroom carpet, pet stains'). Never stored, hashed or returned; the statement uses the category."New value: +"What was damaged or owed and the repair or charge (e.g. 'bedroom carpet: pet stains, two areas patched'). Printed under the line on the itemized statement you download (HTML or PDF); never stored, logged or hashed, and not in the result."
    • addedInput schema / $defs / Deduction / properties / good_faith_estimate
      Added value: +{
      +  "description": "The amount is a good-faith estimate: the repair cannot reasonably be finished within the return period, or the vendor's bills have not arrived (California 1950.5(h)(3)). The receipts then follow within 14 days of the repair or the documents.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / demand_received_on / description
      Previous value: -"Day you received the tenant's written demand for the deposit (YYYY-MM-DD). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it."New value: +"Day you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it."
    • addedInput schema / properties / expect_ruleset
      Added value: +{
      +  "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.",
      +  "type": "string"
      +}
    • addedInput schema / properties / serve_pinned
      Added value: +{
      +  "default": false,
      +  "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.",
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / Deadline / properties / reverted_after
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / Provenance / properties / rules_as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / ResultSignature
      Added value: +{
      +  "properties": {
      +    "jws": {
      +      "type": "string"
      +    },
      +    "payload": {
      +      "$ref": "#/$defs/ResultSignaturePayload"
      +    },
      +    "verify_code": {
      +      "type": "string"
      +    },
      +    "verify_url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "jws",
      +    "payload",
      +    "verify_code",
      +    "verify_url"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ResultSignaturePayload
      Added value: +{
      +  "properties": {
      +    "capability": {
      +      "type": "string"
      +    },
      +    "engine_version": {
      +      "type": "string"
      +    },
      +    "issued_at": {
      +      "type": "string"
      +    },
      +    "kid": {
      +      "type": "string"
      +    },
      +    "operation": {
      +      "type": "string"
      +    },
      +    "result_hash": {
      +      "type": "string"
      +    },
      +    "ruleset_hash": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "ruleset_version": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "v": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "v",
      +    "kid",
      +    "capability",
      +    "operation",
      +    "ruleset_version",
      +    "ruleset_hash",
      +    "engine_version",
      +    "result_hash",
      +    "issued_at"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / $defs / TimelyCheck / properties / status / enum
      Previous value: -[
      -  "on_time",
      -  "late",
      -  "not_yet_due",
      -  "overdue",
      -  "not_started",
      -  "none_in_statute"
      -]New value: +[
      +  "on_time",
      +  "late",
      +  "not_yet_due",
      +  "overdue",
      +  "not_started",
      +  "none_in_statute",
      +  "reverted"
      +]
    • addedOutput schema / properties / signature
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/ResultSignature"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  7. Changed3 schema fields changed
    • addedOutput schema / $defs / NoteFormat
      Added value: +{
      +  "properties": {
      +    "bold": {
      +      "default": false,
      +      "type": "boolean"
      +    },
      +    "larger_than_body_pt": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "min_pt": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Statement / properties / notes
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/StatementNote"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / $defs / StatementNote
      Added value: +{
      +  "properties": {
      +    "audience": {
      +      "enum": [
      +        "tenant",
      +        "manager"
      +      ],
      +      "type": "string"
      +    },
      +    "blanks": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "citation": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "format": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/NoteFormat"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "kind": {
      +      "default": "note",
      +      "enum": [
      +        "note",
      +        "required_notice",
      +        "attestation"
      +      ],
      +      "type": "string"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "audience"
      +  ],
      +  "type": "object"
      +}
  8. Changed5 schema fields changed
    • addedInput schema / properties / deposit_usd / description
      Added value: +"Security deposit held, dollars."
    • addedInput schema / properties / documentation / type
      Added value: +"object"
    • addedInput schema / properties / returned / type
      Added value: +"object"
    • addedInput schema / properties / state / description
      Added value: +"US state, 2-letter code (e.g. 'CA'); a state name also works."
    • addedInput schema / properties / vacated_on / description
      Added value: +"Day the tenant moved out and returned possession (YYYY-MM-DD)."
  9. Changed470 schema fields changed
    • changedInput schema / $defs / Deduction / properties / amount_usd / anyOf
      Previous value: -[
      -  {
      -    "maximum": 10000000,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 10000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / Deduction / properties / amount_usd / title
      Removed value: -"Amount Usd"
    • changedInput schema / $defs / Deduction / properties / category / description
      Previous value: -"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, other_damage, other."New value: +"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, moving_and_storage, reletting_costs (advertising or a broker to re-rent after an early move-out), trash_and_abandoned_items (removing trash or belongings left behind), other_damage, other. Carpet cleaning is cleaning (with cleaning_kind), not carpet."
    • changedInput schema / $defs / Deduction / properties / category / enum
      Previous value: -[
      -  "unpaid_rent",
      -  "unpaid_utilities",
      -  "cleaning",
      -  "carpet",
      -  "flooring",
      -  "paint",
      -  "blinds_window_coverings",
      -  "appliance",
      -  "fixture_or_hardware",
      -  "wall_or_door_repair",
      -  "key_or_lock",
      -  "late_fees",
      -  "lease_break_fee",
      -  "other_damage",
      -  "other"
      -]New value: +[
      +  "unpaid_rent",
      +  "unpaid_utilities",
      +  "cleaning",
      +  "carpet",
      +  "flooring",
      +  "paint",
      +  "blinds_window_coverings",
      +  "appliance",
      +  "fixture_or_hardware",
      +  "wall_or_door_repair",
      +  "key_or_lock",
      +  "late_fees",
      +  "lease_break_fee",
      +  "moving_and_storage",
      +  "reletting_costs",
      +  "trash_and_abandoned_items",
      +  "other_damage",
      +  "other"
      +]
    • removedInput schema / $defs / Deduction / properties / category / title
      Removed value: -"Category"
    • removedInput schema / $defs / Deduction / properties / caused_by_tenant / title
      Removed value: -"Caused By Tenant"
    • addedInput schema / $defs / Deduction / properties / cleaning_kind
      Added value: +{
      +  "description": "cleaning only: beyond_wear (the unit was left dirtier than normal use; cleaning to restore its move-in condition), routine (ordinary cleaning after normal use, which most states treat as normal wear) or unknown. Where the statute does not name cleaning, an unknown kind is 'depends'.",
      +  "enum": [
      +    "beyond_wear",
      +    "routine",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / $defs / Deduction / properties / description / anyOf
      Removed value: -[
      -  {
      -    "maxLength": 200,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / description / default
      Removed value: -null
    • addedInput schema / $defs / Deduction / properties / description / maxLength
      Added value: +200
    • removedInput schema / $defs / Deduction / properties / description / title
      Removed value: -"Description"
    • addedInput schema / $defs / Deduction / properties / description / type
      Added value: +"string"
    • removedInput schema / $defs / Deduction / properties / has_photos / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / has_photos / default
      Removed value: -null
    • removedInput schema / $defs / Deduction / properties / has_photos / title
      Removed value: -"Has Photos"
    • addedInput schema / $defs / Deduction / properties / has_photos / type
      Added value: +"boolean"
    • removedInput schema / $defs / Deduction / properties / has_receipt / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / has_receipt / default
      Removed value: -null
    • removedInput schema / $defs / Deduction / properties / has_receipt / title
      Removed value: -"Has Receipt"
    • addedInput schema / $defs / Deduction / properties / has_receipt / type
      Added value: +"boolean"
    • changedInput schema / $defs / Deduction / properties / item_age_years / anyOf
      Previous value: -[
      -  {
      -    "maximum": 100,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 100,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / Deduction / properties / item_age_years / default
      Removed value: -null
    • removedInput schema / $defs / Deduction / properties / item_age_years / title
      Removed value: -"Item Age Years"
    • removedInput schema / $defs / Deduction / properties / item_installed_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / item_installed_on / default
      Removed value: -null
    • addedInput schema / $defs / Deduction / properties / item_installed_on / format
      Added value: +"date"
    • removedInput schema / $defs / Deduction / properties / item_installed_on / title
      Removed value: -"Item Installed On"
    • addedInput schema / $defs / Deduction / properties / item_installed_on / type
      Added value: +"string"
    • removedInput schema / $defs / Deduction / properties / late_payments / anyOf
      Removed value: -[
      -  {
      -    "maximum": 600,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / late_payments / default
      Removed value: -null
    • addedInput schema / $defs / Deduction / properties / late_payments / maximum
      Added value: +600
    • addedInput schema / $defs / Deduction / properties / late_payments / minimum
      Added value: +1
    • removedInput schema / $defs / Deduction / properties / late_payments / title
      Removed value: -"Late Payments"
    • addedInput schema / $defs / Deduction / properties / late_payments / type
      Added value: +"integer"
    • addedInput schema / $defs / Deduction / properties / rent_through
      Added value: +{
      +  "description": "unpaid_rent only: the last day the rent charged covers. With new_tenant_moved_in_on it decides how much of the rent overlaps the new tenancy (not recoverable: the landlord cannot collect rent twice for the same days).",
      +  "format": "date",
      +  "type": "string"
      +}
    • changedInput schema / $defs / Deduction / properties / useful_life_years / anyOf
      Previous value: -[
      -  {
      -    "exclusiveMinimum": 0,
      -    "maximum": 100,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "exclusiveMinimum": 0,
      +    "maximum": 100,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / Deduction / properties / useful_life_years / default
      Removed value: -null
    • removedInput schema / $defs / Deduction / properties / useful_life_years / title
      Removed value: -"Useful Life Years"
    • removedInput schema / $defs / Deduction / properties / utility_kind / anyOf
      Removed value: -[
      -  {
      -    "enum": [
      -      "water",
      -      "sewer",
      -      "electric",
      -      "gas",
      -      "heat",
      -      "trash",
      -      "internet",
      -      "other"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Deduction / properties / utility_kind / default
      Removed value: -null
    • addedInput schema / $defs / Deduction / properties / utility_kind / enum
      Added value: +[
      +  "water",
      +  "sewer",
      +  "electric",
      +  "gas",
      +  "heat",
      +  "trash",
      +  "internet",
      +  "other"
      +]
    • removedInput schema / $defs / Deduction / properties / utility_kind / title
      Removed value: -"Utility Kind"
    • addedInput schema / $defs / Deduction / properties / utility_kind / type
      Added value: +"string"
    • addedInput schema / $defs / Deduction / properties / work_kind
      Added value: +{
      +  "description": "repair (restores the item: never depreciated), replace (a new item: prorated by the old one's remaining life where the rule does), or cleaning (e.g. carpet cleaning: judged as a cleaning line).",
      +  "enum": [
      +    "repair",
      +    "replace",
      +    "cleaning"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / $defs / Deduction / title
      Removed value: -"Deduction"
    • addedInput schema / $defs / Documentation / properties / cleaning_notice
      Added value: +{
      +  "description": "You gave the tenant written notice of the cleaning needed and time to do it before charging for cleaning (Montana 70-25-201(3): 24 hours).",
      +  "type": "boolean"
      +}
    • removedInput schema / $defs / Documentation / properties / itemized_statement / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Documentation / properties / itemized_statement / default
      Removed value: -null
    • removedInput schema / $defs / Documentation / properties / itemized_statement / title
      Removed value: -"Itemized Statement"
    • addedInput schema / $defs / Documentation / properties / itemized_statement / type
      Added value: +"boolean"
    • addedInput schema / $defs / Documentation / properties / move_in_condition_statement
      Added value: +{
      +  "description": "You gave the tenant a written move-in condition statement or checklist (Montana 70-25-206, Washington 59.18.260; listed as a duty in Georgia 44-7-33(a), Kentucky 383.580(2), Michigan 554.608 and Virginia 55.1-1214).",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / Documentation / properties / move_out_list
      Added value: +{
      +  "description": "You inspected the unit and made the move-out damage list in time (Georgia 44-7-33(b): within 3 business days).",
      +  "type": "boolean"
      +}
    • removedInput schema / $defs / Documentation / properties / photos_after_repair / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Documentation / properties / photos_after_repair / default
      Removed value: -null
    • removedInput schema / $defs / Documentation / properties / photos_after_repair / title
      Removed value: -"Photos After Repair"
    • addedInput schema / $defs / Documentation / properties / photos_after_repair / type
      Added value: +"boolean"
    • removedInput schema / $defs / Documentation / properties / photos_move_in / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Documentation / properties / photos_move_in / default
      Removed value: -null
    • removedInput schema / $defs / Documentation / properties / photos_move_in / title
      Removed value: -"Photos Move In"
    • addedInput schema / $defs / Documentation / properties / photos_move_in / type
      Added value: +"boolean"
    • removedInput schema / $defs / Documentation / properties / photos_move_out / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Documentation / properties / photos_move_out / default
      Removed value: -null
    • removedInput schema / $defs / Documentation / properties / photos_move_out / title
      Removed value: -"Photos Move Out"
    • addedInput schema / $defs / Documentation / properties / photos_move_out / type
      Added value: +"boolean"
    • removedInput schema / $defs / Documentation / properties / receipts / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Documentation / properties / receipts / default
      Removed value: -null
    • removedInput schema / $defs / Documentation / properties / receipts / title
      Removed value: -"Receipts"
    • addedInput schema / $defs / Documentation / properties / receipts / type
      Added value: +"boolean"
    • removedInput schema / $defs / Documentation / title
      Removed value: -"Documentation"
    • changedInput schema / $defs / Returned / properties / amount_usd / anyOf
      Previous value: -[
      -  {
      -    "maximum": 10000000,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 10000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / $defs / Returned / properties / amount_usd / default
      Removed value: -null
    • removedInput schema / $defs / Returned / properties / amount_usd / title
      Removed value: -"Amount Usd"
    • addedInput schema / $defs / Returned / properties / method
      Added value: +{
      +  "description": "How the money went back: check, electronic (direct deposit or electronic transfer) or other. Some statutes key on it (Michigan 554.609(3): an electronic balance may follow the notice by 10 days; California 1950.5 as amended by AB 414: electronic return when the deposit or rent was paid electronically).",
      +  "enum": [
      +    "check",
      +    "electronic",
      +    "other"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / $defs / Returned / properties / on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / $defs / Returned / properties / on / default
      Removed value: -null
    • addedInput schema / $defs / Returned / properties / on / format
      Added value: +"date"
    • removedInput schema / $defs / Returned / properties / on / title
      Removed value: -"On"
    • addedInput schema / $defs / Returned / properties / on / type
      Added value: +"string"
    • removedInput schema / $defs / Returned / properties / what / title
      Removed value: -"What"
    • removedInput schema / $defs / Returned / title
      Removed value: -"Returned"
    • removedInput schema / properties / as_of / title
      Removed value: -"As Of"
    • removedInput schema / properties / audit / title
      Removed value: -"Audit"
    • removedInput schema / properties / building_units / anyOf
      Removed value: -[
      -  {
      -    "maximum": 100000,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / building_units / default
      Removed value: -null
    • addedInput schema / properties / building_units / maximum
      Added value: +100000
    • addedInput schema / properties / building_units / minimum
      Added value: +1
    • removedInput schema / properties / building_units / title
      Removed value: -"Building Units"
    • addedInput schema / properties / building_units / type
      Added value: +"integer"
    • removedInput schema / properties / city / anyOf
      Removed value: -[
      -  {
      -    "maxLength": 80,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / city / default
      Removed value: -null
    • addedInput schema / properties / city / maxLength
      Added value: +80
    • removedInput schema / properties / city / title
      Removed value: -"City"
    • addedInput schema / properties / city / type
      Added value: +"string"
    • removedInput schema / properties / claim_notice_sent_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / claim_notice_sent_on / default
      Removed value: -null
    • addedInput schema / properties / claim_notice_sent_on / format
      Added value: +"date"
    • removedInput schema / properties / claim_notice_sent_on / title
      Removed value: -"Claim Notice Sent On"
    • addedInput schema / properties / claim_notice_sent_on / type
      Added value: +"string"
    • 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 / contractor_needed / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / contractor_needed / default
      Removed value: -null
    • removedInput schema / properties / contractor_needed / title
      Removed value: -"Contractor Needed"
    • addedInput schema / properties / contractor_needed / type
      Added value: +"boolean"
    • changedInput schema / properties / deductions / description
      Previous value: -"What you intend to deduct (or, for a tenant, what the landlord listed); may be empty."New value: +"What you intend to deduct (or, for a tenant, what the landlord listed). An explicit empty list means nothing is deducted (it decides the shorter no-deduction periods, e.g. Montana 10 days, Alaska 14); leave it out when that is not known yet."
    • removedInput schema / properties / deductions / title
      Removed value: -"Deductions"
    • removedInput schema / properties / demand_received_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / demand_received_on / default
      Removed value: -null
    • addedInput schema / properties / demand_received_on / format
      Added value: +"date"
    • removedInput schema / properties / demand_received_on / title
      Removed value: -"Demand Received On"
    • addedInput schema / properties / demand_received_on / type
      Added value: +"string"
    • addedInput schema / properties / deposit_collected_on
      Added value: +{
      +  "description": "Day the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it.",
      +  "format": "date",
      +  "type": "string"
      +}
    • removedInput schema / properties / deposit_usd / title
      Removed value: -"Deposit Usd"
    • removedInput schema / properties / forwarding_address_received_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / forwarding_address_received_on / default
      Removed value: -null
    • addedInput schema / properties / forwarding_address_received_on / format
      Added value: +"date"
    • removedInput schema / properties / forwarding_address_received_on / title
      Removed value: -"Forwarding Address Received On"
    • addedInput schema / properties / forwarding_address_received_on / type
      Added value: +"string"
    • addedInput schema / properties / furnished
      Added value: +{
      +  "description": "The unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / interest_paid_through
      Added value: +{
      +  "description": "Interest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it.",
      +  "format": "date",
      +  "type": "string"
      +}
    • addedInput schema / properties / interest_rate_percent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 25,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Annual rate the deposit account paid, where the law sets interest at the bank's rate (New Jersey, North Dakota, New Hampshire, New York, Pennsylvania, Portland), or caps it (Massachusetts: 5% or the bank's lesser rate). Without it bank-rate interest is unknown. Illinois 765 ILCS 715 uses IDFPR's published rate instead."
      +}
    • addedInput schema / properties / landlord_units_owned
      Added value: +{
      +  "description": "Rental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt).",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / lease_end_on
      Added value: +{
      +  "description": "Day the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative).",
      +  "format": "date",
      +  "type": "string"
      +}
    • removedInput schema / properties / lease_return_days / anyOf
      Removed value: -[
      -  {
      -    "maximum": 365,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / lease_return_days / default
      Removed value: -null
    • addedInput schema / properties / lease_return_days / maximum
      Added value: +365
    • addedInput schema / properties / lease_return_days / minimum
      Added value: +0
    • removedInput schema / properties / lease_return_days / title
      Removed value: -"Lease Return Days"
    • addedInput schema / properties / lease_return_days / type
      Added value: +"integer"
    • addedInput schema / properties / lease_signed_or_renewed_on
      Added value: +{
      +  "description": "Day the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap.",
      +  "format": "date",
      +  "type": "string"
      +}
    • addedInput schema / properties / lease_term_months
      Added value: +{
      +  "description": "Term of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones.",
      +  "maximum": 600,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / monthly_rent_usd / anyOf
      Previous value: -[
      -  {
      -    "maximum": 10000000,
      -    "minimum": 0,
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maximum": 10000000,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / monthly_rent_usd / default
      Removed value: -null
    • removedInput schema / properties / monthly_rent_usd / title
      Removed value: -"Monthly Rent Usd"
    • removedInput schema / properties / move_in_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / move_in_on / default
      Removed value: -null
    • addedInput schema / properties / move_in_on / format
      Added value: +"date"
    • removedInput schema / properties / move_in_on / title
      Removed value: -"Move In On"
    • addedInput schema / properties / move_in_on / type
      Added value: +"string"
    • removedInput schema / properties / new_tenant_moved_in_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / new_tenant_moved_in_on / default
      Removed value: -null
    • changedInput schema / properties / new_tenant_moved_in_on / description
      Previous value: -"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier."New value: +"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation)."
    • addedInput schema / properties / new_tenant_moved_in_on / format
      Added value: +"date"
    • removedInput schema / properties / new_tenant_moved_in_on / title
      Removed value: -"New Tenant Moved In On"
    • addedInput schema / properties / new_tenant_moved_in_on / type
      Added value: +"string"
    • addedInput schema / properties / new_tenant_rent_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 10000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Monthly rent the new tenant pays (with new_tenant_moved_in_on): the rent received for overlapping days is credited against rent claimed for them."
      +}
    • addedInput schema / properties / nonstandard_provision_signed
      Added value: +{
      +  "description": "Wisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / owner_occupied
      Added value: +{
      +  "description": "The landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pet_deposit_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 10000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "The part of deposit_usd that is a pet deposit (outside the cap in Missouri, Alabama, North Dakota and Saint Paul; allowed on top of it up to one month in Hawaii and Alaska, half a month in Kansas, a quarter in Nebraska)."
      +}
    • addedInput schema / properties / prepaid_rent_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 10000000,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month."
      +}
    • addedInput schema / properties / rent_ordinance_covered
      Added value: +{
      +  "description": "The unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / returned / $ref
      Added value: +"#/$defs/Returned"
    • removedInput schema / properties / returned / anyOf
      Removed value: -[
      -  {
      -    "$ref": "#/$defs/Returned"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / returned / default
      Removed value: -null
    • addedInput schema / properties / small_landlord
      Added value: +{
      +  "description": "California AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / state / title
      Removed value: -"State"
    • addedInput schema / properties / statement_sent_on
      Added value: +{
      +  "description": "Day you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell.",
      +  "format": "date",
      +  "type": "string"
      +}
    • removedInput schema / properties / tenancy_ended_on / anyOf
      Removed value: -[
      -  {
      -    "format": "date",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / tenancy_ended_on / default
      Removed value: -null
    • changedInput schema / properties / tenancy_ended_on / description
      Previous value: -"Lease end or termination date (YYYY-MM-DD), if different."New value: +"When the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one)."
    • addedInput schema / properties / tenancy_ended_on / format
      Added value: +"date"
    • removedInput schema / properties / tenancy_ended_on / title
      Removed value: -"Tenancy Ended On"
    • addedInput schema / properties / tenancy_ended_on / type
      Added value: +"string"
    • addedInput schema / properties / tenancy_type
      Added value: +{
      +  "description": "written_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed.",
      +  "enum": [
      +    "written_lease",
      +    "at_will"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / tenant_abandoned
      Added value: +{
      +  "description": "The tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tenant_age_60_plus
      Added value: +{
      +  "description": "A person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tenant_age_62_plus
      Added value: +{
      +  "description": "The tenant is 62 or older (Connecticut: a one-month cap).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tenant_gave_forwarding_address
      Added value: +{
      +  "description": "False when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / tenant_gave_proper_notice / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / tenant_gave_proper_notice / default
      Removed value: -null
    • removedInput schema / properties / tenant_gave_proper_notice / title
      Removed value: -"Tenant Gave Proper Notice"
    • addedInput schema / properties / tenant_gave_proper_notice / type
      Added value: +"boolean"
    • addedInput schema / properties / third_party_managed
      Added value: +{
      +  "description": "A third party manages the unit or collects rent for a fee.",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / vacated_on / title
      Removed value: -"Vacated On"
    • removedInput schema / title
      Removed value: -"deposit_settlement_settleArguments"
    • removedOutput schema / $defs / Citation / properties / accessed / title
      Removed value: -"Accessed"
    • removedOutput schema / $defs / Citation / properties / quote / description
      Removed value: -"Short quote of the rule (or our summary when verbatim is false)."
    • removedOutput schema / $defs / Citation / properties / quote / title
      Removed value: -"Quote"
    • removedOutput schema / $defs / Citation / properties / rule / description
      Removed value: -"What the citation supports: deadline, interest, penalty, ..."
    • removedOutput schema / $defs / Citation / properties / rule / title
      Removed value: -"Rule"
    • removedOutput schema / $defs / Citation / properties / section / title
      Removed value: -"Section"
    • removedOutput schema / $defs / Citation / properties / source_title / title
      Removed value: -"Source Title"
    • removedOutput schema / $defs / Citation / properties / url / title
      Removed value: -"Url"
    • removedOutput schema / $defs / Citation / properties / verbatim / title
      Removed value: -"Verbatim"
    • removedOutput schema / $defs / Citation / title
      Removed value: -"Citation"
    • addedOutput schema / $defs / Deadline / properties / alternatives
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/DeadlineAlternative"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / $defs / Deadline / properties / counting / title
      Removed value: -"Counting"
    • removedOutput schema / $defs / Deadline / properties / days / description
      Removed value: -"Period in days (None: months or none)."
    • removedOutput schema / $defs / Deadline / properties / days / title
      Removed value: -"Days"
    • removedOutput schema / $defs / Deadline / properties / days_remaining / description
      Removed value: -"Days from as_of to return_by (negative when overdue)."
    • removedOutput schema / $defs / Deadline / properties / days_remaining / title
      Removed value: -"Days Remaining"
    • removedOutput schema / $defs / Deadline / properties / extended_to / description
      Removed value: -"Where the state's code rolls a last day on a weekend or holiday to the next business day: that later date. Act by return_by; this is the legal outer limit."
    • removedOutput schema / $defs / Deadline / properties / extended_to / title
      Removed value: -"Extended To"
    • addedOutput schema / $defs / Deadline / properties / interest_due_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / Deadline / properties / itemization_by / description
      Removed value: -"Last day for the itemized statement (often the same day; earlier in Chicago, later in Louisiana)."
    • removedOutput schema / $defs / Deadline / properties / itemization_by / title
      Removed value: -"Itemization By"
    • removedOutput schema / $defs / Deadline / properties / months / description
      Removed value: -"Period in calendar months, if any."
    • removedOutput schema / $defs / Deadline / properties / months / title
      Removed value: -"Months"
    • removedOutput schema / $defs / Deadline / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / Deadline / properties / return_by / description
      Removed value: -"Last day to return the deposit."
    • removedOutput schema / $defs / Deadline / properties / return_by / title
      Removed value: -"Return By"
    • removedOutput schema / $defs / Deadline / properties / start_date / title
      Removed value: -"Start Date"
    • removedOutput schema / $defs / Deadline / properties / start_event / description
      Removed value: -"What starts the clock, in words."
    • removedOutput schema / $defs / Deadline / properties / start_event / title
      Removed value: -"Start Event"
    • removedOutput schema / $defs / Deadline / properties / status / description
      Removed value: -"upcoming, due_today, overdue; not_started when the start event is not given yet; none_in_statute when the statute sets no deadline (Kentucky, Tennessee)."
    • changedOutput schema / $defs / Deadline / properties / status / enum
      Previous value: -[
      -  "upcoming",
      -  "due_today",
      -  "overdue",
      -  "not_started",
      -  "none_in_statute"
      -]New value: +[
      +  "upcoming",
      +  "due_today",
      +  "overdue",
      +  "not_started",
      +  "none_in_statute",
      +  "reverted",
      +  "no_deposit",
      +  "met",
      +  "late"
      +]
    • removedOutput schema / $defs / Deadline / properties / status / title
      Removed value: -"Status"
    • removedOutput schema / $defs / Deadline / title
      Removed value: -"Deadline"
    • addedOutput schema / $defs / DeadlineAlternative
      Added value: +{
      +  "properties": {
      +    "applies_if": {
      +      "type": "string"
      +    },
      +    "on": {
      +      "anyOf": [
      +        {
      +          "format": "date",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "send": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "applies_if",
      +    "send"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / DeductionResult / properties / allowed / title
      Removed value: -"Allowed"
    • removedOutput schema / $defs / DeductionResult / properties / amount_allowed_usd / description
      Removed value: -"What the rule lets you keep for this line ('depends' lines: not counted in totals until you confirm)."
    • removedOutput schema / $defs / DeductionResult / properties / amount_allowed_usd / title
      Removed value: -"Amount Allowed Usd"
    • removedOutput schema / $defs / DeductionResult / properties / amount_claimed_usd / title
      Removed value: -"Amount Claimed Usd"
    • changedOutput schema / $defs / DeductionResult / properties / basis / enum
      Previous value: -[
      -  "allowed_category",
      -  "normal_wear",
      -  "not_allowed",
      -  "unclassified",
      -  "forfeited"
      -]New value: +[
      +  "allowed_category",
      +  "normal_wear",
      +  "not_allowed",
      +  "unclassified",
      +  "forfeited",
      +  "statutory_bar",
      +  "mitigation",
      +  "excluded_by_fee",
      +  "documentation_missing"
      +]
    • removedOutput schema / $defs / DeductionResult / properties / basis / title
      Removed value: -"Basis"
    • changedOutput schema / $defs / DeductionResult / properties / category / enum
      Previous value: -[
      -  "unpaid_rent",
      -  "unpaid_utilities",
      -  "cleaning",
      -  "carpet",
      -  "flooring",
      -  "paint",
      -  "blinds_window_coverings",
      -  "appliance",
      -  "fixture_or_hardware",
      -  "wall_or_door_repair",
      -  "key_or_lock",
      -  "late_fees",
      -  "lease_break_fee",
      -  "other_damage",
      -  "other"
      -]New value: +[
      +  "unpaid_rent",
      +  "unpaid_utilities",
      +  "cleaning",
      +  "carpet",
      +  "flooring",
      +  "paint",
      +  "blinds_window_coverings",
      +  "appliance",
      +  "fixture_or_hardware",
      +  "wall_or_door_repair",
      +  "key_or_lock",
      +  "late_fees",
      +  "lease_break_fee",
      +  "moving_and_storage",
      +  "reletting_costs",
      +  "trash_and_abandoned_items",
      +  "other_damage",
      +  "other"
      +]
    • removedOutput schema / $defs / DeductionResult / properties / category / title
      Removed value: -"Category"
    • removedOutput schema / $defs / DeductionResult / properties / documentation_needed / title
      Removed value: -"Documentation Needed"
    • addedOutput schema / $defs / DeductionResult / properties / exclusive_option
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "fee",
      +        "actual"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / DeductionResult / properties / notes / title
      Removed value: -"Notes"
    • addedOutput schema / $defs / DeductionResult / properties / range_high_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / DeductionResult / properties / range_low_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / DeductionResult / title
      Removed value: -"DeductionResult"
    • addedOutput schema / $defs / DepositCapCheck / properties / alternative_cap_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / DepositCapCheck / properties / cap_usd / title
      Removed value: -"Cap Usd"
    • removedOutput schema / $defs / DepositCapCheck / properties / citation / title
      Removed value: -"Citation"
    • addedOutput schema / $defs / DepositCapCheck / properties / counted_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / DepositCapCheck / properties / exceeded / title
      Removed value: -"Exceeded"
    • removedOutput schema / $defs / DepositCapCheck / properties / months_rent / description
      Removed value: -"None: no statutory cap."
    • removedOutput schema / $defs / DepositCapCheck / properties / months_rent / title
      Removed value: -"Months Rent"
    • removedOutput schema / $defs / DepositCapCheck / properties / note / title
      Removed value: -"Note"
    • addedOutput schema / $defs / DepositCapCheck / properties / status
      Added value: +{
      +  "default": "unknown",
      +  "enum": [
      +    "within",
      +    "exceeded",
      +    "depends",
      +    "unknown",
      +    "no_cap",
      +    "not_applicable"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / $defs / DepositCapCheck / properties / variants / description
      Removed value: -"Other caps by tenancy type or term; checked against the main."
    • removedOutput schema / $defs / DepositCapCheck / properties / variants / title
      Removed value: -"Variants"
    • removedOutput schema / $defs / DepositCapCheck / title
      Removed value: -"DepositCapCheck"
    • removedOutput schema / $defs / Depreciation / properties / age_years / description
      Removed value: -"Age at move-out: full calendar years plus remaining days / 365, 2 decimals."
    • removedOutput schema / $defs / Depreciation / properties / age_years / title
      Removed value: -"Age Years"
    • removedOutput schema / $defs / Depreciation / properties / applied / title
      Removed value: -"Applied"
    • removedOutput schema / $defs / Depreciation / properties / method / description
      Removed value: -"straight_line: max(0, 1 - age / useful life); step_table: the band of a published schedule for the item's age (California paint)."
    • removedOutput schema / $defs / Depreciation / properties / method / title
      Removed value: -"Method"
    • addedOutput schema / $defs / Depreciation / properties / range_high_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedOutput schema / $defs / Depreciation / properties / range_low_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / Depreciation / properties / remaining_fraction / description
      Removed value: -"Share of the cost the tenant can be charged, 4 decimals."
    • removedOutput schema / $defs / Depreciation / properties / remaining_fraction / title
      Removed value: -"Remaining Fraction"
    • removedOutput schema / $defs / Depreciation / properties / schedule_source / description
      Removed value: -"Source id of the step table, when one was used."
    • removedOutput schema / $defs / Depreciation / properties / schedule_source / title
      Removed value: -"Schedule Source"
    • removedOutput schema / $defs / Depreciation / properties / source / description
      Removed value: -"useful_life row id (row:jurisdiction for a variant) or 'request'."
    • removedOutput schema / $defs / Depreciation / properties / source / title
      Removed value: -"Source"
    • removedOutput schema / $defs / Depreciation / properties / useful_life_years / title
      Removed value: -"Useful Life Years"
    • removedOutput schema / $defs / Depreciation / title
      Removed value: -"Depreciation"
    • removedOutput schema / $defs / DocumentationDuty / properties / citation / title
      Removed value: -"Citation"
    • addedOutput schema / $defs / DocumentationDuty / properties / due_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • changedOutput schema / $defs / DocumentationDuty / properties / duty / enum
      Previous value: -[
      -  "itemized_statement",
      -  "receipts",
      -  "photos",
      -  "photos_move_in"
      -]New value: +[
      +  "itemized_statement",
      +  "receipts",
      +  "photos",
      +  "photos_move_in",
      +  "move_in_statement",
      +  "move_out_list"
      +]
    • removedOutput schema / $defs / DocumentationDuty / properties / duty / title
      Removed value: -"Duty"
    • removedOutput schema / $defs / DocumentationDuty / properties / met / title
      Removed value: -"Met"
    • removedOutput schema / $defs / DocumentationDuty / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / DocumentationDuty / properties / required / title
      Removed value: -"Required"
    • removedOutput schema / $defs / DocumentationDuty / properties / threshold / title
      Removed value: -"Threshold"
    • removedOutput schema / $defs / DocumentationDuty / title
      Removed value: -"DocumentationDuty"
    • removedOutput schema / $defs / ForfeitureCheck / description
      Removed value: -"A statute's forfeiture of the right to withhold, checked against the request."
    • removedOutput schema / $defs / ForfeitureCheck / properties / amount_released_usd / description
      Removed value: -"What those lines would otherwise have kept from the deposit."
    • removedOutput schema / $defs / ForfeitureCheck / properties / amount_released_usd / title
      Removed value: -"Amount Released Usd"
    • removedOutput schema / $defs / ForfeitureCheck / properties / citation / title
      Removed value: -"Citation"
    • removedOutput schema / $defs / ForfeitureCheck / properties / due_by / description
      Removed value: -"The date the duty had to be met by."
    • removedOutput schema / $defs / ForfeitureCheck / properties / due_by / title
      Removed value: -"Due By"
    • removedOutput schema / $defs / ForfeitureCheck / properties / gate / description
      Removed value: -"none, or the finding needed first (bad_faith, ...)."
    • removedOutput schema / $defs / ForfeitureCheck / properties / gate / title
      Removed value: -"Gate"
    • removedOutput schema / $defs / ForfeitureCheck / properties / keeps_claim / description
      Removed value: -"The charges can still be sued for separately."
    • removedOutput schema / $defs / ForfeitureCheck / properties / keeps_claim / title
      Removed value: -"Keeps Claim"
    • removedOutput schema / $defs / ForfeitureCheck / properties / lines / description
      Removed value: -"0-based deduction lines it bars (when met)."
    • removedOutput schema / $defs / ForfeitureCheck / properties / lines / title
      Removed value: -"Lines"
    • removedOutput schema / $defs / ForfeitureCheck / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / ForfeitureCheck / properties / scope / description
      Removed value: -"all: every deduction; damage: damage and cleaning only."
    • removedOutput schema / $defs / ForfeitureCheck / properties / scope / title
      Removed value: -"Scope"
    • removedOutput schema / $defs / ForfeitureCheck / properties / status / description
      Removed value: -"met: the date passed without the statement or refund (or sending it now would be late), so the barred lines are not counted; not_yet: still time; not_started: the clock has not started; relieved: the statute excuses the duty here; unknown: turns on facts you did not give."
    • changedOutput schema / $defs / ForfeitureCheck / properties / status / enum
      Previous value: -[
      -  "met",
      -  "not_yet",
      -  "not_started",
      -  "relieved",
      -  "unknown"
      -]New value: +[
      +  "met",
      +  "not_yet",
      +  "complied",
      +  "not_started",
      +  "relieved",
      +  "unknown"
      +]
    • removedOutput schema / $defs / ForfeitureCheck / properties / status / title
      Removed value: -"Status"
    • removedOutput schema / $defs / ForfeitureCheck / properties / trigger / description
      Removed value: -"late_statement, late_return, late_statement_or_return, late_claim_notice or not_in_input (facts the request cannot state)."
    • removedOutput schema / $defs / ForfeitureCheck / properties / trigger / title
      Removed value: -"Trigger"
    • removedOutput schema / $defs / ForfeitureCheck / title
      Removed value: -"ForfeitureCheck"
    • removedOutput schema / $defs / Guide / description
      Removed value: -"An official plain-language resource for the state or city (an agency guide)."
    • removedOutput schema / $defs / Guide / properties / accessed / title
      Removed value: -"Accessed"
    • removedOutput schema / $defs / Guide / properties / publisher / title
      Removed value: -"Publisher"
    • removedOutput schema / $defs / Guide / properties / title / title
      Removed value: -"Title"
    • removedOutput schema / $defs / Guide / properties / url / title
      Removed value: -"Url"
    • removedOutput schema / $defs / Guide / title
      Removed value: -"Guide"
    • removedOutput schema / $defs / Interest / properties / amount_usd / title
      Removed value: -"Amount Usd"
    • removedOutput schema / $defs / Interest / properties / base_usd / description
      Removed value: -"The amount the rate applies to."
    • removedOutput schema / $defs / Interest / properties / base_usd / title
      Removed value: -"Base Usd"
    • removedOutput schema / $defs / Interest / properties / basis / description
      Removed value: -"What the rate applies to: deposit, or the excess (Ohio)."
    • removedOutput schema / $defs / Interest / properties / basis / title
      Removed value: -"Basis"
    • removedOutput schema / $defs / Interest / properties / citation / title
      Removed value: -"Citation"
    • removedOutput schema / $defs / Interest / properties / condition / title
      Removed value: -"Condition"
    • removedOutput schema / $defs / Interest / properties / formula / description
      Removed value: -"The source's formula, in words."
    • removedOutput schema / $defs / Interest / properties / formula / title
      Removed value: -"Formula"
    • addedOutput schema / $defs / Interest / properties / if_required_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / Interest / properties / method / description
      Removed value: -"simple, per_window, anniversary_years or monthly."
    • removedOutput schema / $defs / Interest / properties / method / title
      Removed value: -"Method"
    • removedOutput schema / $defs / Interest / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / Interest / properties / parts / description
      Removed value: -"Per-period amounts when the rate changed."
    • removedOutput schema / $defs / Interest / properties / parts / title
      Removed value: -"Parts"
    • removedOutput schema / $defs / Interest / properties / period_days / title
      Removed value: -"Period Days"
    • removedOutput schema / $defs / Interest / properties / rate_percent / description
      Removed value: -"Percent per year (the move-out rate when rates change)."
    • removedOutput schema / $defs / Interest / properties / rate_percent / title
      Removed value: -"Rate Percent"
    • removedOutput schema / $defs / Interest / properties / required / description
      Removed value: -"None: depends on facts you did not give."
    • removedOutput schema / $defs / Interest / properties / required / title
      Removed value: -"Required"
    • removedOutput schema / $defs / Interest / title
      Removed value: -"Interest"
    • removedOutput schema / $defs / InterestPart / description
      Removed value: -"One period of an interest computation at one rate (a year, a rate window)."
    • removedOutput schema / $defs / InterestPart / properties / amount_usd / title
      Removed value: -"Amount Usd"
    • removedOutput schema / $defs / InterestPart / properties / period_from / title
      Removed value: -"Period From"
    • removedOutput schema / $defs / InterestPart / properties / period_to / title
      Removed value: -"Period To"
    • removedOutput schema / $defs / InterestPart / properties / rate_percent / title
      Removed value: -"Rate Percent"
    • removedOutput schema / $defs / InterestPart / title
      Removed value: -"InterestPart"
    • removedOutput schema / $defs / JurisdictionRef / properties / city / description
      Removed value: -"The city you sent, as given."
    • removedOutput schema / $defs / JurisdictionRef / properties / city / title
      Removed value: -"City"
    • removedOutput schema / $defs / JurisdictionRef / properties / city_overlay / description
      Removed value: -"The covered city whose rules were layered on, if any."
    • removedOutput schema / $defs / JurisdictionRef / properties / city_overlay / title
      Removed value: -"City Overlay"
    • addedOutput schema / $defs / JurisdictionRef / properties / city_rules_checked
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / JurisdictionRef / properties / covered / title
      Removed value: -"Covered"
    • removedOutput schema / $defs / JurisdictionRef / properties / state / title
      Removed value: -"State"
    • removedOutput schema / $defs / JurisdictionRef / properties / state_name / title
      Removed value: -"State Name"
    • removedOutput schema / $defs / JurisdictionRef / properties / verified / description
      Removed value: -"True when the main rule text was read verbatim at the official source."
    • removedOutput schema / $defs / JurisdictionRef / properties / verified / title
      Removed value: -"Verified"
    • removedOutput schema / $defs / JurisdictionRef / title
      Removed value: -"JurisdictionRef"
    • 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 / text / title
      Removed value: -"Text"
    • removedOutput schema / $defs / Note / title
      Removed value: -"Note"
    • addedOutput schema / $defs / Outcome
      Added value: +{
      +  "properties": {
      +    "interest_unknown": {
      +      "default": false,
      +      "type": "boolean"
      +    },
      +    "interest_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "next_due": {
      +      "anyOf": [
      +        {
      +          "format": "date",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "owed_now_min_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "owed_now_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "refund_due_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    "refund_min_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    "returned_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "stages": {
      +      "items": {
      +        "$ref": "#/$defs/Stage"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "upcoming",
      +        "due_today",
      +        "overdue",
      +        "not_started",
      +        "none_in_statute",
      +        "reverted",
      +        "no_deposit",
      +        "met",
      +        "late"
      +      ],
      +      "type": "string"
      +    },
      +    "tenant_owes_usd": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    "uncertain": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "refund_due_usd",
      +    "refund_min_usd",
      +    "tenant_owes_usd"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / PenaltyExposure / properties / additional / description
      Removed value: -"City penalties in addition to the state's (not included in its estimate)."
    • removedOutput schema / $defs / PenaltyExposure / properties / additional / title
      Removed value: -"Additional"
    • removedOutput schema / $defs / PenaltyExposure / properties / applies_if / title
      Removed value: -"Applies If"
    • addedOutput schema / $defs / PenaltyExposure / properties / base
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / PenaltyExposure / properties / basis / title
      Removed value: -"Basis"
    • removedOutput schema / $defs / PenaltyExposure / properties / citation / title
      Removed value: -"Citation"
    • removedOutput schema / $defs / PenaltyExposure / properties / discretionary / title
      Removed value: -"Discretionary"
    • removedOutput schema / $defs / PenaltyExposure / properties / estimated_max_usd / description
      Removed value: -"fixed + multiple x basis amount (with any floor or cap); exposure, not a verdict. None when the basis is unknown (monthly rent not given)."
    • removedOutput schema / $defs / PenaltyExposure / properties / estimated_max_usd / title
      Removed value: -"Estimated Max Usd"
    • addedOutput schema / $defs / PenaltyExposure / properties / estimated_min_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / PenaltyExposure / properties / fixed_usd / title
      Removed value: -"Fixed Usd"
    • addedOutput schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / anyOf
      Added value: +[
      +  {
      +    "type": "boolean"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / title
      Removed value: -"Forfeits Right To Withhold"
    • removedOutput schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / type
      Removed value: -"boolean"
    • removedOutput schema / $defs / PenaltyExposure / properties / in_addition_to_refund / description
      Removed value: -"The damages come on top of returning the amount withheld (Ohio, West Virginia), not instead of it."
    • removedOutput schema / $defs / PenaltyExposure / properties / in_addition_to_refund / title
      Removed value: -"In Addition To Refund"
    • removedOutput schema / $defs / PenaltyExposure / properties / kind / title
      Removed value: -"Kind"
    • removedOutput schema / $defs / PenaltyExposure / properties / minimum_usd / description
      Removed value: -"Floor of the multiple."
    • removedOutput schema / $defs / PenaltyExposure / properties / minimum_usd / title
      Removed value: -"Minimum Usd"
    • removedOutput schema / $defs / PenaltyExposure / properties / multiple / title
      Removed value: -"Multiple"
    • removedOutput schema / $defs / PenaltyExposure / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / PenaltyExposure / properties / per_violation / description
      Removed value: -"fixed_usd is per violation."
    • removedOutput schema / $defs / PenaltyExposure / properties / per_violation / title
      Removed value: -"Per Violation"
    • removedOutput schema / $defs / PenaltyExposure / properties / plus_attorney_fees / title
      Removed value: -"Plus Attorney Fees"
    • removedOutput schema / $defs / PenaltyExposure / title
      Removed value: -"PenaltyExposure"
    • removedOutput schema / $defs / Provenance / properties / rule_ids / title
      Removed value: -"Rule Ids"
    • 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 / 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 / SettleResult / properties / as_of / title
      Removed value: -"As Of"
    • removedOutput schema / $defs / SettleResult / properties / assumptions / title
      Removed value: -"Assumptions"
    • removedOutput schema / $defs / SettleResult / properties / citations / title
      Removed value: -"Citations"
    • removedOutput schema / $defs / SettleResult / properties / deductions / title
      Removed value: -"Deductions"
    • removedOutput schema / $defs / SettleResult / properties / disclaimer / title
      Removed value: -"Disclaimer"
    • removedOutput schema / $defs / SettleResult / properties / documentation / title
      Removed value: -"Documentation"
    • removedOutput schema / $defs / SettleResult / properties / forfeiture / description
      Removed value: -"The statute's forfeitures of the right to withhold, checked; a met one has already taken its lines out of the totals."
    • removedOutput schema / $defs / SettleResult / properties / forfeiture / title
      Removed value: -"Forfeiture"
    • removedOutput schema / $defs / SettleResult / properties / guides / description
      Removed value: -"Official plain-language guides for this state or city, where we have one."
    • removedOutput schema / $defs / SettleResult / properties / guides / title
      Removed value: -"Guides"
    • addedOutput schema / $defs / SettleResult / properties / outcome
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/Outcome"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedOutput schema / $defs / SettleResult / properties / small_claims / description
      Removed value: -"The state courts' small claims page, where we have one."
    • removedOutput schema / $defs / SettleResult / properties / summary / title
      Removed value: -"Summary"
    • removedOutput schema / $defs / SettleResult / properties / timeliness / description
      Removed value: -"Present when the request says what was returned (returned)."
    • removedOutput schema / $defs / SettleResult / properties / unknowns / title
      Removed value: -"Unknowns"
    • removedOutput schema / $defs / SettleResult / properties / warnings / title
      Removed value: -"Warnings"
    • removedOutput schema / $defs / SettleResult / title
      Removed value: -"SettleResult"
    • addedOutput schema / $defs / Stage
      Added value: +{
      +  "properties": {
      +    "days": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "done_on": {
      +      "anyOf": [
      +        {
      +          "format": "date",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "due_by": {
      +      "anyOf": [
      +        {
      +          "format": "date",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "duty": {
      +      "enum": [
      +        "itemized_statement",
      +        "refund",
      +        "interest"
      +      ],
      +      "type": "string"
      +    },
      +    "label": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "met",
      +        "late",
      +        "short",
      +        "overdue",
      +        "due_today",
      +        "upcoming",
      +        "not_started",
      +        "none_in_statute"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "duty",
      +    "label",
      +    "status"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / $defs / Statement / properties / due_by / title
      Removed value: -"Due By"
    • removedOutput schema / $defs / Statement / properties / lines / title
      Removed value: -"Lines"
    • removedOutput schema / $defs / Statement / properties / refund_due_usd / title
      Removed value: -"Refund Due Usd"
    • removedOutput schema / $defs / Statement / properties / text / description
      Removed value: -"Draft itemized statement, plain text, no names or addresses."
    • removedOutput schema / $defs / Statement / properties / text / title
      Removed value: -"Text"
    • removedOutput schema / $defs / Statement / title
      Removed value: -"Statement"
    • removedOutput schema / $defs / StatementLine / properties / amount_usd / title
      Removed value: -"Amount Usd"
    • removedOutput schema / $defs / StatementLine / properties / label / title
      Removed value: -"Label"
    • removedOutput schema / $defs / StatementLine / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / StatementLine / title
      Removed value: -"StatementLine"
    • removedOutput schema / $defs / Timeliness / description
      Removed value: -"Whether what the landlord returned (``returned``) came on time."
    • removedOutput schema / $defs / Timeliness / properties / amount_kept_usd / description
      Removed value: -"Deposit minus the amount returned (what is withheld)."
    • removedOutput schema / $defs / Timeliness / properties / amount_kept_usd / title
      Removed value: -"Amount Kept Usd"
    • removedOutput schema / $defs / Timeliness / properties / amount_returned_usd / title
      Removed value: -"Amount Returned Usd"
    • removedOutput schema / $defs / Timeliness / properties / checks / title
      Removed value: -"Checks"
    • removedOutput schema / $defs / Timeliness / properties / days_late / description
      Removed value: -"Days late (the most of any duty; with nothing returned, the days since the last way of meeting the rule passed)."
    • removedOutput schema / $defs / Timeliness / properties / days_late / title
      Removed value: -"Days Late"
    • removedOutput schema / $defs / Timeliness / properties / difference_min_usd / description
      Removed value: -"The same against totals.refund_min_usd."
    • removedOutput schema / $defs / Timeliness / properties / difference_min_usd / title
      Removed value: -"Difference Min Usd"
    • removedOutput schema / $defs / Timeliness / properties / difference_usd / description
      Removed value: -"totals.refund_due_usd minus the amount returned (positive: less came back than the rule's refund on the deductions given)."
    • removedOutput schema / $defs / Timeliness / properties / difference_usd / title
      Removed value: -"Difference Usd"
    • removedOutput schema / $defs / Timeliness / properties / late / description
      Removed value: -"True: a duty is late or overdue (with nothing returned: every way the rule can be met has passed). False: on time or not yet due. None: no deadline, or the clock has not started."
    • removedOutput schema / $defs / Timeliness / properties / late / title
      Removed value: -"Late"
    • removedOutput schema / $defs / Timeliness / properties / late_since / description
      Removed value: -"With nothing returned: the day from which it is late."
    • removedOutput schema / $defs / Timeliness / properties / late_since / title
      Removed value: -"Late Since"
    • removedOutput schema / $defs / Timeliness / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / Timeliness / properties / on / title
      Removed value: -"On"
    • removedOutput schema / $defs / Timeliness / properties / what / title
      Removed value: -"What"
    • removedOutput schema / $defs / Timeliness / title
      Removed value: -"Timeliness"
    • removedOutput schema / $defs / TimelyCheck / description
      Removed value: -"One duty checked against its deadline: the refund, or the itemized statement."
    • removedOutput schema / $defs / TimelyCheck / properties / days_late / description
      Removed value: -"Days after due_by (late, or overdue as of as_of)."
    • removedOutput schema / $defs / TimelyCheck / properties / days_late / title
      Removed value: -"Days Late"
    • removedOutput schema / $defs / TimelyCheck / properties / days_left / description
      Removed value: -"Days until due_by (not_yet_due)."
    • removedOutput schema / $defs / TimelyCheck / properties / days_left / title
      Removed value: -"Days Left"
    • removedOutput schema / $defs / TimelyCheck / properties / done_on / description
      Removed value: -"When it was sent; None: not yet."
    • removedOutput schema / $defs / TimelyCheck / properties / done_on / title
      Removed value: -"Done On"
    • removedOutput schema / $defs / TimelyCheck / properties / due_by / description
      Removed value: -"Last day under the rule, with the statute's weekend or holiday roll-forward applied (the legal limit)."
    • removedOutput schema / $defs / TimelyCheck / properties / due_by / title
      Removed value: -"Due By"
    • changedOutput schema / $defs / TimelyCheck / properties / duty / enum
      Previous value: -[
      -  "refund",
      -  "itemized_statement"
      -]New value: +[
      +  "refund",
      +  "itemized_statement",
      +  "interest"
      +]
    • removedOutput schema / $defs / TimelyCheck / properties / duty / title
      Removed value: -"Duty"
    • removedOutput schema / $defs / TimelyCheck / properties / note / title
      Removed value: -"Note"
    • removedOutput schema / $defs / TimelyCheck / properties / status / description
      Removed value: -"on_time / late (done, by or after due_by); not_yet_due / overdue (not done as of as_of); not_started (the start event is missing); none_in_statute."
    • removedOutput schema / $defs / TimelyCheck / properties / status / title
      Removed value: -"Status"
    • removedOutput schema / $defs / TimelyCheck / title
      Removed value: -"TimelyCheck"
    • removedOutput schema / $defs / Totals / properties / allowed_usd / description
      Removed value: -"Sum of lines with allowed = yes."
    • removedOutput schema / $defs / Totals / properties / allowed_usd / title
      Removed value: -"Allowed Usd"
    • removedOutput schema / $defs / Totals / properties / claimed_usd / title
      Removed value: -"Claimed Usd"
    • addedOutput schema / $defs / Totals / properties / counted_floor_usd
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +      "type": "string"
      +    }
      +  ],
      +  "default": "0.00"
      +}
    • removedOutput schema / $defs / Totals / properties / depends_usd / description
      Removed value: -"Sum of 'depends' lines at the amount the rule would allow if they stand (not in allowed_usd or the refund)."
    • removedOutput schema / $defs / Totals / properties / depends_usd / title
      Removed value: -"Depends Usd"
    • removedOutput schema / $defs / Totals / properties / deposit_usd / title
      Removed value: -"Deposit Usd"
    • changedOutput schema / $defs / Totals / properties / interest_usd / anyOf
      Previous value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      -    "type": "string"
      -  }
      -]New value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / $defs / Totals / properties / interest_usd / default
      Added value: +null
    • removedOutput schema / $defs / Totals / properties / interest_usd / description
      Removed value: -"Interest credited (0 when none or unknown)."
    • removedOutput schema / $defs / Totals / properties / interest_usd / title
      Removed value: -"Interest Usd"
    • removedOutput schema / $defs / Totals / properties / refund_due_usd / description
      Removed value: -"deposit + interest - allowed, never below 0."
    • removedOutput schema / $defs / Totals / properties / refund_due_usd / title
      Removed value: -"Refund Due Usd"
    • removedOutput schema / $defs / Totals / properties / refund_min_usd / description
      Removed value: -"The refund if every 'depends' line stands: deposit + interest - allowed - depends, never below 0. Equals refund_due_usd when nothing depends."
    • removedOutput schema / $defs / Totals / properties / refund_min_usd / title
      Removed value: -"Refund Min Usd"
    • removedOutput schema / $defs / Totals / properties / tenant_owes_usd / description
      Removed value: -"Allowed deductions above deposit + interest (collect separately)."
    • removedOutput schema / $defs / Totals / properties / tenant_owes_usd / title
      Removed value: -"Tenant Owes Usd"
    • changedOutput schema / $defs / Totals / required
      Previous value: -[
      -  "deposit_usd",
      -  "claimed_usd",
      -  "allowed_usd",
      -  "interest_usd",
      -  "refund_due_usd",
      -  "tenant_owes_usd"
      -]New value: +[
      +  "deposit_usd",
      +  "claimed_usd",
      +  "allowed_usd",
      +  "refund_due_usd",
      +  "tenant_owes_usd"
      +]
    • removedOutput schema / $defs / Totals / title
      Removed value: -"Totals"
    • 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: -"DepositSettlementSettleMcpResult"
  10. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-redundant traits: deterministic, source-cited, same input yields same result, and every rule comes with a citation — important for a compute-style tool whose output may be relied on. It does not mention the version-pinning failure mode (expect_ruleset) or that nothing is charged on failure, which would have pushed this higher.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what it does, then inputs, then returns, then exclusions, then the determinism guarantee. Every sentence carries distinct information and nothing is repeated from the schema verbatim beyond the three required field names, which serve as a quick orientation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 52-parameter, deeply nested tool, the description covers purpose, inputs, outputs, exclusions and determinism, and an output schema exists so return values need no further explanation. Gaps are minor: no mention of audit mode, client_refs echoing, or the ruleset-version contract, all of which live only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across 52 parameters with rich per-field statute citations, so the schema does the heavy lifting. The description names the three required inputs (state, deposit_usd, vacated_on) and groups the optionals (city, monthly_rent_usd, move_in_on, deductions, clock-start dates, as_of), which helps prioritization but adds no syntax or semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (settles a US residential security deposit after move-out) plus the governing scope: state statute across 50 states and DC, with covered city ordinances layered on. The 'Not for' list (legal advice, demand letters, repair cost estimates, pet deposits, non-US rentals) separates it from property_turnover_quick_estimate and from legal-advice framing without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing 'Not for' sentence gives explicit exclusions, which is strong when-not guidance. When-to-use is clear from the first sentence (post-move-out deposit settlement). What is missing is naming the sibling to use instead — e.g. deposit_settlement_rules for a pure statutory lookup — so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.