KEY INSIGHT
Nigerian market pricing requires Naira-denominated tiers, awareness of payment method availability, and pricing that reflects local purchasing power.
Pricing for the Nigerian market involves different considerations than USD pricing. Naira pricing tiers should align with local payment capabilities, competitor positioning, and sustainable unit economics.
Pricing should be straightforward and avoid currency confusion. ₦1,500/month is more comprehensible than $2.00/month for most Nigerian customers.
```python
@dataclass
class NairaPricingTier:
id: str
name: str
price_naira: int
included_tokens: int
features: list[str]
priority_support: bool
api_key_limit: int
NAIRA_TIERS = [
NairaPricingTier(
id="free",
name="Free",
price_naira=0,
included_tokens=10_000,
features=[
"Access to GPT-3.5 Turbo",
"Up to 2 API keys",
"Community support",
"Basic analytics"
],
priority_support=False,
api_key_limit=2
),
NairaPricingTier(
id="starter",
name="Starter",
price_naira=1_500,
included_tokens=100_000,
features=[
"Access to GPT-3.5 Turbo, GPT-4o Mini",
"Up to 5 API keys",
"Email support",
"Standard analytics",
"Webhooks"
],
priority_support=False,
api_key_limit=5
),
NairaPricingTier(
id="professional",
name="Professional",
price_naira=5_000,
included_tokens=500_000,
features=[
"Access to all models",
"Up to 20 API keys",
"Priority support",
"Advanced analytics",
"Webhooks",
"Team seats (up to 5)"
],
priority_support=True,
api_key_limit=20
),
NairaPricingTier(
id="enterprise",
name="Enterprise",
price_naira=25_000,
included_tokens=2_000_000,
features=[
"Everything in Professional",
"Unlimited API keys",
"Dedicated support",
"Custom integrations",
"SLA guarantee",
"Unlimited team seats",
"Custom models"
],
priority_support=True,
api_key_limit=-1 # Unlimited
),
]
def format_naira(amount: int) -> str:
"""Format kobo as Naira string."""
naira = amount / 100
return f"₦{naira:,.2f}"
```
Pricing communication matters. Display prices as "₦1,500/month" not "₦150,000/kobo/month." Internal calculations use kobo for integer precision, but user-facing displays use Naira.
```python
class PricingDisplay:
def format_tier_card(self, tier: NairaPricingTier) -> dict:
"""Format tier for display in pricing page."""
return {
"id": tier.id,
"name": tier.name,
"price_display": f"₦{tier.price_naira:,}" if tier.price_naira > 0 else "Free",
"period": "/month",
"included_tokens_display": self._format_tokens(tier.included_tokens),
"features": tier.features,
"cta": "Get Started" if tier.id != "enterprise" else "Contact Sales"
}
def _format_tokens(self, count: int) -> str:
"""Format token count for display."""
if count >= 1_000_000:
return f"{count // 1_000_000}M"
elif count >= 1_000:
return f"{count // 1_000}K"
return str(count)
```
Overage pricing needs careful consideration. Nigerian customers may be surprised by bills that exceed their subscription. Consider flat-rate overage with a notification threshold.