The Rent Hacker
Menu
Underwrite an address →Underwrite — $79

Property overview

2109 22nd St, San Francisco, CA 94107

At our cautious numbers, renting and putting the same money in index funds comes out ahead. It did not pass our bar.

Potrero Hill · Zuckerberg SF General Hospital (ZSFGH) 0.12 mi

Analysis of 2026-08-25 · page updated 2026-10-09

Ask $850,000 Beds / baths 2 / 2 Listed sqft 752 Legal units (roll) 2 Days on market 150 as of 2026-10-09 HOA $0 APN 4158066

The underwrite

What the $79 underwrite contains

The facts below are public, and so is every source behind them. What a buyer pays for is the answer and the working behind it.

  • Our answer at cautious, expected and best-case rents, side by side.
  • Every rent we used, and the registry cells it came from.
  • Tax reset arithmetic at this ask, with each parcel charge named.
  • How far rents can fall before the answer turns over.
  • What would change the answer.
  • What to demand in writing before you sign.

Delivered within one business day. Every Bay Area 2–4 unit that beats renting and index funds, the week it lists.

Verification

What we verified

Fact Status Source
Ask $850,000, listed 2026-05-13, no price cut since verified the 2026-08-25 feed row and the live listing (verified 2026-08-23) both carry $850,000, and the listing's price history shows a single listing event with no cut and no relisting
Two dwellings corroborated units-concordance returns corroborated on five witnesses: the DataSF secured roll seed assesses 2 dwellings on APN 4158066 for the 2025 roll year, the listing's units chip and Duplex subtype both read 2, its prose describes two mini-residences, and the two-bath count bounds it. No conflicts recorded
752 sqft total, 2 baths, built 1946 corroborated the 2026-08-25 feed row and the live listing (verified 2026-08-23) agree on all three, and the city's historic-status record for APN 4158066 carries the same 1946 build year
Bedroom count per dwelling diverges the feed carries 2 beds for the whole building; the listing's beds field reads 0, which is the absence marker and never a claim of zero; and building permit 201708215424 describes the two existing dwellings as efficiency units. property-dossier refused a registry bedroom class on this address for exactly this reason
Both dwellings vacant, no rent in place stated the listing text calls it a vacant duplex; no lease, estoppel, rent roll or stated gross rent exists in any artifact we hold, and property-dossier records no tenanted signal
Two DBI complaints on the parcel, one Active verified city-records overlay on block 4158 lot 066: complaint 202538064 filed 2025-05-23 (overgrown vegetation, plywood over the doors, overflowing mailbox, caller says abandoned) went to a director hearing 2025-10-16 and was abated 2025-12-05; complaint 202659283 filed 2026-07-14 reads 'Vacant building' and is still Active with no abatement date
Show the other 17 checks
Fact Status Source
Two distinct building permits on this parcel, ever verified re-counted from the DataSF building-permits census on block 4158 lot 066 (census pulled 2026-08-24): three rows, of which two are byte-identical copies of permit 201708215424, leaving two distinct permits
Permit 201708215424, filed 2017-08-21 as a $350,000 site permit to go from 2 dwellings to 4, CANCELLED 2024-07-02 verified DBI building permits census (DataSF i98e-djp9), block 4158 lot 066: existing units 2, proposed 4, R-3 to R-2, description covers a horizontal and vertical addition with two new 2-bed 1-bath dwellings and an interior remodel of the two existing efficiency dwellings
The other permit is a December 1989 over-the-counter job to install one aluminum window in an existing frame; issued 1989-12-29, expired 1991-04-08 verified DBI building permits census (DataSF i98e-djp9), permit 8925499, declared cost $220
Planning project 2017-010940PRJ opened 2017-08-25, closed 2020-03-23, net unit count 4.0; preceded by project review 2016-014483PRV, closed informational 2016-12-07 records city-records planning overlay, block 4158 lot 066. The PRV description proposes four units of affordable housing by adding a three-story two-unit building behind the existing one, on the assumption that ADU code changes allow the count. A record status of Closed does not by itself say approved or denied, and the decision document was not read
A Notice of Special Restrictions was recorded against the parcel on 2020-01-31 under project 2017-010940PRJ records city-records NSR overlay, centroid-in-parcel-polygon join: document '2109 22nd St NSR-20200131162453'. The document text was not retrieved, so what it restricts is unread
Zoned RH-3 (residential house, three family) under a 40-X height and bulk district verified city-records zoning and height joins on the parcel centroid, Planning Code section 209.1
Inside the Priority Equity Geographies special use district; the air-pollutant exposure layer returns a hit whose feature carries no attributes verified city-records zone joins on the parcel centroid: specialUseDistricts one hit, airPollutantExposure one hit with an empty property bag
Not on the mandatory soft-story list; no liquefaction, landslide or Maher row; no cultural or community-benefit district; no Rent Board petition or appeal within thirty meters verified city-records overlay: each of those layers records looked=true and returned zero rows for this parcel
Historic status CEQA category B, 'No evaluation and 45 years or older' records city-records historic-status join on APN 4158066, data as of 2026-05-12
2025 tax $14,643 on a $1,146,137 assessment; 2024 $14,166 on $1,123,665; 2023 $13,860 on $1,101,634 stated the listing's own tax history, verified 2026-08-23. These are totals with no line breakdown, self-reported by the listing page, and they are the only tax figures in evidence for this parcel
No measured FY 2025-26 secured tax bill unverified no SF Treasurer pull for account 4158-066 this pass, and APN 4158066 is not among the four FY 2025-26 secured bills we hold, so the tax line stands as modeled
The assessed value sits $296,137 above the ask, so a sale resets the ad valorem basis downward records the listing's tax-history assessment of $1,146,137 against the $850,000 ask. California resets the base year value to the purchase price on a change of ownership, in either direction
Last sold $1,048,000 on 2019-10-17; the ask is 18.9% below that. Earlier sales $850,000 (2016-04-29) and $355,000 (2002-06-10) verified the listing's price history, corroborated by its own sale-history block
94107 registry cells for 2-4 unit buildings, cycle 2026: one-bedroom recent p25/median/p75 $2,126/$2,876/$3,376 (n=38); one-bedroom in-place $1,876/$2,626/$2,876 (n=148); studio suppressed at n=26 records the SF Rent Board registry bands in our 94107 pricing framework, derived from the city's published registry dataset, built 2026-08-22
No Rent Board tenancy could be attributed to this building unverified property-dossier narrowed block 4158 to three candidate clusters that each match a two-unit building and refused to guess among them; the bedroom-sum and vintage discriminators were both non-discriminating
Only three banded 2-4 unit sales in this ZIP over 36 months at this building's size, too few for a per-foot comparison records our 36-month sold-comps sweep for 94107 (2026-08-21): 60 swept, 59 deduplicated, 58 priced, and the size band holds 3
29 listing photos analyzed; one priced flag, one unconfirmed flag, five open questions verified our archived machine photo-analysis run for this address, citation-checked by eye against the frames on 2026-08-30

18 facts checked against a named source. 5 we could not settle. 12 open questions, written out in the underwrite.

Assessor

What the roll says

Assessed value
$1,146,137
Rate used
1.73%
Tax bill at this ask
$14,705/yr

A bill on the roll belongs to the seller. A sale resets the assessment, so the figure above is what a buyer at this ask would owe.

Community facilities district: unchecked: with no secured bill in hand, neither a Mello-Roos or CFD special-tax line nor the parcel's ordinary direct charges have been read either way. About $1,088 a year of non-ad-valorem charge follows from the listing's own totals, without a single line of it being named.

Standing

Where this sat

Underwritten in the San Francisco run of October 6, 2026.