Know who is on the site,
without invading them.
Vectrant infers customer demographics from browsing and chat behavior using a six-stage pipeline that combines deterministic name and ZIP lookups, behavioral heuristics, a context-aware LLM, ground-truth validation, and an aggregate-only neighborhood profile fed invisibly to the chat. Race, religion, and political signals are blocked at the data-load layer.

Six stages, one answer.
Most platforms ask one LLM to guess everything. Vectrant runs five inference stages plus an aggregate-only chat context — each grounded in real data.
Stage 1 — Hard signals
Customer first name resolves to gender via the U.S. Social Security Administration baby-name dataset (104,000 names, public domain). 5-digit ZIP resolves to median household income via Census ACS B19013. Order line items resolve to life-stage via category rules (crib + monitor → new parent). Each is deterministic, with a confidence score that reflects population-level reliability — not a model guess.
Stage 2 — Behavioral signals
Average viewed product price tier confirms or contradicts the ZIP-derived income. Time-of-day distribution informs age band. Device fingerprint provides a weak co-signal. None of these are individually strong; the combiner blends them with the hard signals.
Stage 3 — LLM with priors
The model receives Stages 1 and 2 as priors instead of starting from zero. Its job is to update the priors based on chat content (pronouns, life events, vocabulary) — not to invent confidence scores. Costs go down. Quality goes up.
Stage 4 — Bayesian combiner
Per attribute, predictions are grouped by value and weighted by source. Agreement between sources adds to confidence. Disagreement subtracts. Anything below a 30% confidence floor returns null — better than a low-quality guess.
Stage 5 — Ground-truth validation
When CDA enrichment delivers real customer data later, predictions are compared to it. Real name confirms gender. Real order amount confirms income tier. Real category mix confirms life stage. Per-signal accuracy is logged and surfaced in the calibration dashboard so the platform proves its own claims.
Stage 6 — Neighborhood profile
Aggregate ZIP-level Census data (median income, median household size, median age, urbanicity, primary language) is loaded with a strict allowlist that rejects race, religion, political affiliation, and educational-attainment tables. The profile is fed to the chat as invisible internal context — never mentioned to the customer, never used to differentiate financing or suppress products.
What the chatbot actually does with it.
Stage 6 informs how the bot answers — never what gets offered. The same product set, the same financing, the same tone, every time. The neighborhood data is ambient context, like the time of day or the customer's product page.
Better answers, not different offers
A customer in a rural ZIP asking about "a small fridge" probably means a 3-cu-ft mini-fridge for a garage. A customer in an urban ZIP asking the same probably means a counter-depth 18-inch unit for a galley kitchen. Same products available to both; the bot just understands the question more accurately.
Encoded guardrails
The allowlist enforcement is in code, not policy. The data-load script raises if asked for a banned table. The runtime block enforces the allowlist a second time. The chat prompt block contains explicit no-mention instructions wrapped in <internal_context> tags. Audit-checkable, reproducible.
Toggleable instantly
A single platform-controlled setting flips Stage 6 off without a deploy. The full Stages 1–5 BI pipeline keeps running.
Demographic Inference, running on your data.
30-minute walkthrough on your real catalog. No slideware, no demo data.