Methodology
Where the data comes from, how often it is checked, and what we will not do with it.
OpsBlu tracks 2,488,877 US local businesses. This page is the honest version of how. If something here does not match what you see in a record, tell us and we will fix the record or this page.
Sources
- Public business websites. The business's own site is the primary source for contact details, platform, performance, tags and tracking. We fetch it the way a browser does and record what loads.
- Certificate transparency logs. Every TLS certificate issued for a public domain is logged publicly. We watch those logs to catch new domains and site launches within hours, which is how "new business" and "site launched" signals start.
- Public business directories. Published listings give us names, addresses, categories and phone numbers to cross-check against the website. We take identity and location from them. We do not take, store or display reviews, ratings or photos from any directory.
- Our own crawlers and checks. Reachability, Core Web Vitals, SEO basics, tag detection and change detection are measured by us, on our infrastructure, on a schedule.
We do not buy lists, scrape social networks for personal profiles, or collect named-person contact data. Contacts are business or role inboxes and published main lines only.
Refresh cadence
These are the schedules we run against. Every record shows its own last_verified_at; trust the timestamp over the table.
| What | Target cadence | Notes |
|---|---|---|
| New-business and new-domain detection | Daily | From certificate logs and directory diffs. Flagged hot for 30 days. |
| Website reachability, platform, tags, tracking | Weekly | Changes produce dated entries in signals.changed. |
| Core Web Vitals | Monthly | Lab run on a mobile profile. Sooner after a detected platform change. |
| Contact re-verification | Quarterly | Or immediately when a bounce or dead number is reported. Reported records are credited back. |
| Closure detection | Weekly | Site gone, listing removed, or certificate lapsed for 60+ days. |
What each field means
| Field | Meaning | How we get it |
|---|---|---|
| name, category, address, city, state, zip | Identity and location as published by the business. | Public business directories, the business website, our crawlers. |
| phone, emails | Published business or role inboxes (info@, office@) and main phone lines. Never named-person addresses. | Business website contact pages; cross-checked against directories. Re-verified quarterly. |
| website, domain, platform | Primary site and the CMS or builder it runs on. | Weekly HTTP checks; fingerprinting of headers, scripts and markup. |
| cwv (lcp, cls, inp, pass) | Core Web Vitals on a mobile profile. Pass = LCP ≤ 2.5s, CLS ≤ 0.1, INP ≤ 200ms. | Lab measurement of the homepage, monthly. Field data where published. |
| seo (title, meta, h1, schema, sitemap, robots) | Presence of the six basics on the homepage and at the domain root. | Weekly crawl. |
| analytics, ads_platforms, pixels | Tags and pixels that load on the site: GA4, Meta Pixel, Google Ads tag and others. | Headless-browser network capture, weekly. |
| server_side_tracking, consent_tool | Whether conversions are relayed server-side (first-party endpoint or server container) and which consent manager, if any, is present. | Network capture and script fingerprinting, weekly. |
| ssl_issued_at, first_seen_at | When the current certificate was issued and when we first saw the business or domain. | Certificate transparency logs; our own first-observation timestamp. |
| status, signals.changed | active / closed / unknown and a dated log of changes: new business, site launched, platform changed, pixel added or removed, closed. | Daily diff of the fields above. |
Full schema in the API reference and openapi.json.
Accuracy and confidence
- Measured fields are exact for the moment we measured. Platform, tags, CWV and SEO basics are observations, not estimates. They can be stale by up to one refresh cycle.
- Contact fields are published, then checked. An email is listed only if it appears on the business's own site or a directory and passes syntax and domain checks. We do not guess addresses from name patterns.
- "No website" means we could not find one. A business with only a social page counts as no website. If we are wrong, the owner can tell us at /remove or /contact and we fix it.
- Bad data costs us, not you. Report a bounce, dead number or closed business and the record is credited back and re-queued.
Coverage
A city is complete when discovery, enrichment and contact verification have all run across it. We publish statistics pages and sell records only for complete cities. Cities marked sweeping are visible but not yet indexable. 16 cities are complete today.
Oregon
Next: California, Idaho, Nevada, Arizona, Colorado, Texas. We announce each state as its sweep completes; the newsletter in the footer is the fastest way to hear.
Rules we hold ourselves to
- No business locations on free pages. Public pages and free API responses show aggregates only: no pins, no dots, no coordinates, no names. Maps on free pages use hexagonal cells, not points.
- Small counts are suppressed. Any cell, metric or category with fewer than 5 businesses displays as "<5" so a count can never identify a business.
- No reviews, ratings or photos. We do not collect them and we will not add them.
- Contacts are revealed on purpose. Phone and email appear only when a record is opened inside the app or fetched by ID. Every reveal is logged and billed.
- Business or role contacts only. No named-person data.
Removal requests
Any owner or employee can ask us to remove a business at /remove. You get a ticket ID immediately and a confirmation email. Removal applies to search, exports and the API within 72 hours, and the business is added to a suppression list so future collection skips it. We do not ask why.
Page updated Oct 22, 2026. Questions: contact · privacy policy.