Neo Guide
Neo home

WhatsApp and chat

How Neo understands Nigerian shopping language

How phrases such as “40k” and “no pass 40k” become clear naira prices.

Why normalization is backend-owned

Nigerian buyers naturally mix English, Pidgin, shorthand, and implied naira values. The planner records interpreted entities for observability, but deterministic parsing of the original message protects price constraints from being dropped or altered before catalogue search.

Supported price forms

Buyer phraseCanonical constraint
30k to 40k₦30,000 minimum and ₦40,000 maximum
30 to 40kShared scale produces the same range
30k reach 40kInclusive range
no pass 40k₦40,000 maximum
my budget na 40k₦40,000 maximum

Bounds become integer minor units before database filtering. The model cannot replace or discard a deterministic budget.

Search and failure behavior

If the model omits the product entity, the original message remains the product-query fallback. A complete request with no matching product in range returns the same truthful any-seller no-stock outcome. Price language never invents availability or seller suitability.

Evidence and tests

  • src/commerce-language.ts
  • src/conversation-state.ts
  • src/whatsapp.ts
  • test/commerce-language.test.ts
  • scripts/conversation-eval-corpus.ts
  • scripts/openai-conversation-smoke.ts