Latest Run
Generated
—
Age
—
Newest listing
—
Active listings
—
Sale / Rental
—
Pass 2 complete
—
Pass 1 only
—
Partial
—
Run cost
—
"Active listings" is total inventory in the database, not the count updated on the latest run.
The pipeline is incremental — most days only a handful of listings change.
Pass-quality counts come from
db.json.
Search URLs
loading…
These are the StreetEasy queries the cron polls each day. Changing them
changes what Pass 1 discovers.
Pass 1 Coverage (14 days)
loading…
Daily count of listings returned by the StreetEasy search URL. Bars below
75% of the 14-day median are amber; below 50% are red. A sustained drop
usually means the Apify actor's proxy hit a blocked IP — not that the
market vanished.
W5 Cliff Guard — Last 7 Days
| Date | Pass 1 (sale + rent) | Active | Status |
|---|---|---|---|
| loading… | |||
pull.py aborts the merge if today's Pass 1 count drops below
50% of the 7-day median. Warns at 75%. Abort rows mean nothing was
merged that day — db.json carries forward unchanged.
Reference
Data sources:
Operator runbook:
data/latest.json · data/pipeline_health.jsonOperator runbook:
CLAUDE.md + PIPELINE-RESILIENCE-PLAN.md in the repo.