The constraint that shaped everything
When you build software for African SMEs, the pricing is not a marketing decision. It is an engineering constraint. A tool that costs R8,000 per month to run can be sold to a handful of enterprise clients or to no one at all. A tool that costs R800 per month to run can be the operating system for thousands of small businesses across a continent of 54 countries. These are not the same product. They are not even the same category of thing.
AdminOS is a multi-tenant SaaS platform built for African small and medium enterprises. It provides AI chat, WhatsApp-native CRM, invoicing, booking, and staff management. The AI layer is the core. Every message that a business receives through AdminOS is processed by a language model. Every customer query answered. Every recommendation generated. Every piece of business intelligence surfaced. All of it runs through Anthropic's API.
At standard Anthropic pricing without optimisation, a platform like AdminOS at meaningful scale would cost more to run than it could charge its users. We knew this before we wrote a line of code. The architecture was priced before it was built.
What prompt caching actually does
Every request to a language model consists of two parts: the system context and the user input. The system context is the instruction set that tells the model who it is, what it knows, and how it should behave. For AdminOS, this context includes the business information, operating procedures, product catalogue, service policies, and the platform response guidelines. It is large. It is static. It changes rarely. And in a naive implementation, it is sent in full with every single request.
Prompt caching, specifically Anthropic ephemeral cache, stores that static context at the API level. The first request in a session sends the full context and pays full price. Every subsequent request within the cache window reuses the stored context and pays a fraction of the price for the input tokens, with the cached portion discounted substantially.
For AdminOS, the business context block is typically between 4,000 and 8,000 tokens. At scale, the difference between caching and not caching this block represents the difference between negative unit economics and a viable product. The 68% cost reduction we measured in production is the direct consequence of this single architectural decision, applied consistently across every tenant on the platform.
The two-block pattern
The implementation is a discipline as much as a technique. Every prompt in AdminOS is structured as two blocks: a static block and a dynamic block. The static block is the business context: who this business is, what they sell, how they operate, what their voice sounds like. This block is tagged with cache_control: ephemeral and sent first. The dynamic block is the current conversation: the user message, the recent history, any real-time data the model needs. This block is never cached, because it changes with every request.
The discipline is in maintaining this separation. A developer who embeds dynamic data in the static block breaks the cache. A developer who repeats context in the dynamic block wastes tokens. The pattern must be followed consistently, by everyone, on every route, or the cost savings evaporate. This is where architecture becomes culture: the pattern is documented, the code is structured around it, and new features are reviewed against it before they land.
The pricing that became possible
With the caching architecture in place, AdminOS launched at R2,500 per month for the Starter tier. This is not a loss-leader price. It is a price that reflects actual unit economics with caching, at realistic usage volumes, with a healthy margin. Without caching, that price point would require subsidising the compute cost from somewhere else, which means either raising prices for larger customers, taking on investment to burn through, or building a product that is fundamentally not sustainable.
The Starter tier serves businesses with up to 500 customer interactions per month. At that volume, with caching, the LLM cost per tenant is manageable within the R2,500 revenue. At Growth and Enterprise tiers, the economics improve further because the fixed costs are distributed across higher-value customers while the marginal cost per interaction remains flat.
What the continent taught us about pricing
There is a design principle that the African context makes visible that remains invisible in markets where money is abundant: the cost of running the system is a product decision, not an operations decision. When your users are businesses earning in rand, operating on rand-priced data bundles, paying in rand, the entire stack must be priced in rand from the ground up. Not converted from dollars at the end. Not treated as a rounding error. Priced in rand from the first architectural decision.
This changes how you make decisions about everything. You choose your AI provider based on pricing structure, not just capability. You choose your cloud region based on latency plus cost, not just latency. You design your caching strategy before you design your features. And you build systems that remain economically viable as they scale, rather than systems that grow more expensive at exactly the moment they start working.
AdminOS is a WhatsApp-native product because that is where African businesses operate. It is prompt-cached because that is the only architecture that makes the economics work. Neither of these decisions came after the fact. Both were made at the beginning, when the question was still simple enough to answer clearly.
.jpg&w=3840&q=75)
.jpg&w=3840&q=75)
.jpg&w=3840&q=75)