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