gbp-snapshot-intake v1.2 — surface, datetime, NOT_PRESENT/NOT_OBSERVED, PLACE_ID compute, category split

This commit is contained in:
Ty
2026-08-03 19:07:52 +00:00
parent 5bcd86eb8f
commit b8d35127c5
+42 -30
View File
@@ -1,4 +1,4 @@
# GBP Snapshot Intake v1.1
# GBP Snapshot Intake v1.2
**Purpose:** Capture raw Google Business Profile / Maps observations with zero analysis.
@@ -6,73 +6,85 @@
**Who consumes this:** Leonard / agents — map fields into Data Inventory only. Do not invent.
**Status values to use:** Observed / Not observed / Unknown (or the specific options listed below)
**Status vocabulary (required):**
- `NOT_PRESENT` — looked; confirmed absent (evidence of absence)
- `NOT_OBSERVED` — did not look or could not see (absence of evidence)
- `Unknown` — only when signal is ambiguous after looking
- Observed values: Yes / No / concrete text / numbers
Do **not** use “Not visible” as a synonym; map to NOT_PRESENT or NOT_OBSERVED.
---
## Snapshot Metadata
## Snapshot Metadata (required)
- **Client name:**
- **Snapshot date (YYYY-MM-DD):**
- **Snapshot datetime (ISO 8601 + timezone):** e.g. `2026-08-03T14:30:00-07:00`
- **Source:** Human eye on Maps / Places API / Owner dashboard
- **Observation surface:** desktop_maps / mobile_maps / knowledge_panel / other
- **Maps or Place URL:**
- **Place ID (if known):**
- **Place ID:** (if known; else leave blank — agent **computes from URL** when possible)
## Core Fields
- **Business name shown:**
- **Address shown:**
- **Phone shown:**
- **Address shown (exact string):**
- **Address canonical (optional normalize):** Suite not #; full street type
- **Phone shown (full digits only; no masking):**
- **Website shown:**
- **Primary category:**
- **Additional categories:**
- **Primary category (ONE canonical GBP category only):**
- **Additional categories (list; separate from primary):**
## Reputation
- **Star rating:**
- **Review count:**
- **Review responses observed:** Yes / No / Unknown
- **Approx how many responses / how recent (optional):**
- **Review responses observed:** Yes / No / NOT_OBSERVED
- **If Yes — how many of N have owner replies:**
- **If Yes — most recent owner response age/date (approx):**
## Ownership / Claim Signals
- **“Own this business?” prompt visible:** Yes / No / Unknown
- **Claimed status (your best judgment):** Yes / No / Unknown
- **Verified badge or equivalent observed:** Yes / No / Unknown
- **“Own this business?” prompt visible:** Yes / No / NOT_OBSERVED
- **Claimed status (observed or inferred):** Claimed / Unclaimed / Likely Claimed — inferred / Unknown
- **If inferred — list signals used:**
- **Verified badge observed:** Yes / No / NOT_OBSERVED
## Operations
- **Hours listed:** Yes / No
- **Hours text (paste if short):**
- **Open now indicator observed:** Yes / No / Unknown
- **Hours text:**
- **Open now indicator:** Yes / No / NOT_OBSERVED (only valid with snapshot datetime+TZ)
## Conversion
- **Booking button present on the GBP (not the website):** Yes / No / Unknown
## Conversion (complete the whole action-button row if any button is observed)
- **Booking button present on the GBP (not the website):** Yes / No / NOT_OBSERVED
- **Booking button label (if any):**
- **Messaging button present:** Yes / No / Unknown
- **Messaging button present:** Yes / No / NOT_OBSERVED
- **Other action buttons observed:**
## Content Surface
- **Photos present:** Yes / No
- **Approx photo count:**
- **Services listed:**
- **Updates / Posts status:** Present with content / Present but empty / Not visible
- **Services listed (exact labels):**
- **Posts section present:** Yes / No / NOT_OBSERVED
- **Post count (0 if empty section):**
- **Most recent post date (approx, optional):**
- **Q&A status:** Visible + has answers / Visible but empty / Not visible
- **Q&A status:** answers present / empty / NOT_PRESENT / NOT_OBSERVED
- **Attributes / highlights visible (optional):**
## Related Listings
- **Second related listing nearby:** Yes / No / Unknown
- **Related listing name(s):**
- **Related listing notes (factual only):**
- **Secondary feature IDs from MAPS_URL (if parsed):**
## Raw notes (optional, factual only)
-
-
---
## Agent mapping rules (do not reason beyond this)
1. Copy each filled field into the **GBP row** of the client Data Inventory.
2. If a field is blank, write `Not observed`.
3. Set **Verification Tier** to:
- `Tier 1` only if Source = Owner dashboard or owner-confirmed export
- otherwise `Tier 2`
4. Set **Snapshot Date** to the intake Snapshot date.
5. Do not create new threats unless a Threat Trigger Rule fires (see execution card).
6. Do not add severity, recommendations, or competitor comparisons.
2. Blank → `NOT_OBSERVED` (not “Unknown” unless truly ambiguous after looking).
3. If MAPS_URL present and PLACE_ID blank → **compute** place/feature IDs from URL; never leave PLACE_ID blank when derivable.
4. PRIMARY_CATEGORY must be a single value; if intake has multiple tokens → mark **INVALID_CAPTURE** and do not invent a primary.
5. Verification Tier: Tier 1 only if Source = Owner dashboard or owner-confirmed; else Tier 2.
6. Snapshot Date/time from intake datetime.
7. Do not create threats unless a Threat Trigger Rule fires (execution card).
8. Do not add severity upgrades, recommendations, or competitor claims.