
Mama Ngozi Will Teach You to Negotiate (If You Don't Annoy Her First)
Role-play negotiation with Mama Ngozi, a Nigerian market trader with moods, and get a personalized scorecard with tips.
The Fabric That Cost Too Much
You know what happened? My cousin Adaeze flew back from London last summer. First morning home, she goes to Onitsha market to buy fabric for wedding aso-ebi. Beautiful ankara print, six yards.
Trader says "Eight thousand naira."
Adaeze says "Okay."
EIGHT THOUSAND. The woman didn't even blink. Just collected the money, wrapped the fabric, smiled.
Later at home, our aunty sees the fabric. "Eight thousand? Adaeze, this cloth is four thousand, maximum five. That woman saw you coming with your oyibo accent and finish you proper."
Adaeze felt stupid. "But I tried to negotiate! I said 'can you reduce it?' and she looked offended, so I just paid."
That's the problem. Negotiation isn't just asking "can you reduce?" It's reading the room. Knowing when to push. When to smile. When a lowball offer makes you look serious versus makes the trader vex and tell you to go find another seller.
You don't learn this from books. You learn from doing it wrong fifty times until you finally get it right.
What If You Could Practice Without Losing Money?
That's what I built. Haggle Master. You negotiate with Mama Ngozi, a virtual trader selling fabric for ₦5,000. Your goal? Get her down to ₦2,800 without making her so annoyed she refuses to sell.
She has moods:
- Start friendly, she's open to bargaining
- Stay respectful, she warms to you
- Push too hard, she gets suspicious
- Two crazy lowball offers? She's annoyed and done with you
End of the game, you see your scorecard. How close did you get to the bottom price? How many rounds did it take? Did she like you or were you that customer who wastes her time?
The mechanics work for any negotiation. Salary discussions. Vendor contracts. Client pricing. Same principles: read the other person, make smart offers, know when you've pushed your luck.
Live URL: https://d3ox0wv7c0iwse.cloudfront.net
The Mood System (Or: How to Annoy a Market Woman)
Here's how Mama Ngozi works. She tracks everything you do.
You offer ₦1,500 for something she's asking ₦5,000? That's disrespectful. She remembers. You do it twice? She's annoyed now. Game over.
You offer ₦4,000, drop to ₦3,500, then ₦3,200? Respectful descent. She sees you're serious but not rude. She'll work with you.
The code checks three things every round:
- How many lowball offers have you made (below 60% of current price)?
- Where's your current offer relative to her starting price?
- Are you near her bottom line yet?
Two lowball offers = annoyed mood = she's done
Stay above 70% of starting price = warm mood = she likes you
Reasonable drops = friendly mood = normal haggling
Stay above 70% of starting price = warm mood = she likes you
Reasonable drops = friendly mood = normal haggling
This mirrors real market behavior. Traders have patience limits. Push too hard and they'll send you away. "I'm not selling to you. Go."
The AI That Speaks Like a Real Trader
Mama Ngozi doesn't say "I can reduce the price to 4,500 naira." That's robot talk.
She says: "Customer! You want to buy or you're just here to waste my time? This fabric is quality! Look at the print, look at the color. ₦5,000 is fair price."
When you lowball her: "Ah-ah! ₦2,000? You think I'm doing charity? Go and meet those roadside people if you want fake fabric!"
When you're respectful: "Okay, my sister. Because you're not forming, I can do ₦3,200 for you. That's my final."
The system prompt tells Claude to be Mama Ngozi. Use market expressions. React to the customer's offer based on mood. Never go below the bottom price. Keep responses short and sharp.
Every response feels like you're actually standing in front of a market stall, not chatting with a chatbot.
The Scorecard That Shows You What You Did Wrong
Game ends when you accept a price or give up. Then you get the truth.
Your score (out of 100):
- 50% from how close you got to bottom price
- 25% from how many rounds it took
- 25% from what mood she ended in
Three strategies I tested:
Aggressive lowball guy (₦1,500 → ₦2,000 → ₦2,500):
Final price: ₦2,800 (accepted)
Rounds: 4
Mood: Annoyed
Score: 62/100
Tip: "Watch your tone! Respectful haggling gets better prices."
Final price: ₦2,800 (accepted)
Rounds: 4
Mood: Annoyed
Score: 62/100
Tip: "Watch your tone! Respectful haggling gets better prices."
Smart gradual decline (₦4,200 → ₦3,800 → ₦3,400 → ₦3,000):
Final price: ₦3,000 (accepted)
Rounds: 5
Mood: Friendly
Score: 78/100
Tip: "Great job! You got a good deal with minimal friction."
Final price: ₦3,000 (accepted)
Rounds: 5
Mood: Friendly
Score: 78/100
Tip: "Great job! You got a good deal with minimal friction."
Too scared to haggle (₦4,800 → ₦4,600 → accepted):
Final price: ₦4,600 (accepted)
Rounds: 3
Mood: Warm
Score: 58/100
Tip: "You could have negotiated lower! Try being more persistent."
Final price: ₦4,600 (accepted)
Rounds: 3
Mood: Warm
Score: 58/100
Tip: "You could have negotiated lower! Try being more persistent."
See the lesson? Aggressive gets you a low price but burns the relationship. Too cautious keeps everyone happy but you overpay. Middle ground wins
How It Actually Works (The Tech Part)
Frontend is basic HTML and JavaScript. S3 bucket, CloudFront distribution. You type an offer, it goes to Lambda.
Lambda does the work:
- Gets your message and current game state
- Analyzes your offer (is it lowball? reasonable? near bottom price?)
- Updates Mama Ngozi's mood
- Sends everything to Bedrock (Claude Haiku 4.5)
- Bedrock generates her response in character
- Lambda sends back response + updated game state
Game state includes: current price, starting price, bottom price, round count, mood, conversation history.
The tricky part was parsing natural language offers. People don't type "I offer 3000." They type "What about 3k?" or "Can you do three thousand?"
I use regex to pull numbers out of the message, then sanity check (offer can't be more than double the current price). If the offer is too vague, Mama Ngozi asks you to be clearer. "How much are you offering? Speak clearly!"
What I Learned Testing This
I had seven people from my student group try it. Everyone approached it differently.
Two people tried to charm her with compliments before making offers. "Mama, you look well today! This fabric is beautiful!" Then offered ₦2,500. She was still suspicious because the offer was too low. Charm doesn't override math.
One person tried to rush. First offer ₦2,000. She refused. They immediately went "Okay ₦3,500 final offer." She accepted but the score was low because they skipped the negotiation dance. You're supposed to go back and forth, feel out the limits.
Best performer? Started at ₦4,000. Mama countered ₦4,500. They went ₦3,600. She said ₦3,800. They settled ₦3,200 after five rounds. Score: 81/100. Mood: Warm. Perfect.
The feedback loop works. People play once, see their score, understand what they did wrong, then play again with a different strategy. That's how you build skills. Not lectures. Iteration.
What's Missing (For Now)
Right now it's one item, one trader, one personality. Next version should have:
- Different traders (some easier, some harder to negotiate with)
- Different items (phone, car, rent deposit) with different dynamics
- Multiplayer: two humans negotiate against each other for practice
- Voice mode: practice speaking your offers out loud, not typing
But for learning the fundamentals? This works.
Try It Yourself
If you're about to negotiate salary, client rates, vendor contracts, anything where money is involved and the other person has room to move on price, practice with Mama Ngozi first.
She'll teach you when to push and when you've gone too far. One "Ah-ah!" means you're testing her patience. Two means she's done with you.
Live URL: https://d3ox0wv7c0iwse.cloudfront.net
Try to get her down to ₦2,800. See what score you get. Then try again with a different strategy.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article