PURE Location · Share & En-route

My sharing · choose how you share location

Sharing is off

Your choice is private to you and your brokerage team — saved to your profile. Sharing always shows a banner so you know when you're visible.

Team visibility · who's sharing right now

Map preview — live tiles pending a mapping provider (see spec below)
Agents & field staff

Broker/team view only — visible to managers and the agent themselves. Address-verify and driver's-license match (safety) surface here when enabled.

En-route · "on my way"

ETA

En-route auto-stops on arrival or when the ETA elapses, then returns you to your normal mode. Recipients see your live position and address for safety confirmation only.

Backend (Lane B / Code): persistence + live positions need mcp_location_set(mode, ttl), mcp_location_team(org_id), mcp_enroute_start(dest, eta) / mcp_enroute_stop() on a pure_locations table (RLS: self-write, broker-read). Map tiles need a provider key (MapLibre/Mapbox). Filed as lane-mail + tickets.

Direct share · send your live location to one person

Precise location

Get an exact GPS fix before you share or navigate. PURE samples your position and improves accuracy until it locks in.

Share with a specific person

Send just one person a private, time-boxed link to your live position — a teammate for safety, or a client you’re meeting. It expires on its own.

Backend (Lane B / Code): precise fix uses navigator.geolocation.watchPosition({enableHighAccuracy:true}) client-side. Peer share needs mcp_location_grant(target_id, ttl) returns a signed, expiring share token; the recipient opens ?share=<token> which calls mcp_location_view(token) (validates expiry + that they’re the named target) to read the live position. Grants/revocations log to audit_log; revoke = mcp_location_revoke(token). Tickets: t-loc-services, t-loc-sharing.

Safety · confirm where you're meeting

Address verify

Before a showing or client meeting, confirm your live location matches the address you were given. A mismatch warns you before you arrive.

Identity verification Required before first meeting

Before meeting a new client in person, capture their photo ID. PURE reads it, saves it to that client's record, and cross-checks the name & address against your meeting and what's on file — then clears you to meet.

Upload or photograph their driver's license
Stored securely on the client record · access is audit-logged

Identity verification is a required pre-meeting safety step for first in-person meetings. The ID and its read fields are saved to the client's record and to your duty-of-care log; cross-reference results are kept so a mismatch is never silently ignored.

Backend (Lane B / Code): address verify uses Geolocation + mcp_geocode(address) (server-tuned radius). Identity verification: utility.extract vision OCRs the ID mcp_identity_save(contact_id, fields, image) writes the photo + parsed fields to pure_identity_docs (encrypted, RLS broker/agent-only) AND upserts name/DOB/address onto the linked pure_contacts KYC fields. mcp_identity_xref(contact_id, meeting) compares license name/address vs. the entered client name, the meeting address, and the contact on file, returns a match score, and gates safety_check.cleared. Every run logs to audit_log. Tickets: t-loc-address-verify, t-loc-dl-match (identity-verify scope expanded per Mike 6/26). (who/when/result — never the image). Tickets: t-loc-address-verify, t-loc-dl-match.