Install
openclaw skills install @tektolo/deposit-settlementSettle a US rental security deposit after move-out with the Tektolo deposit settlement engine - the return deadline, which deductions are allowed and how much after depreciation, interest owed, the refund, penalty exposure and a draft itemized statement, every rule cited. Use when a landlord or property manager is closing a move-out, when a tenant asks whether a deposit came back on time or a deduction is allowed, or for a state's deposit rules.
openclaw skills install @tektolo/deposit-settlementTektolo runs a deterministic, source-cited engine over each state's deposit statute (all 50
states and DC) and a covered city's ordinance (Chicago, San Francisco, Berkeley, Los Angeles,
Seattle, Portland, Minneapolis, Saint Paul). You give it the state, dates, deposit and the deductions the manager
intends to take. It returns the deadline, an assessment of each deduction, interest, the refund,
penalty exposure if the return is late or wrongful, and a draft itemized statement. The same
input always gives the same result (result_hash). It computes and cites the rule; it is not
legal advice, and the manager signs the statement.
returned
(what came back and when) and the deductions the landlord listed; relay timeliness.deposit_settlement_rules.deadline.status: none_in_statute): say
so; never invent a date. Other cities get the state rule plus a warning about local
ordinances.deposit_settlement_settle with the request below;
deposit_settlement_rules with {"state": "IL", "city": "Chicago"}.POST https://tektolo.com/v1/deposit-settlement/settle (and /rules).https://tektolo.com/catalog.json,
https://tektolo.com/capabilities/deposit-settlement.https://tektolo.com/tools/rental-property/deposit-settlement (landlords); for tenants, the
Security deposit check at https://tektolo.com/tools/rental-property/deposit-check (add
?state=TX to prefill the state); the rule for each state is at
https://tektolo.com/deposit-settlement/<state> (for example /deposit-settlement/illinois).property_turnover_quick_estimate, web tool /tools/rental-property/property-turnover) is
step 1 of the same move-out workflow.state (2 letters), city if any (adds a city overlay where covered), deposit_usd, and
vacated_on (the day the tenant moved out and returned possession). Never invent dates;
ask for the move-out date if it is missing.move_in_on (interest and item ages), tenancy_ended_on (if the lease ended on
another day), forwarding_address_received_on (starts or holds the clock in Texas,
Connecticut, Iowa, Minnesota, Rhode Island, South Dakota, Wyoming), demand_received_on
(the tenant's written demand: Arizona, Kansas, Oklahoma, South Carolina, Mississippi),
new_tenant_moved_in_on (re-rented: West Virginia, Wisconsin), claim_notice_sent_on
(Florida: the day you sent the notice of intent to impose a claim; the balance is due 30
days after it), lease_return_days (a
period the lease sets: Colorado, Idaho, Maine), tenant_gave_proper_notice (Alaska),
contractor_needed (Virginia, West Virginia), monthly_rent_usd (deposit cap; Ohio
interest; Iowa and Nebraska penalties), building_units (NY 6+, IL 25+ interest rules),
statement_sent_on (the day the itemized statement went out: on time or late),
tenant_gave_forwarding_address: false (never given: IL, PA, OH, DE, SC, NH safe harbors),
deposit_collected_on / lease_signed_or_renewed_on / lease_term_months / furnished
(caps: CA AB 12, GA, MD, DE, NM, KS), rent_ordinance_covered (Los Angeles RSO, Berkeley
interest), interest_rate_percent (the account rate where interest is the bank's).deductions: one per charge, with category (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) and amount_usd. For wearing items give
item_installed_on or item_age_years (one, not both), and useful_life_years when known;
set caused_by_tenant: false for normal wear (damage and cleaning lines only). Cleaning:
cleaning_kind (beyond_wear, routine, unknown). Late fees: late_payments. Carpet cleaning is cleaning (or work_kind: cleaning); work_kind: repair is never depreciated. Rent after a re-rental: rent_through on the rent line, and new_tenant_moved_in_on / new_tenant_rent_usd (rent for the new tenant's days is not recoverable twice).
description is for the user only: it is never stored or returned.documentation: what the manager has (itemized_statement, receipts,
photos_move_in, photos_move_out, photos_after_repair, cleaning_notice: Montana);
leave out what is unknown. Unknown or misspelled fields are rejected, not ignored.as_of: today's date, for a repeatable answer.returned = {"what": "nothing" | "full_refund" | "partial_refund" | "itemized_statement", "on": "YYYY-MM-DD", "amount_usd": "..."} (on required unless
nothing came back), the landlord's deductions as listed, and caused_by_tenant: null when
it is disputed whether a charge is damage or normal wear (the line comes back depends
with the amount the rule allows if it is damage). The forwarding address date is the day
the landlord received it.{
"state": "CA",
"deposit_usd": "2000",
"monthly_rent_usd": "2000",
"move_in_on": "2023-06-01",
"vacated_on": "2026-09-30",
"deductions": [
{"category": "cleaning", "amount_usd": "150"},
{"category": "carpet", "amount_usd": "1200", "item_age_years": 5},
{"category": "blinds_window_coverings", "amount_usd": "80", "caused_by_tenant": false}
],
"as_of": "2026-10-09"
}
deadline.return_by and its status (upcoming, due_today, overdue,
not_started with the missing event, none_in_statute), then totals.refund_due_usd. In
Florida with deductions, itemization_by is the deadline for the notice of claim and
return_by runs from claim_notice_sent_on; relay both. If
deadline.extended_to is set, the statute moves a weekend or holiday last day there; still
advise acting by return_by. Mention itemization_by when it differs (Chicago earlier,
Louisiana later).no or depends, say why (notes): normal wear, not a listed
deduction, or missing item age.penalty_exposure as exposure under the statute, not a verdict, including any city
penalty in penalty_exposure.additional (Portland, Berkeley).statement.text as the draft itemized statement (no names or addresses in it).warnings, assumptions (for example assumed useful lives) and unknowns (for example
a missing forwarding address), and say it is not legal advice.result_hash and run.ruleset_version. Over MCP
they come back only when you call with audit: true (REST always returns them).deposit_settlement_rules still works. The message names the page for a free
personal connector URL when the user shares a hosted assistant's limit.outcome is the one answer the summary is worded from: owed_now_usd (what is still owed
to the tenant, net of what came back), next_due and stages (each step's date and status:
met, late, short, overdue, due today, upcoming), and uncertain (what the answer still turns
on). deadline.status is met or late once returned shows the refund went out. Never say
"interest $0.00" when outcome.interest_unknown is true.returned, also relay timeliness: late (true, false, or null when the clock has not
started or the statute sets no deadline), days_late, and each check's due_by. With
nothing returned, late is true only once every way of meeting the rule has passed (in
Florida, the refund at 15 days or the notice of claim at 30). Give the refund as the range
totals.refund_min_usd to totals.refund_due_usd when lines depend. State the rule and
the numbers; do not take a side or predict a court.