realestate-us — US rentals, AMI tables, utility allowances and tracts — openbash
Rental listings merged across sources, the HUD tables that decide what a subsidised rent may be, and tract-level ACS and opportunity data.
realestate-us
realestate-us is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.
realestate-us ami-rents CA --county Alameda
help
realestate-us: listings and the tables that bound them, as JSON.
RETURNS
One JSON object on stdout.
OPTIONS
A study run with no arguments prints its own — `realestate-us search` on a
line by itself lists every flag it takes. Worth doing once per study: the
flags are where the defaults are, and a default is a decision somebody made
for you.
START HERE
`ami-years` before assuming a year exists. The tables are published per
state and per year, and a missing year is not an empty answer, it is a
different question.
WHERE A SITE IS
`resolve "3403 Piedmont Ave, Oakland, CA"` names the 2020 census tract,
county and place — `method` says whether the Census Geocoder or the stored
TIGER/Line polygons answered, and "lat,lng" works in place of an address.
`tract <GEOID>` and `tracts <COUNTY_FIPS>` return ACS 5-year estimates with
their margins of error, and the CTCAC/HCD opportunity category. Every value
carries `evidence`: the source url, dataset, vintage and when it was read.
A value the Census suppressed has a null estimate and a flag
(`estimate_not_computed`); a top-coded median ("$3,500+") has a null
estimate, `top_coded`, and the threshold in `bound`. Neither is ever 0.
WHAT SURROUNDS IT
`location 37.8015 -122.4092` measures a point: restaurants, cafés and bars
within 500 m, bus stops within 400 m and the nearest rail stop and park
(OpenStreetMap); the EPA walkability index with residents and jobs per
acre; and a year of police incidents (violent, property, disorder) and 311
street requests (encampments, cleaning) within 400 m. Crime and 311 are
each city's own: `location-coverage CA` lists the counties that have them,
and a county without lists them under `unsupported` — never as zero.
INDIA IS A DIFFERENT PROGRAM
`realestate-in`, and deliberately not a subcommand of this one. There is no
AMI band there for a rent to be measured against, and no ZIP to search by;
the answers come from different vendors at a different price. A program that
sold both sold half of itself to everybody.
Studies:
search <zip_code>
rental listings in one ZIP, merged across sources
detail <comp_key>
everything known about one listing, by its comp key
harvest <zips>
pull several ZIPs into the store at once — comma-separate them
ami-rents <state>
maximum rents by AMI percent and bedroom count
ami-income-limits <state>
income limits by AMI percent and household size
ami-counties <state>
which counties a state has AMI tables for
ami-years <state>
which years a state has AMI tables for — check this before assuming one
utility-allowance <state>
utility allowance schedules, which set what rent a voucher actually covers
resolve <address>
the 2020 census tract, county and place for an address or a coordinate
tract <geoid>
every ACS value for one tract, with its MOE and flags, and its opportunity category
tracts <county_fips>
every tract in a county, the same rows as `tract`, for fitting a model
location <lat> <lon>
what surrounds a point: restaurants, bars, transit, parks, walkability, residents and jobs per acre, and a year of crime and 311 requests within 400 m
location-coverage <state>
which counties have crime and 311 sources for `location`
opportunity-seed <year> <source_url>
staff: load a year of the CTCAC/HCD Opportunity Map from TCAC's published file
vintages <state>
which ACS vintages, TIGER polygons and TCAC years are loaded for a state, and the last harvest's error
tracts-harvest <states>
staff: start a tract harvest pass now; watch `vintages` for it to land
JSON to stdout, so it composes: pipe to `jq` to pick a field, or `> /tmp/…` to keep it.
Run a study with no arguments — `realestate-us search` — to see what it takes.
What it answers
realestate-us search — rental listings in one ZIP, merged across sources realestate-us detail — everything known about one listing, by its comp key realestate-us harvest — pull several ZIPs into the store at once — comma-separate them realestate-us ami-rents — maximum rents by AMI percent and bedroom count realestate-us ami-income-limits — income limits by AMI percent and household size realestate-us ami-counties — which counties a state has AMI tables for realestate-us ami-years — which years a state has AMI tables for — check this before assuming one realestate-us utility-allowance — utility allowance schedules, which set what rent a voucher actually covers realestate-us resolve — the 2020 census tract, county and place for an address or a coordinate realestate-us tract — every ACS value for one tract, with its MOE and flags, and its opportunity category realestate-us tracts — every tract in a county, the same rows as `tract`, for fitting a model realestate-us location — what surrounds a point: restaurants, bars, transit, parks, walkability, residents and jobs per acre, and a year of crime and 311 requests within 400 m realestate-us location-coverage — which counties have crime and 311 sources for `location` realestate-us opportunity-seed — staff: load a year of the CTCAC/HCD Opportunity Map from TCAC's published file realestate-us vintages — which ACS vintages, TIGER polygons and TCAC years are loaded for a state, and the last harvest's error realestate-us tracts-harvest — staff: start a tract harvest pass now; watch `vintages` for it to land