Bonaventure OgetoBy Bonaventure Ogeto|

How to Price Your Work as a Kenyan Freelance Developer (Without Racing to the Bottom)

Calculate your minimum rate by adding up your monthly expenses, desired savings, and taxes, then dividing by billable hours (typically 80-100/month, not 160). For Kenyan developers, starting rates are KES 1,500-3,000/hour for local clients and $25-50/hour for international clients. Use project-based pricing for defined work and hourly rates for ongoing or open-ended projects. Raise your rate by 10-20% every 6-12 months as your portfolio and reviews grow.

How to Calculate Your Actual Rate (The Math Most Freelancers Skip)

Most Kenyan freelancers set their rate by looking at what other people charge and picking a number that feels right. That approach leads to one of two outcomes: you charge too little and resent every project, or you charge too much for your experience level and cannot land work. Neither is useful.

Here is a straightforward way to calculate a rate that actually works for your situation.

Step 1: Add up your real monthly costs. Rent, food, transport, internet, phone, utilities, any loan repayments. Do not estimate. Go through your M-Pesa and bank statements for the last three months and get real numbers. For a developer in Nairobi, this might be KES 50,000-80,000/month. In Kisumu or Nakuru, it could be KES 30,000-50,000.

Step 2: Add what you want to save. Freelance income is irregular. You need a buffer. Add at least 20% on top of your expenses for savings and emergency funds. If your costs are KES 60,000/month, your target income should be at least KES 72,000/month.

Step 3: Add taxes. Freelance income is taxable. Add 15-25% to cover your KRA obligations. Your target is now KES 83,000-90,000/month. (Our tax and invoicing guide covers the specifics of freelance tax in Kenya.)

Step 4: Divide by realistic billable hours. This is where most freelancers get the math wrong. You do not bill 8 hours a day, 5 days a week, 4 weeks a month. That is 160 hours, which is a full-time employee schedule. As a freelancer, you spend time on proposals, client communication, invoicing, bookkeeping, learning, and finding new work. Realistic billable hours for an active freelancer are 80-100 per month (20-25 per week). If your target income is KES 90,000 and you bill 90 hours, your minimum hourly rate is KES 1,000/hour.

That KES 1,000/hour is your floor, not your target. It covers your costs and nothing else. Your actual rate should be above this floor, ideally 1.5-2x above it. A Kenyan developer with a year of freelance experience should be charging KES 1,500-3,000/hour for local clients, depending on the complexity of the work and the client's budget.

For international clients, convert to USD using a rate that is competitive but not desperate. $25-50/hour is a reasonable range for mid-level Kenyan developers working with international clients. That translates to roughly KES 3,200-6,500/hour at current exchange rates, which is significantly above local rates. The gap exists because international clients have larger budgets and you are delivering value at a fraction of what a developer in their home market would charge.

Hourly vs Project-Based vs Retainer: When to Use Each

The pricing model you choose matters as much as the number itself. Each model works well in specific situations and poorly in others.

Project-based pricing: best for defined deliverables.

When a client says "I need a business website with 6 pages, a contact form, and mobile responsiveness," that is a project with a clear scope and a definable endpoint. Project-based pricing works here because both sides know exactly what is being delivered and what it costs.

The advantage for you: if you finish fast, your effective hourly rate goes up. A KES 60,000 website project that takes you 30 hours yields an effective rate of KES 2,000/hour. The same project taking 20 hours (because you used a template or have done similar work before) yields KES 3,000/hour. Speed is rewarded.

The risk: scope creep. "Can you also add a blog?" "Can the contact form send WhatsApp messages?" "Can we add an events calendar?" Each request expands the project beyond the original agreement. Protect yourself by defining the scope in writing before quoting, and specifying that additional features are quoted separately. A simple line in your agreement like "This quote covers pages X, Y, and Z as described. Additional features or pages are available at KES [amount] per feature" saves you from endless unpaid revisions.

Hourly pricing: best for ongoing or open-ended work.

When the scope is unclear, changing, or open-ended, hourly billing protects you. Maintenance work, bug fixes, consulting sessions, and projects where requirements evolve weekly all suit hourly pricing. The client pays for the time you spend, and you are not penalized when a "quick fix" turns into a three-day investigation.

The disadvantage: clients worry about runaway hours. Set expectations by providing weekly time estimates and sending regular updates on hours worked. Some freelancers set weekly hour caps (for example, "I will work up to 15 hours per week on this project unless we agree otherwise"). This gives the client budget predictability while keeping you fairly compensated.

Retainer pricing: the best of both worlds.

A retainer means a client pays you a fixed monthly amount for a set number of hours or a defined scope of ongoing work. For example: "KES 80,000/month for up to 20 hours of development and maintenance." The client gets budget predictability. You get income predictability. Both sides benefit from a stable, ongoing relationship.

Retainers are the most profitable freelance arrangement because they eliminate the feast-or-famine cycle. You know what you are earning next month. You do not need to spend time finding new work. The client gets priority access to a developer who already understands their codebase. Aim to have at least one retainer client as early in your freelance career as possible. Two retainers covering 60-70% of your target income, supplemented by project work, is a comfortable and sustainable setup.

When to Charge in KES vs USD (And Why It Matters)

Currency is not just about the number on the invoice. It affects your income stability, your positioning with clients, and how you handle taxes.

Charge in KES for local Kenyan clients. If your client is a business in Nairobi, Mombasa, or anywhere in Kenya, quote and invoice in KES. It is simpler for the client (no conversion needed), payment via M-Pesa or bank transfer is straightforward, and your tax reporting is cleaner because all income is in the local currency. Local clients expect KES pricing, and quoting in USD feels out of touch and creates unnecessary friction.

Charge in USD for international clients. If your client is based in the US, Europe, or anywhere outside Kenya, quote and invoice in USD. There are three good reasons for this. First, USD is what international clients expect. Quoting in KES makes you look unprofessional in a global freelance context. Second, USD protects you from exchange rate fluctuations. If the KES weakens against the dollar (as it has historically trended), your income increases in KES terms without you needing to renegotiate. Third, USD positions you as an international professional, not a "cheap developer from a developing country."

How to handle the conversion. When you receive USD from international clients, you will convert to KES through Wise, Payoneer, or your bank. Wise typically offers the best rates (mid-market rate plus 0.4-1% fee). Payoneer charges around 2%. Bank wire conversions vary but are usually the worst option. Our getting paid from abroad guide covers the specifics.

A note on "dual pricing." Some Kenyan freelancers charge different rates for local versus international clients, and this is completely normal and reasonable. An international client paying $40/hour (roughly KES 5,200/hour) may be getting a great deal compared to hiring a developer in their own country. A local Kenyan client paying KES 2,000/hour is paying a fair market rate for professional development work in Nairobi. Both sides get good value. The rate difference reflects the different market contexts, not deception.

Five Pricing Mistakes Kenyan Freelancers Keep Making

These come up repeatedly in conversations with freelance developers across Nairobi and beyond. Each one costs real money.

1. Pricing based on time, not value. A landing page that helps a client generate KES 500,000 in sales is worth more than the 10 hours it took you to build it. When you price purely based on hours, you cap your income at your hourly rate times hours worked. Value-based pricing means charging based on the outcome you deliver. This is advanced and not always applicable, but for projects where you can clearly tie your work to revenue (e-commerce sites, lead generation pages, booking systems), pricing based on a percentage of the expected value is more profitable than hourly billing.

2. Quoting before understanding the scope. A client says "I need a website." You say "KES 40,000." Then you discover they wanted e-commerce with M-Pesa integration, user accounts, an admin dashboard, and a blog. Now you are locked into a price that covers 20% of the actual work. Never quote without asking detailed questions first. What pages? What features? What integrations? How many rounds of revisions? What is the timeline? Quote after you understand, not before.

3. Not charging for revisions beyond the agreed scope. Your agreement says "two rounds of revisions." The client sends five rounds of feedback, each one changing something you already built. If you absorb this cost, you are training the client to treat your time as free. Politely but clearly state: "The first two revision rounds are included. Additional rounds are billed at KES [amount] per round or [hourly rate] per hour." Most clients respect this boundary if you set it upfront.

4. Lowering your rate to win a bid. A prospective client says "your competitor quoted KES 25,000." Your instinct is to drop your price to KES 24,000. Resist this. If a client chooses purely on price, they will be a difficult client on every dimension: scope, deadlines, communication, and payment. Let the cheap jobs go to the cheap developers. Position yourself on quality, reliability, and communication, and charge accordingly. The clients worth having are willing to pay fair rates for developers they can trust.

5. Never raising rates. If you charged KES 1,500/hour when you started freelancing and you are still charging KES 1,500/hour two years later, you are effectively earning less every year due to inflation. Your skills have grown. Your portfolio is stronger. Your reviews are better. Your rate should reflect that growth. A 10-20% increase every 6-12 months is standard practice in freelancing, and clients who value your work will accept it.

How to Raise Your Rates Without Losing Clients

Raising rates feels terrifying the first time you do it. It gets easier with practice. Here is a straightforward process that works.

For new clients: just set the new rate. Every new client you take on should be at your current rate. Do not grandfather new clients into your old pricing. If your rate was $30/hour last quarter and it is now $35/hour, every new proposal goes out at $35. The new client has no reference point for your previous rate, so there is no negotiation. This is the simplest way to raise your effective income.

For existing clients: give notice and a reason. Send a message like: "Starting [date 30-60 days from now], my rate for new work will be [new rate]. This reflects the growth in my skills and experience over the past [period]. Current projects in progress will be completed at the existing rate." Give them enough notice to adjust their budgets. Most clients will accept a 10-20% increase without pushback if you have been delivering good work. If they push back, you have two options: hold firm (knowing you might lose them) or offer a smaller increase as a compromise.

The "grandfather" approach. Some freelancers keep existing retainer clients at the old rate for 3-6 months after raising their general rate. This rewards loyalty and makes the transition smoother. After the grace period, the new rate applies universally. This approach works well when you have long-term clients who represent a significant portion of your income.

When to make bigger jumps. Standard increases of 10-20% every 6-12 months are conservative and usually accepted. But sometimes your market position changes dramatically. You land a major client. You get a Top Rated badge on Upwork. You add a high-demand skill like AI integration to your toolkit. These are moments to make a larger jump (25-50%) for new clients. You have a new proof point that justifies the higher rate.

What happens if you lose a client over a rate increase? It happens. A client who leaves because of a 15% rate increase was paying you below your market value. The time you free up can be filled with a new client at your new rate. In practice, the fear of losing clients is almost always worse than the reality. Developers who raise their rates consistently report that they lose fewer clients than expected and attract better ones at the higher price point.

Pricing Benchmarks by Project Type in Kenya (2026)

These are rough benchmarks based on what Kenyan freelance developers are charging in 2026. Your specific rate will depend on your experience, the client's budget, and the project complexity. Use these as starting points, not fixed rules.

Local Kenyan clients (KES pricing):

  • Simple business website (5-7 pages, responsive): KES 30,000-60,000
  • Business website with CMS (WordPress or custom): KES 50,000-100,000
  • E-commerce site with M-Pesa integration: KES 80,000-200,000
  • Custom web application (with backend, auth, dashboards): KES 150,000-500,000+
  • Landing page (single page, optimized for conversions): KES 15,000-30,000
  • Monthly maintenance retainer (10-15 hours): KES 30,000-60,000

International clients (USD pricing):

  • Simple business website: $500-1,500
  • Website with CMS: $1,000-3,000
  • E-commerce site: $2,000-8,000
  • Custom web application: $3,000-15,000+
  • Landing page: $300-800
  • Monthly development retainer (20 hours): $800-2,000

Notice that international rates are 2-4x higher than local rates in absolute terms. This is normal and reflects the different market contexts. International clients compare your rate to developers in their own countries, where a similar project might cost $5,000-20,000. You are offering strong value even at the high end of the ranges above.

A word on "too cheap" clients. If a local client balks at KES 30,000 for a business website, they are not your target market. A professional website that generates leads, builds credibility, and works on mobile is worth that price. Clients who want a website for KES 5,000-10,000 are looking for a WordPress template installation, not custom development. Let them find someone else. Your time is better spent finding clients who understand the value of professional work.

What to Say When Clients Push Back on Price

Price pushback is inevitable. How you handle it determines whether you maintain your rate or cave under pressure. Here are specific responses for common situations.

When a client says "That is too expensive." Respond with curiosity, not defensiveness. "I understand. Can you share what budget range you had in mind? I may be able to adjust the scope to fit." This shifts the conversation from "your rate is wrong" to "let us find a scope that matches the budget." You keep your rate the same; you just deliver less for less money.

When a client says "Someone else quoted less." Respond honestly. "That is possible. Different developers charge different rates based on their experience and the quality of their work. I am happy to explain what is included in my quote so you can compare apples to apples." Then walk them through what they get: clean, tested code, responsive design, a live deployed site, post-launch support, and clear communication throughout. Cheap quotes often skip these things. Let the client decide if the lower price is actually a better deal.

When a client asks for a discount. You have two options. Option one: hold your rate and explain why. "This rate reflects the quality and reliability of my work. I have [X reviews / Y deployed projects / Z years of experience], and my clients consistently get [result]." Option two: offer a small concession with a condition. "I can offer a 10% reduction if we agree to a three-project commitment" or "I can adjust the rate if payment is made upfront rather than in milestones." A conditional discount preserves your positioning while giving the client a sense of getting a deal.

When you are tempted to lower your rate just to win the job. Ask yourself: "Would I be happy doing this work at this price?" If the answer is no, the project will become a source of frustration. You will cut corners, resent the client, and deliver work below your standard. That hurts your reputation more than turning down the project would have. Walk away from work that does not meet your minimum rate. The discipline to say "no" to bad deals is what creates space for good ones.

Key Takeaways

  • Your rate should be based on your costs plus desired income divided by realistic billable hours (80-100/month, not 160). Most Kenyan freelancers undercharge because they calculate based on full-time hours, which ignores the time spent on client acquisition, admin, and unbillable work.
  • Project-based pricing is better for defined deliverables (a website, an app feature). Hourly pricing is better for ongoing work, maintenance, and projects with unclear scope. Retainers combine the best of both.
  • Charge in USD for international clients and KES for local Kenyan clients. Pricing in USD protects you from exchange rate fluctuations and aligns with what international clients expect.
  • Raise your rates every 6-12 months. New clients get the new rate immediately. Existing clients get a heads-up and a grace period. Most clients accept reasonable increases without pushback.

Frequently Asked Questions

How much should a freelance developer charge in Kenya?
For local Kenyan clients, KES 1,500-3,000/hour or KES 30,000-200,000 per project depending on complexity. For international clients, $25-50/hour or $500-8,000 per project. These are mid-level ranges. Junior developers start at the lower end, and experienced developers with strong portfolios charge above these ranges. The most important thing is to calculate your rate based on your actual costs and billable hours, not by guessing.
Should I charge hourly or per project as a freelancer in Kenya?
Use project-based pricing when the scope is clearly defined (a website with specific pages, a feature with specific requirements). Use hourly pricing when the scope is open-ended or likely to change (ongoing maintenance, consulting, exploratory projects). Retainer pricing (fixed monthly fee for a set number of hours) is ideal for long-term client relationships and provides the most stable income.
Should I charge Kenyan clients in KES or USD?
Charge local Kenyan clients in KES and international clients in USD. Quoting a Nairobi-based small business in USD feels out of touch and creates payment friction. Quoting an international client in KES makes you look unprofessional in the global freelance market. The dual-pricing approach reflects different market contexts, not different value for the same work.
How do I raise my freelance rates without losing clients?
For new clients, simply set the new rate. For existing clients, give 30-60 days notice and explain the increase briefly. A 10-20% increase every 6-12 months is standard and most clients accept it if you have been delivering quality work. The fear of losing clients is usually worse than the reality. Developers who raise rates consistently report losing fewer clients than expected.
How do I handle a client who says my price is too high?
Ask what budget they had in mind and offer to adjust the scope to fit. Do not lower your rate for the same scope. If a client wants a $5,000 website for $2,000, remove features until the scope matches the budget. You keep your rate consistent, and the client gets a deliverable that fits their spending. This protects your positioning while keeping the door open.
What is a freelance retainer and how do I set one up?
A retainer is a recurring monthly arrangement where a client pays a fixed fee for a set number of development hours or a defined scope of ongoing work. For example, KES 80,000/month for up to 20 hours of development and maintenance. To set one up, propose it to a client after you have completed a successful project together. Most clients appreciate the predictability, and you benefit from stable monthly income.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon