Judge a neighbourhood for investment before judging any property in it: draw and record the boundary, build a dated evidence table for closed sales, achieved and asking rent, vacancy from counts, zoning, flood hazard, pipeline supply and demand anchors, run the bundled evidence checker, state the risks and the limits of what area data can prove, and turn the area read into a property level diligence plan. Use when screening an area, a suburb, a tract or a small market for rental, value-add, flip or small commercial investment, or when a property pitch leans on area claims that need checking first.
./install.sh neighborhood-investment-analysisname: "neighborhood_investment_analysis" description: "Judge a neighbourhood for investment before judging any property in it: draw and record the boundary, build a dated evidence table for closed sales, achieved and asking rent, vacancy from counts, zoning, flood hazard, pipeline supply and demand anchors, run the bundled evidence checker, state the risks and the limits of what area data can prove, and turn the area read into a property level diligence plan. Use when screening an area, a suburb, a tract or a small market for rental, value-add, flip or small commercial investment, or when a property pitch leans on area claims that need checking first."
Most bad property buys start one level up. The property model looked fine and the area was never checked on its own: rent came from asking listings, vacancy came from a city average, zoning came from the listing text, and new supply down the road never entered the picture.
This skill judges the area first, with its own evidence, before any property is underwritten. It ships a checker, scripts/area_check.py, that grades the evidence behind a brief: required categories present, every row sourced and dated, stale rows flagged, thin samples flagged, wide margins of error flagged, vacancy computed from counts, and a gross rent figure that is labelled gross every time it appears.
Use the property level skill for the property itself once the area passes. Area evidence can kill a thesis, narrow it, or clear the way for property diligence. Area evidence cannot value a house, set its rent, or promise a return.
Write down, in one or two sentences, what would have to be true about this area for the investment to work, and which strategy it serves: buy and hold rental, value-add, flip, or small commercial.
Each strategy reads the same area differently. A rental thesis lives or dies on achieved rent, vacancy and pipeline supply. A flip thesis lives or dies on closed sales depth and how fast similar homes sell. A small commercial thesis adds foot traffic, business mix and parking or access rules. Name the two or three facts that would kill the thesis. Those facts get checked first.
Define the area with named streets, census tracts, or both, and record what sits just outside it. Name the competing area tenants or buyers also consider.
Rules for the boundary:
Open references/evidence-table.md and fill it before writing any verdict. Required categories: sales, rent, vacancy, zoning, hazard, supply, demand.
Every row carries an indicator, a value, the geography, a period end or a check date, a named source, and a count or margin of error where one exists. A fact with no source or no date goes on the gaps list, not in the table.
Separate measures that sound alike:
Record the closed sales count beside every median. A median from 4 sales is a story about 4 sales. The checker flags under 5 sales as very thin and under 10 as thin.
Price indexes need the same discipline. The FHFA House Price Index is a weighted repeat sales index built from conventional conforming mortgages. It measures price change, not a price level, not a median, and not the value of any one property, and its flagship series does not directly cover condos, multi-unit property, commercial property or land. Repeat sales indexes are also re-estimated each release and recent points revise the most, so treat the newest points as provisional. Full sourcing in references/sources.md.
An area sales read can support a price level range for a period and a direction of travel. It cannot support a forecast, and the brief never turns a past change into a promised future one.
Compute rental vacancy from counts with the Census formula: vacant for rent divided by renter occupied plus vacant for rent plus rented but not yet occupied, times 100. Run it with:
python3 scripts/area_check.py vacancy --vacant-for-rent 48 --renter-occupied 920 --rented-not-occupied 32
That example returns 4.8 percent. Seasonal, recreational, occasional use, migrant and other vacant units sit outside this formula, so a total vacancy figure from another source will read higher and the brief should say which definition a figure uses.
Handle ACS vacancy and rent figures with their margins of error showing. ACS is a sample survey with a lag, small areas only get 5-year estimates, and tract level vacancy margins of error can run 3 percentage points or more. Quote the range the margin allows, not the point estimate alone. Use 5-year estimates for tracts, and compare change over time only across non-overlapping 5-year periods.
Cross-check the survey read with a current local snapshot: manager achieved rents, current listings with days listed, and how long vacant units in the boundary have sat. Label the snapshot with its date and its count, and keep it in its own row.
Record the demand anchors a reader can verify: major employers and institutions inside or near the boundary with the dated source behind any jobs claim, transit or road access as it stands today, and population or household change measured across non-overlapping ACS periods with margins of error showing.
Flag concentration plainly. An area where one employer, one plant, or one institution drives most rental demand carries a single point of failure, and any dated filing, closure notice or expansion notice for that anchor goes into the table with its date.
Put the brief into JSON following references/input-schema.md, then run:
python3 scripts/area_check.py check brief.json --markdown evidence-check.md
Read the verdict correctly:
PASS_EVIDENCE means the evidence is complete, dated and sourced enough to form a view. It says nothing about whether the area is good.CAUTION means a row is stale, thin or noisy. Form a view only with that limit written into the brief next to the figure it affects.INSUFFICIENT means a required category is missing or a row has no source or date. Stop. The output is a gaps list and a plan to fill it, with no area verdict.Never edit a figure, drop a row, or widen a boundary to move a verdict. Replace weak evidence with stronger evidence, or report the weakness.
Land on one of three verdicts, with the evidence rows behind it cited by indicator:
Then translate every material area finding into a property level check. Flood finding becomes an elevation certificate and an insurance quote for the specific address. Zoning finding becomes a written legal unit confirmation for the specific property. Vacancy finding becomes the vacancy allowance floor for the property model, at or above the measured area rate. Pipeline finding becomes a lease-up and rent growth assumption the property model must survive. Achieved rent finding becomes lease and deposit verification on the specific property, never a copy of the area median into its rent line.
Close with what would change the verdict: two or three dated, checkable facts that would move a do not proceed to a fresh look, or a proceed to a stop.
Worked pairs are in references/worked-briefs.md: a strong area and a weak area that both pass the evidence check, and a thin area that gets no verdict at all.
Return all of the following:
references/evidence-table.md, every row sourced and dated, asking and achieved rent in separate rows, closed sales apart from listings.PASS_EVIDENCE with a good area is the single most damaging error this skill can make.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.