LA Multifamily Underwriting

    1

    Underwrite an LA-area multifamily property from an address and a rent roll, with every number tagged by where it came from.

    Free

    Security scanned

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    LA Multifamily Underwriting

    Example session with this skill installed

    Underwrite 1223 N Edgemont St, Los Angeles. It sold in January 2026 for $4,750,000, 12,280 rentable sf. The published figures say ~10.5x gross and a ~6.5% cap after tax reassessment, with replacement cost ~$7.3M. Check those numbers and give me the regulatory overlay.

    • Read your context and instructions
    • Compiled the la multifamily underwriting

    1223 N Edgemont St

    sale 2026-01

    Read first

    • SB 79 transit-oriented upzoning: marked unverified in statutes.yaml. The mechanism above is as described in published practitioner commentary, and was NOT independently confirmed against the statute text on 2026-09-02. Marked so it is never presented as verified.

    Price and size

    MetricValueProvenance
    Purchase price$4,750,000input
    Units—MISSING
    Price per unit—MISSING
    Price per rentable sf$386.81derived
    Price per building sf (Assessor)—MISSING
    • Units: units not supplied
    • Price per unit: needs price and units
    • Price per rentable sf: purchase price / net rentable sf as marketed. Compare to the per-foot figure on the Assessor's building area below; they are different denominators and brokers quote whichever flatters.
    • Price per building sf (Assessor): needs price and building_sf_assessor

    Income

    MetricValueProvenance
    Gross scheduled rent (annual)—MISSING
    Gross rent multiplier—MISSING
    Effective gross income—MISSING
    • Gross scheduled rent (annual): needs a rent roll or gross_scheduled_rent_annual
    • Gross rent multiplier: needs a rent roll or gross_scheduled_rent_annual
    • Effective gross income: needs a rent roll or gross_scheduled_rent_annual

    Expenses and property tax

    MetricValueProvenance
    Property tax rate applied1.000%MANUAL · https://auditor.lacounty.gov/faqs/ · checked 2026-09-02
    Property tax — seller's basis—MISSING
    Property tax — reassessed to price$47,500derived
    Direct assessments—MISSING
    • Property tax rate applied: Prop 13 general levy ONLY. The real bill is this plus voter-approved debt service for the parcel's Tax Rate Area, so this is a FLOOR on the tax and therefore a CEILING on the cap rate. Look up the parcel's TRA at https://onlineapps.auditor.lacounty.gov/tra/ and pass --tax-rate to replace it.
    • Property tax — seller's basis: needs the seller's assessed value (Assessor current roll)
    • Property tax — reassessed to price: purchase price x 1% (reassessed to the sale price on change of ownership) + $0 direct assessments
    • Direct assessments: not supplied; the ad valorem rate does not include them

    Return

    MetricValueProvenance
    NOI, taxes reassessed—MISSING
    Cap rate, taxes reassessed—MISSING
    • NOI, taxes reassessed: needs income and operating expenses
    • Cap rate, taxes reassessed: needs income and operating expenses

    Replacement cost

    MetricValueProvenance
    Replacement cost—MISSING
    • Replacement cost: needs land_value. The Assessor's land line is a Prop 13 artifact of the last transfer, not today's land value, so it is not substituted here.

    Regulatory overlay

    FieldFindingProvenance
    jurisdictionLos Angelesderived
    la city rso status—MISSING
    costa hawkins vacancy decontrolYes — statewideMANUAL · Civ. Code 1954.50 et seq.
    ab 1482 status—MISSING
    sb 79 transit upzoning exposurenot determinedMANUAL · config/statutes.yaml — marked unverified
    ula transfer tax$0derived
    base documentary transfer tax$26,600derived
    ula exemptionsnot checkedMANUAL · https://housing.lacity.gov/ula-exemptions
    • jurisdiction: From the Assessor's situs city. This is a POSTAL designation. A 'Los Angeles' mailing address can sit in unincorporated LA County or in another incorporated city, and the rent-control regime differs in each. Confirm the incorporated city at https://zimas.lacity.org/ before acting on anything below.
    • la city rso status: no year built available, and the RSO test is a date. Look the parcel up at https://zimas.lacity.org/
    • costa hawkins vacancy decontrol: A stabilized unit resets to market rent on vacancy. This is state law and a city cannot repeal it; statewide repeal was rejected at the ballot in 2018, 2020, 2024. It is what makes turnover, not the allowable annual increase, the engine of value in rent-stabilized stock — and therefore what makes the in-place-to-market rent gap the number to underwrite.
    • ab 1482 status: no year built; the test is building age
    • sb 79 transit upzoning exposure: Requires transit-stop proximity and the local zoning capacity test, neither of which this tool reads. The exclusion mechanism recorded in the config is explicitly flagged unverified: it was described by a practitioner and was NOT confirmed against the statute text. Do not price SB 79 exposure off this tool.
    • ula transfer tax: $4,750,000 is below the $5,400,000 threshold, so no ULA is due on a transfer at this price. Headroom to the threshold: $650,000.
    • base documentary transfer tax: City 0.45% + County 0.11% = 0.56% of consideration. Separate from, and additional to, ULA. Source: https://www.lavote.gov/home/recorder/property-document-recording/documentary-transfer-taxes/general-info
    • ula exemptions: LAMC 21.9.14, administered by LAHD. Qualifying transferees include 501(c)(3) nonprofits, Community Land Trusts and Limited-Equity Housing Cooperatives with an affordable-housing experience requirement, plus government agencies, gifts, transfers where debt equals or exceeds value, bankruptcy, spousal and same-proportion entity transfers. Confidence on this list: medium-high — corroborated across LAHD and Hanson Bridgett; full ordinance text not read

    What the published replacement figure implies

    The $7,300,000 figure supplied has two unknowns behind it — land basis and hard cost per foot — and one equation. Every pair below reproduces it on 12,280 sf with 20% soft costs. The tool will not pick one for you.

    If land is worththen hard cost must be
    $1,000,000$428/sf
    $1,500,000$394/sf
    $2,000,000$360/sf
    $2,500,000$326/sf
    $3,000,000$292/sf
    $4,000,000$224/sf

    Caveats

    material — No property tax rate supplied. Used the 1.0% Prop 13 general levy as a floor. Every cap rate below is therefore an upper bound; the parcel's actual Tax Rate Area adds voter-approved debt service on top, and direct assessments on top of that.

    material — No direct assessments supplied. Refuse, sewer, lighting, flood control and similar line items are not ad valorem, do not appear in any percentage rate, and are added to the bill. Treated as zero, which overstates NOI.

    material — No land value supplied, so replacement cost is unpriced. Land is the input with the widest spread and the one this tool cannot fetch: the Assessor's land value is a factored base year figure, not market.

    material — Jurisdiction is inferred from a postal city name, not from a municipal boundary lookup. Everything in this section depends on it. Confirm the parcel is inside the incorporated city before relying on any determination here.

    material — SB 79 transit-oriented upzoning: constants were due for review on 2026-09-02 and today is 2026-10-18. Re-check config/statutes.yaml before relying on them.

    material — Measure ULA transfer tax (City of Los Angeles): finance.lacity.gov returns HTTP 403 to automated fetch. These figures come from that page's indexed text, corroborated independently by Hanson Bridgett (June 2026) and AAGLA. lavote.gov has NOT been updated and still shows the FY 2025-26 thresholds of $5.3M and $10.6M. CONFIRM IN A BROWSER before relying on these in a live deal.

    note — Soft costs (design, permits, fees, financing, carry) defaulted to 20% of hard cost for the replacement grid. Pass soft_cost_pct to replace it.

    Assumptions the tool supplied

    Every one of these is a number nobody gave us. Replace them.

    • vacancy_pct = 5.0 — No vacancy figure supplied. 5% is a convention, not a market observation for this submarket. Supply the actual figure.
    • other_income_annual = 0.0 — No other income supplied; treated as zero.

    Not computed

    • units — units not supplied
    • price_per_unit — needs price and units
    • price_per_building_sf_assessor — needs price and building_sf_assessor
    • gross_scheduled_rent_annual — needs a rent roll or gross_scheduled_rent_annual
    • gross_rent_multiplier — needs a rent roll or gross_scheduled_rent_annual
    • effective_gross_income — needs a rent roll or gross_scheduled_rent_annual
    • direct_assessments_annual — not supplied; the ad valorem rate does not include them
    • property_tax_sellers_basis_annual — needs the seller's assessed value (Assessor current roll)
    • noi_reassessed — needs income and operating expenses
    • cap_rate_reassessed_pct — needs income and operating expenses
    • replacement_cost — needs land_value. The Assessor's land line is a Prop 13 artifact of the last transfer, not today's land value, so it is not substituted here.

    Notes on this deal

    • The published figures for this deal: $339,000/unit, $387/sf, ~10.5x gross, ~6.5% cap after tax reassessment, replacement cost ~$7.3M against a broker's $8.5M.
    • The $8.5M broker replacement figure is recorded here as context but is not used as an input; only the $7.3M figure is passed to the solver.
    • Rentable area of 12,280 sf is the marketed figure. The Assessor carries 14,680 sf of building area for this parcel. The report shows both.

    Reconciliation

    • GRM: no rent roll supplied, so nothing to compare. A 10.50x multiple on $4,750,000 requires annual gross scheduled rent of $452,381.
    • Cap rate: no expenses supplied, so nothing to compare. A 6.50% cap on $4,750,000 requires NOI of $308,750.
    • Taken together they require operating expenses, vacancy and property tax totalling $143,631, which is 31.8% of gross scheduled rent. If that ratio is not plausible for this asset, one of the two published figures is measuring something else.
    marked unverified in statutes.yaml

    Connects securely to your tools. The creator never sees your data.

    About this skill

    Address and rent roll in, regulatory overlay and underwriting out.

    What it does

    Fetches the LA County Assessor record and computes price per unit, price per rentable and per building square foot, gross rent multiplier, NOI and cap rate with property taxes reassessed to the purchase price as California does on transfer, and prices the RSO/non-RSO multiplier spread. Determines LA City RSO coverage, Costa-Hawkins vacancy decontrol, AB 1482 applicability, Santa Monica's separate regime and Measure ULA transfer tax.

    The one rule

    Nothing in this tool produces a bare number. Every value is tagged auto, input, derived, MANUAL, DEFAULT or MISSING, so you can see where it came from. Where no public source can answer, it says so and gives you the URL instead of guessing.

    Use it to

    • Underwrite or screen an apartment building in Los Angeles or Santa Monica
    • Check a broker's numbers (--check-grm, --check-cap)
    • Work out the rent-control status of an LA address

    Limits

    The RSO, Costa-Hawkins and AB 1482 determinations are derived from the Assessor's year built, not fetched, so they are indications; the authoritative RSO check is still ZIMAS. It covers LA County only. It relies on undocumented Assessor endpoints that answered on 2 September 2026. Includes a worked example on a public January 2026 sale.

    Python 3.8+. No dependencies, no API keys, nothing to configure. MIT licensed. Source: https://github.com/kashbadami/cre-underwriter

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Free forever

    No account required to browse

    Trust & safety

    Security scanned

    Verified clean 1 day ago

    • Free to download with an account

    Requires

    Lacounty
    Python

    Listed1 day ago

    What's inside

    Frequently Asked Questions