Browse, classify, and manage all properties. Click a row to view details.
| Property | City | State | Units | Year Built | Avg Rent | Available | Class | Type | Manager |
|---|
All properties with coordinates. Color-coded by asset class.
Create and manage competitive sets. Each comp set has a subject property and market comps.
Control the scraper, view logs, and manage the schedule.
Data quality issues flagged by the scraper during runs. Review and resolve daily.
| Property | Type | Severity | Field | Values | Observed | Run | Status |
|---|
Scrape apartments.com to discover and add new properties to the database. Uses Zyte API.
| Property | Address | Units | Website | Concession | Status |
|---|
Backfill lat/lng for properties with a full address but no coordinates (so they appear on the map). Uses the free US Census geocoder; failures are silent. Run multiple times until "remaining" hits zero.
Rebuild a comp set's cached snapshots, trends, and absorption payloads. Use after schema changes land or when a comp set is showing stale data that hasn't been refreshed by a new scrape ingest.
View and edit the URLs the scraper uses for each property.
| Property | Address | Platform | Website URL | Unit Info URL | Apts.com URL | Active | Last Scraped |
|---|
Experimental analyses across comp sets, properties, or the full inventory. Browse runs existing experiments; Ask lets Claude compose new ones from a natural-language prompt.
It can list and run existing experiments, or compose new ones on the fly. Try:
Save the current map filters as a named list. Re-apply later to see today's matching properties — filters re-run against fresh data, so the list stays current as scrapes land.
Paste a Python module with a top-level META dict and a def run(db, scope_type, scope_params). See the seed experiments for examples — download any of them to use as a starting template.
Total available units listed at each snapshot date.
Histogram of effective rents for currently available units by unit type.
Average effective rent over time by unit type.
| Category | Name | Amount |
|---|
| Name | Type | Rating | Distance |
|---|
Settings used by the weekly scraper. Auto-populated fields are updated after each scrape. Manual edits override auto-detection.
Subject's position within the comp set by unit type.
Comp properties currently offering concessions.
Occupancy = only "Available Now" units. Exposure = all listed units (now + future-dated).
Rent range at which units were absorbed. Box = IQR (25th-75th percentile), line = median, whiskers = full range.
| Unit Type | Segment | Absorbed | Range | Q1 | Median | Q3 | Mean | Avg PSF |
|---|
Where the comp set's middle 50% (IQR) of absorbed rents sat each period, with subject's individual absorptions overlaid. Shows whether subject's pricing has been inside, above, or below the market band over time.
Units absorbed per snapshot period.
Listed inventory at each snapshot date.
| Period | Unit Type | Subj. | Mkt. | Total | Range | Subj. Median | Mkt. Median |
|---|
| Property | Unit | Type | First Listed | Median First 2 | Absorbed At | Change | # Adj. | DOM | Flag |
|---|
Trajectory of average effective asking rent on listed units over time.
Average asking rent by calendar month as % deviation from market mean. Reveals seasonality patterns across the year.
Additive decomposition: Original = Trend + Seasonal + Residual. Separates the long-term trend from seasonal effects and noise.
Ask about what you're seeing on this comp set.