Business Model 101 – Value Creation Model

Writing a business model is one of the important requirements while trying to build a business (or a startup if you will). In this post and more to come, I hope to make this concept as simple as possible for the aspiring tech founder.

Goal of a business

The goal of a creating a business or startup is very simple. It hinges on 2 basic ideas. First is to create value for other people/businesses and second is to make money while creating/delivering that value. Off course, we will be changing the world in the process.

Essentially then, a business model is a brief document that breaks down what problem we are solving, how we intend to solve the problem, how we will make money solving the problem and how this process can be repeatable. As such Business Models are broken down into 3 major parts:

  • Value Creation Model
  • Profit Model
  • Logic of the Business.

PS: To make this real, we will use a hypothetical example of Nigerian startup (Lasgidi Tech School) that wants to solve the skills shortage and tech education problem. In this post, we will tackle the value creation model.

1. Value Creation Model

Under this section, we want to answer the question of what problem we are trying to solve. Here we must ensure we have an understanding of the problem and we should have supporting evidence that the problem is real and exists. The only way to prove this is by supporting our claims with data. Almost every problem can be supported with data. For instance, does Nigeria have a child mortality problem? Well data from WHO says so

#Where to get Data?

Data is key in working out your business model. This could as well be the most difficult part of your business model. There is even an article here that says your startup will die without data. Harsh but True.

Data does not come cheap though. Sometimes you will have to part with some cash to get the data you need. It is important to note this because some companies out there have invested time and resources in market research. And selling this research is what they do to recover their costs (its part of their business model), so we can’t really blame them.

Data availability also depend on your industry, for instance, for Fintech businesses, the Central Bank of Nigeria has some solid data on their website for people that care. For health, I suppose the Federal Ministry of health will have as well.  Some data you can get freely by sounding out friends and family.

For some data however, we can as well learn to do some extrapolation ourselves. For instance, if Nigeria has a middle class population of 50 Million, can we estimate that 10 – 20% of that number will be interested in paying N100 for a product or service per month?  You won’t always be 100% accurate, but hopefully your investors can challenge that data and point you in the direction of a more accurate data. (If they are really worth their salt).

#The problem Lasgidi Tech School wants to solve

With respect to our fictitious start up, the question is does Nigeria have a Tech Talent problem? This is an important section and it does not matter how grand our idea or the problem is, we must be able to put numbers to this problem (real or estimated). Our Lasgidi Tech School can state the problem thus:

“There is a high demand for tech skills in Nigeria today, according to Lasgidi Research, there is currently 1 developer for every 20 software development job in Nigeria and it is estimated that the country will need at least 15 million developers by 2020”

In that sentence, we have been able to pass across the fact that there is a IT skills shortage in Nigeria. We also support this with data from our fictitious research company. We have also been able to put numbers to the problem. We will use this numbers later in estimating our market size. However, this essentially tells our investors that there is a market for this sort of problem we want to solve. I ask lots of startups about this and they tend to go blank. It is important to figure this out. This will be the premise for our Lasgidi Tech School.

#How will Lasgidi Tech School Solve this problem?

By creating a school that will train and mentor x number of developers annually. Yeah, Lasgidi Tech school has an innovate way of teaching pioneered by its co-founder. First of its name, first of its kind .

Have the founders of Lasgidi tech school had prior experience in Technology education? or have they just been hard core developers themselves and they hope to give back to the society (while also making money)? What makes them qualified to solve this problem?  This will reflect in the quality of how they plan to tackle this problem. This experience could be that of one of the co-founders or they all probably have done some work along these lines.

Now, assuming there was a company doing this exact type of work but we feel we can do better, then we can state here how we are going to create differentiated value. i.e Can we do a better and more efficient job than say an Andela is currently doing?

Can we create world class developers for much less? with lesser overhead cost or with a better learning experience than competition currently has? Or we feel the Andela model will not scale beyond level X? Lasgidi Tech School should be able to answer these questions.

#Who are our customers?

Who are those that want this problem solved and are willing to pay for it? For Lasgidi Tech School, the question is who are the segment of the population that are willing and passionate about becoming world class software developers? Already we have addressed the demand side by saying above that the country needs 15 million developers by 2020. Now we need to address the supply side.

Certainly not the entire 180 million Nigerians. Our solution will likely appeal more to the youthful population, between the ages of 15 and 35. That immediately tells us what our market is. An example is that as at 2011, 43% of Nigeria’s population is less than 15 according to the PRB. 5 years later, this segment of the population would be in their teenage years.

We can also go the route of how many university/polytechnics graduates does Nigeria produce annually? If we say 400, 000, over the last 5 years, we would have had 2 million graduates who will still be less than 35 years old.  If we also consider that we have another 5 million young people that are not able to get into the Universities, Can we say our customer segment will be around 7 million people? This is our Total Addressable market (TAM), but knowing that not all these people want want to learn how to code, and some are already in other jobs, we will need to further reduce this number to our Served Addressable Market (SAM). i.e those that are interested in learning how to code, with or without other jobs and who also have basic computer education out of our 7 Million Total Addressable market.

#Estimating the market size for Lasgidi Tech School

Investors like to hear you have a large market to address. So if I have a solution in Agriculture that helps farmers harvest more efficiently, will an investor put down his cash in my solution? The question is how many people have this problem and how often will they use my solution? Probably they will only remember to use it during every harvest season, perhaps once or twice in a year? That isn’t big enough to some investors. Off course the story might change if we have 20 million farmers who will use the solution at any harvest period.

Investors want to hear that this is a Nx billion dollar industry. So how do we reach this valuation? We do some basic maths. For Lasgidi Tech School, let us say we have 7 Million people in our TAM and conservatively, we have 3 million people in our SAM. If everyone in our SAM is willing to pay N100, 000 for our training, this immediately gives us a market that is worth N300 Billion Naira. We will learn about Cost structure in coming posts, but this is an attractive revenue for any company.

Off course since there are competitors in the market, this pie gets smaller by the time you estimate that competition will take around some of this as well. But you get the idea. Our assumption is based on the premise that we will serve everyone in our addressable market segment and we take all the pie. Investors will consider this and how you aim to solve the problem uniquely before they commit their cash.

#What is our Lasgidi Tech School Value Chain

Value chain is all the activities we perform and components we need in order to deliver value to our customers. Can we perform all the activities alone or do we need 3rd party companies along the way? An e-commerce company might need a payment gateway (to accept card payments) and a delivery company in order to be able deliver value to its customers. They might also choose to build all the components end to end themselves.

An example value chain for a manufacturing ‘company A’ can be like this:
1. We make the product
2. We engage distributors (who already have retail outlets) and give them our products in bulk at a discount
3. This distributors sell to the supermarkets and the retail outlets.
4. Retail outlets sell our products directly to customers.

This shows company A relies on the distribution companies in their value chain to be able to deliver their product/value to end customers. Compare this to another value chain for company B where:

1. We make the product
2. We open our own branded kiosks and outlets
3. Our sales people will market and sell our product directly to the customers.

Here company B owns the entire value chain.

Choice of value chain is at the core of the business model and it could make or doom the business. So what will be Lasgidi Tech School’s value chain? To deliver the training, Lasgidi tech school could partner with existing training companies, they could build their own classrooms (just like competition is doing) or they could just be in the business of providing trainers on request to customer site. In the latter case, they become an asset-light business model since they are not investing in major assets/equipment upfront.

#What is Lasgidi Tech School’s Go to Market Strategy?

This answers the question of how we intend to reach these customers? Are we marketing directly do these young people (e.g during their convocation ceremony). Are we using social media tools Facebook, Twitter to reach out and market to these potential customers since we know they are very social?

Are we partnering with another company to bundle our training with their other products? E.g For every Indomie noodles you buy, you earn 10 training points, and when you reach 10, 000 training points, you are entitled to a free Tech Training from Lasgidi School.

Or do we partner with the universities and polytechnics? Do we partner with Job companies like say Jobberman to bring this training to our customers? Lasgidi Tech school must be able to answer these questions and settle for either direct or indirect go to market strategy, and who says they cannot combine both?

In the next post, we get to the moment of Truth and talk about the Revenue model. Can we make money from this and is it a business that will scale?

>>I’ll like to here what you think, so please read and pass on. Much later I hope we can pick a really company and try to dissect their business model. Obrigado!

Looking at 2016

1. Opportunity to think more (Desirable Difficulty)

Malcolm Gladwell in his book “David & Goliath” talks about the concept of desirable difficulties. The conclusion was that we tend to think and excel more when faced with more difficult challenges. In the research Malcolm referenced, students that were given Cognitive Reflection Test (CRT) performed better when the tests were made more difficult just by how it was presented. Sample tests in the book include:

A bat and a ball costs $1.10 in total, The bat costs $1.00 more than the ball. How much does the ball costs.

If it takes 5 machines 5 minutes to make 100 widgets, how long would it take 100 machines to make 100 widgets?

It was observed that students scored 1.9/3 in these types of tests. However, making the test questions harder to read on paper, e.g reduce the font size, change text colour to grey, presenting it in italics etc…results in students scoring as much as 2.45/3. In other words, making it more difficult to read made them think more about the problem rather than solving them on impulse which increased the chances of error.

Hopefully with the impending difficulties that might face the Nigerian economy in 2016, Nigerians will think more, get creative on how to live or run businesses with limited resources.

2. Services business will grow (as against product-only business)

You’ve probably heard before about the “Lack of maintenance culture”.

Because we have had so much money in the past, product businesses prospered more than service business. (Sorry no data to support this, just my gut). We typically have a culture of throwing money at every problem in this part of the world. Your infrastructure isn’t delivery value? time to replace it with another one. In the private sector possibly because of lack of skilled people, in government circles, this results in huge contracts to purchase another rather than fix/service existing ones.

Hopefully in 2016, with limited cash flowing around, falling oil prices, maybe our attitude will begin to change from throwing money at every problem to thinking through them. I see opportunities for cost cutting that’d force people to service/fix rather than purchase new at all times. And this is where local service companies can come in. Just think of that services that can benefit from a smarter engineer rather than a shiny new tool. This is an over simplification of the problem, but you can relate it across services.

3. More opportunities for local software companies to enter the door (at least)

Foreign software Licenses are one of the major things medium to large businesses spend IT money on. From Operating Systems to Databases and to CRMs. Off course this isn’t a bad thing especially since these are well known products used all over the world. And who wants to use another OS outside of the entrenched ones to run production systems anyway.

However, I am of the opinion that there are opportunities for local software alternatives in the area of business tools and applications, workflow, business process, automation etc to a lot of foreign ones. 2016 is another opportunity to try again to push these local alternatives to enterprise customers since some could do as much and are actually better and cheaper.

4. Local training (As against travelling out) for all kind of stuff will boom

There is a lot of Foreign Exchange that go into IT training budgets. We travel to all sorts of countries to get trained on technology from India, US, UK, Canada and UAE to name a few. I see some of these trips reducing because you know “cutting cost”. This is an opportunity for local training centres to up their game in 2016 and beyond. Flying in a trainer? that’ll work too.

The training terrain is much more difficult now though, with all the online courses one could take, an offline instructor had better be very good.

5. Payments. I see people like Verve making gains..

I’m sure MasterCard and Visa are holding strategy meetings on how they can work around the restrictions on Naira denominated cards use abroad. Well as I once said about doing business in Nigeria, the policies and rules can change any time.

This would bring up opportunities for local players. The Verves of this country. I’m sure they’d figure this out, but there are a lot opportunities in Nigerian Payments scene in 2016. B2B, P2P…

6. The ‘Replicate yourself’ challenge

Ok, so this is something I am passionate about and will hopefully do in 2016. We’ve been talking a lot about building skilled manpower in software development. Apart from Andela that has a startup around this problem, I haven’t seen lots of other companies or people actually take action or do stuff. We still need more developers from this part of the world and we need them young and hungry.

So I want to challenge any good software developer worth her/his onions in Nigeria to dare to replicate themselves into 100 teenagers in 1 year, in 2016. Thats a big one.

Off course for a good developer that has spent years mastering her craft, its a difficult one, but then its starts from allowing these teens to watch you do stuff, give them books that have helped you, share concepts with them, encourage and mentor them. In a year, they might not be a perfect replica of you, but you get the idea.

Tweet at me (@edwardpopoola) if you are a teenager or you know one that wants to intern/learn and is interested in programming/software development (Victoria Island Axis, Free office space, free Internet, maybe a free pocket money .You can never tell)

USSD 101 part 2

Brief Overview of  Traffic within the Core Network

In the previous post, Part 1 of this series, we were able to breakdown the USSD MMI code.  Taking this further, we will look at how the Mobile Network handles our request.

Between your Mobile phone and the Telecom operator’s USSD Gateway, there are numerous components, including the radio and BTS, BSC , HLR and the MSC. However, because this isn’t a core telecom’s tutorial, we are going to mention only the MSC, HLR and the VLR.

The Mobile Switching Centre (MSC) is the main switching equipment of the GSM network.  The MSC handles the routing of VOICE and SMS traffic within the network. The MSC sets up end-to-end connection for call set up and tear down.


End to End USSD Handlers

Nodes within the core network are able to understand and route USSD request because they have in built USSD handlers. These handlers have the capability of routing USSD traffic to the appropriate destination.

USSD Handlers in Core network elements

As you can see, the request originates from the USSD Handler within the Mobile Phone and it is immediately handled by the USSD Handler within the network node. The node that handles the USSD request is determined by the type of USSD service code.

According to the GSM0290 standard,  there are  two types of service codes: VPLMN and HPLMN service codes;

HPLMN service codes always routes the USSD string to the HLR while VPLMN service codes routes the string to the MSC/VLR.



Core Network Traffic Routing



Nodes within the Core network communicate via a Signalling System called SS7.  And to handle routing of these SS7 traffic, we have routers called Signalling Transfer Points (STPs), which are meant to route the SS7 traffic among these numerous signalling nodes.

As you can see in the diagram, the USSD Gateway or any other node is likely to connect to the core network nodes via the STP network. To enable the USSD GW communicate with an STP, a dedicated Signalling Appliance/Server is usually provided with the USSD GW.

How does the STP network know which node to route traffic too? It turns out each of the nodes in an SS7 network have what we call Point Codes.  This is similar to IP Addresses within an IP network.

As such, every signalling message, will have originating Point code (OPC) and Destination Point Code (DPC).

USSD Traffic Routing

To provide USSD services, the Core network team will typically provision a USSD service code and map it to the appropriate USSD Gateway point code. Once the USSD code has been provisioned,  subscribers are then able to dial the USSD code to access a service.

When the core network receives a USSD request from the subscriber, it is forwarded to the appropriate USSD Gateway configured for that USSD service code.

SS7/MAP Traffic

Like IP, the SS7 protocol is made up of stacks (Application, Network, Data Link and Physical layers). At the SS7 application layer is the MAP protocol which is used to access services on the Core network nodes.  The MAP protocol is used to carry  USSD traffic among these nodes.

MAP traffic is hence exchanged between the Core network (STP/HLR) and the USSD Gateway.  The MAP traffic coming from the network to the USSD Gateway can be seen in real time by taking a PCAP trace on the USSD Gateway.

USSD Services

The USSD Gateway receives every USSD request (those not directed at any other network node). The USSD GW can serve this request and respond appropriately to the subscriber through the core Network.

Figure  4 below shows a USSD GW responding to all USSD requests directly. In this scenario, all interactions terminate on the USSD GW.

USSD Traffic

Fig 4. USSD Traffic

In Figure 5 below however, the USSD GW is capable of forwarding requests to 3rd party applications. Typically, this is the case for 3rd parties that want control over the response to the users.

In this scenario, the USSD GW could initiate web services call for every request coming from the Users. On the other hand, 3rd party applications can maintain socket/smpp connection to the USSD GW to receive requests coming from the users.

USSD Traffic to 3rd party Application Server

Fig 5. USSD Traffic to 3rd party Application Server

As seen in Fig 5, the most common interface for 3rd party servers to interact with the USSD GW is through the SMPP protocol. However, more capable USSD Gateways have added custom interfaces that range from XML over TCP socket to HTTP web service interfaces.

USSD Sessions

The USSD GW is capable of maintaining a two-way back and forth communication with the subscriber.  This is made possible by the fact that the USSD GW and the core network creates and maintains a dialog/session for every USSD request.

To be continued…


USSD 101

There is an uptake in USSD services  in Nigeria and I thought to share my knowledge in the area. My hope is that, Nigerian developers can take advantage of USSD to build simple services that can be accessible by all phones.

This post is targeted at the absolute beginner with no Telcom experience.

What is USSD?

USSD is Unstructured Supplementary Services Data. It is a Telecoms standard that allow subscribers to communicate with Telecom operator nodes for services beyond basic voice calls.

In other words, its a medium to access additional services on the Operator network asides VOICE and SMS.

You already use USSD everyday

These days you can access mobile money services through your phone by dialling a USSD code e.g *894#, *909# etc….

To check your balance you can also dial *556#  on the MTN Network, *123# on Airtel, *232# on Glo etc. Dialling these codes connect you to USSD services configured on these USSD codes.

The USSD Gateway

The USSD protocol is well understood within GSM. Almost all the nodes within the GSM network have a USSD handler that understands USSD. For example, the MSC, HLR, VLR etc all have an internal USSD handler.

However, most operators have a dedicated equipment/server called the USSD Gateway (USSD GW) or USSD Centre. It is the USSD GW that allows them to handle USSD requests.

As we will see later, while a USSD GW can respond to user requests directly, It has the capability of forwarding on those requests to other applications that can respond to those requests.

Simple USSD Architecture

Simple USSD Architecture.

Figure 1: Simple USSD Architecture

Going by the architecture diagram in Figure 1, you can see a high level diagram of what happens when you dial the USSD code. Your request goes through the operator network and the request is processed by the USSD GW or an Application server on the other end.

The application server processes your request and sends the response back to the USSD Gateway, which in turn sends it to your phone. These steps are as follows:

1. User dials the  Code *e.g *777#
2. Phone Connects to the available Cell/Base Station/MSC
3. MSC forwards the request to the appropriate HLR/STP
4. STP/HLR sends the request to the USSD Gateway
5. USSD processes the request and respond OR sends the request to the Application Server
6. Application Server processes the request and sends back the response to the USSD GW through all the nodes and user gets the response.

Now lets take each of these steps and analyse a little further.

1. The Man-Machine Interface (MMI) Code

In telecoms, the full sequence of code you dial to access a USSD service is called the MMI code/string. The Operator Network/USSD Gateway typically expects MMI code composed according to a particular format.

Once the MMI code is in the right format, the Operator network will be able to determine the type of action the subscriber has requested and also the appropriate USSD nodes to send the request to (Based on Point Codes).

According to the 3GPP TS 22.030, the format for the MMI code is


AI is Action Indicator:
SC is Service Code
SI is Supplementary Information:  

The asterisk * within the MMI code is used to concatenate additional supplementary information(SI). The hash ‘#’ character is used to indicate the end of the MMI code.

It is also possible to have more than one Supplementary Information (SI) provided within an MMI Code. The Additional SI will be separated by an asterisks. As such, the MMI code  AI*SC*SI*SI*SI# is also valid.

Let’s explain each of the fields.

Action indicator(AI): 

Action indicator could be any of the following:

Activation/Registration – (MMI code starts with *)
Deactivation – (MMI code starts with #)
Interrogation – (MMI code starts with *#)
Registration – (MMI code starts with **)
Erasure – (MMI code starts with ##)

The action you want to perform through the USSD will determine the action indicator you will specify in the MMI Code.

Service Code(SC): The service code is composed of 2 or 3 digits between 00 and 999. The SC uniquely identifies a particular supplementary service. The SC codes are either reserved,  manufacturer defined or  assigned by the network operator. In figure 1 above, the 777 service code has assigned by the operator.

Supplementary Information(SI)

This is used to provide additional information required by a particular service. Within the MMI code, you can include additional information for the service being requested. (For developers, think of this as additional parameters/arguments to go with the service code.)

Example  MMI code:s

Example 1: *#06# – View your mobile phone IMEI number

A breakdown of the MMI code *#06# is as follows:

Action Indicator (Interrogation) = *#
Service Code = 06
Supplementary Information = None

Example 2: *999#

Lets say this code is provisioned for a service on the operator network that allows us to perform balance enquiry and to also recharge our phones.

1. *999#  – check balance

A breakdown of the MMI code is as follows:

Action Indication (Activation) = *
Service Code = 999
Supplementary Information = None

2. *999*1234566789# – Reload account with scratch card number

A breakdown of the MMI code is as follows:

Action Indication (Activation) = *
Service Code = 999
Supplementary Information = 1234566789

From the above, we provided Supplementary information which could be a series of numbers gotten from a scratch recharge card.

Categories of MMI Code

Not all MMI Codes are used for USSD services.  There are 3 categories of MMI Code:

1. MMI code for Supplementary Services(SS)

Supplementary Services are used to query and set certain service parameters  directly on mobile devices.  With supplementary services, you can instruct your phone to take specific actions.  When initiated, actions are performed only on your mobile phone and does not go to the operator network. Example of Supplementary services include Calling Barring and Call Forwarding – *21*[phone number]#

2. Manufacturer defined MMI Codes

These are MMI codes specific to different mobile phones.  A common MMI code is the *#06# that is used to view the IMEI number of a mobile phone.

3. MMI Code for USSD services

All MMI codes that are not recognised by the mobile phone as being in either 1 or 2 above are forwarded to the mobile Operator network. These codes are provisioned by the Operator network and configured for specific services.

How does the mobile phone know what to do?

Mobile phones are capable of interpreting USSD MMI codes.

This is made possible by the fact that, all mobile phone operating systems have a USSD Handler in built that allows the mobile phone to send and receive USSD messages sent by the Mobile Network.

Whenever a user dials an MMI Code,  the dialled code is parsed by the mobile phone Operating System.  Any MMI code that is not device specific or that is not for supplementary services are sent to the operator network.

The USSD handler uses the MMI code/string to invoke a USSD session with the mobile network.

For android developers, this is a link to the PhoneUtils class of the Android OS that has the USSD Handler source code


In the next post of this series, we will learn what happens after the user dials the MMI code and the requests gets to the Operator network and subsequently the USSD Gateway.

Part 2 >>>>