About · Methodology

How this site is built

West Loop Vibe is a citation-based neighborhood index. Every business, event, transit stop, and food-inspection record is pulled from a public dataset and refreshed each week. There are no opinions, no rankings, no reviews. This page documents how it works — what's in the data, what's not, and how to correct anything that's wrong.

The citation rule

Nothing appears on this site without a verifiable public source. The build fails outright if a business or event record is missing a source URL and a retrieval date. This isn't aspirational — it's enforced by the schema in src/content.config.ts, and a typo in a citation will break the deploy. The rule has one practical consequence: if you can't find something here, it usually means the source dataset doesn't have it yet, or it's outside the City's West Loop classification.

Source tiers

Sources are arranged in tiers, with later tiers only filling gaps — never overriding — what earlier tiers already say:

  1. Open data and platforms. The Chicago Data Portal for business licenses, events, food inspections, transit, and ridership; OpenStreetMap for point geometry, plus phone, website, and hours where its records carry them; OpenFreeMap for map tiles.
  2. Each business's own website. The first source for phone numbers and opening hours, plus short descriptions, taglines, founding years, and menu/reservation links — paraphrased only from what each business publishes themselves. See /sources/business-websites.
  3. Verified public listings. Where a business publishes no phone or hours on its own site, its public Yelp or Google Maps listing fills the gap — each value checked against the listing before it ships, and the source recorded per field. Listings only; reviews are never used. Wikipedia, Wikidata, and Google Places also ground each business's identity (the sameAs links in page metadata). See /sources.
  4. Published Chicago dining guides. Five guides whose mentions back the "Featured in N published guides" badge on business pages. See /sources/published-guides.
  5. U.S. Census ACS. Demographics on /west-loop/at-a-glance. See /sources/census-acs for the vintage and scope.

For the full per-source detail — dataset IDs, refresh cadence, licensing, and where each appears on the site — see /sources.

The refresh cadence

A scheduled job runs every Monday morning at 8 AM Chicago time. It re-pulls all of the City datasets, re-runs the OpenStreetMap match, regenerates the audit documents, and redeploys. The full refresh takes about ten minutes. Failures notify the maintainer through a macOS notification; if no notification arrives by Monday afternoon, the deploy went through.

The hand-curated enrichments (the website and verified-listing tiers above) are added in batches at irregular intervals. Each enrichment carries its own verified_at date, and a re-verification queue surfaces anything older than six months for a fresh check.

What the site won't do

Several things that other neighborhood guides do are off the table here, deliberately:

The closure mechanism

When a business closes for good, its page doesn't disappear — bookmarks and inbound links still resolve, but the page renders as a "permanently closed" notice with the source URL that verified the closure. Closed businesses are removed from the directory, the map, the category pages, and the sitemap; the standalone page stays as a quiet archive. The current closure log is on the corrections page.

When OpenStreetMap is wrong

Most phone numbers and hours on the site now come from each business's own website or a verified public listing, with the source recorded per field — OpenStreetMap supplies those fields only on the subset of listings still labeled OSM-sourced. Sometimes that OSM record is stale or incorrect — a since-changed phone number, an old website, a closed business still tagged as active. When a curated enrichment surfaces one of these, the case is logged in an internal OSM-edit queue. Some of those edits are then made upstream on OpenStreetMap itself, so the correction propagates to every other site that uses OSM, not just this one. The queue lives at audit/osm-edits.md in the project repo and is mirrored on the corrections page.

How to correct something

Because every fact on this site is sourced from a public dataset, the most durable way to fix an error is to fix the source — the correction then flows back here on the next Monday refresh.

The schema strategy

Every page emits machine-readable JSON-LD describing what's on it. Each business uses a specialised schema.org type — Restaurant, Hotel, BarOrPub, BeautySalon, SubwayStation — rather than the generic LocalBusiness, so search engines and AI overviews understand what kind of place it is. Events emit Event schema with a partial Offer for ticketed events. The whole site is knit together by a stable entity graph — one Organization, one WebSite, one Place for the West Loop, one Person for the editor — and every page references those by stable @id. The result: a crawler can build a coherent picture of the site from a single page visit.

What's open-source about this

The site's code is MIT-licensed (see LICENSE-CODE in the project repository). The site's content — page copy, headings, prose — is CC BY-NC 4.0 (see LICENSE-CONTENT). Third-party data retains its original license, attributed where used. The project repository will be made public once a few internal infrastructure details are scrubbed.

What changed recently

Page-level dateModified values on every business and event reflect when the source data was last refreshed; sitewide dateModified reflects the latest source retrieval across all data. The Monday refresh log is internal; the visible corrections page covers content changes the weekly refresh doesn't capture (manual closures, OSM-edit submissions, page restructures).

Questions or doubts

If a fact on this site looks wrong, follow the correction steps above — that's the fastest path. If something about the methodology itself is unclear or feels off, the maintainer is reachable through the project repository once it's public. In the meantime: every claim on every page points to its source, and the source is the authoritative answer.