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.
Where the data comes from
Eight public data sources feed the site. They're arranged in tiers, with later tiers only filling gaps — never overriding — what earlier tiers already say:
- Business listings — every active license tagged
neighborhood = "WEST LOOP"in the City of Chicago Business Licenses dataset (uupf-x98q). Deduplicated by location so a single storefront with three license types appears once. - Phone numbers, websites, opening hours — pulled from OpenStreetMap contributors via the public Overpass API. Matched to City records by name similarity and proximity. About 13% of businesses get at least one OSM field — mostly consumer-facing places that someone has bothered to map.
- Tagline, description, menu and reservation links, founding year, and a handful of curated facts — paraphrased from each business's own public website. This is the only tier that involves human writing, and the writing rule is strict: it can only restate what the business's own site says, with the source URL and verification date recorded alongside.
- Park events — from the Park District Event Permits dataset (pk66-w54g), filtered to Mary Bartelme Park, Skinner Park, Adams Playground, and Union Park; approved permits only.
- Citywide events that fall in West Loop — from the Special Events dataset (xgse-8eg7), geo-filtered to the West Loop bounding box.
- CTA L stations and bus stops — from the List of 'L' Stops (8pix-ypme) and CTA Bus Stops (qs84-j7wh).
- Food inspections — from the Food Inspections dataset (4ijn-s7e5), bbox-filtered, joined to businesses by license number. The most recent five inspections appear on each food business's page.
- Map tiles — from OpenFreeMap, with data from OpenStreetMap contributors. Free, no API key.
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 (tier 3 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:
- No reviews, ratings, or rankings. The site lists every
license-holder the City reports — not a curated "best of" by some
private editorial standard. The
/best/*pages are curated lists, but each pick is described in factual terms, paraphrased from the business's own site, and no scoring or comparison language is used. - No aggregated reviews from other platforms. Yelp and Google Reviews exist; they do that well; we don't duplicate them.
- No user-submitted content. Everything on the site comes from a citable public source. No reader-submitted tips, photos, or comments — the upkeep cost of moderating those would compromise the quiet-index character of the site.
- No paid placements. Brand pages and the
/hotelscomparison are editorial. Nothing on the site is sponsored, promoted, or paid for. - No ads. Not now, not planned.
- No newsletter or lead capture. If you want to keep up with new businesses or events, the .ics calendar feed is the closest thing — subscribe in your calendar app and new events appear automatically.
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
OpenStreetMap powers the phone numbers, websites, and opening hours on
about 13% of business listings. Sometimes the 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.
- Wrong name, address, ward, or license type — the data comes from the City of Chicago. The business needs to update its license record with the City. How to update a business license →
- Wrong phone, website, hours, or a closed business still listed — that data comes from OpenStreetMap. Anyone can edit it. Edit on OpenStreetMap → Changes will be reflected here on the next Monday rebuild.
- A bug on the site itself, or a question about how something works — reach out via the project's repository (link coming when the repo is made public).
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.