Skip to content

Freelance Pricing Strategies: Hourly, Fixed and Value-Based

DodaTech Updated 2026-06-22 5 min read

In this tutorial, you'll learn the three main freelance pricing strategies and when to use each. Why it matters: choosing the right pricing model directly impacts your income and client relationships. By the end, you'll know exactly how to price any project.

Pricing is one of the hardest skills for freelance developers to master. Charge too little and you burn out. Charge too much and you scare clients away. The key is matching your pricing Strategy to the type of project and client.

Hourly Pricing

Hourly pricing is the most straightforward model. You track your time and bill at an agreed rate. This works well for ongoing work, maintenance, and projects with unclear scope.

Setting Your Hourly Rate

Calculate your rate based on desired income, expenses, and billable hours.

def calculate_hourly_rate(
    desired_annual_income,
    tax_rate_percentage,
    business_expenses,
    billable_days_per_year,
    hours_per_day
):
    tax_rate = tax_rate_percentage / 100
    pre_tax_income = desired_annual_income / (1 - tax_rate)
    total_needed = pre_tax_income + business_expenses
    total_billable_hours = billable_days_per_year * hours_per_day
    hourly_rate = total_needed / total_billable_hours
    return round(hourly_rate, 2)

rate = calculate_hourly_rate(80000, 30, 5000, 200, 5)
print(f"Hourly rate: ${rate}/hour")

Expected output: Hourly rate of approximately $95/hour for an $80,000 target income.

Hourly Pricing Pros and Cons

Pros Cons
Simple to calculate Limits earning potential
Fair for variable scope Penalises efficiency
Easy to justify to clients Requires accurate time tracking
Good for maintenance work Clients may micromanage hours

Fixed-Price Projects

Fixed-price projects charge a single amount for a defined deliverable. This model rewards efficiency and allows clients to budget confidently.

Creating Fixed-Price Quotes

Estimate hours, add a buffer for uncertainty, and present a single price.

# Fixed price quote template

## Project: E-commerce Landing Page

### Included
- Responsive design (mobile, tablet, desktop)
- Contact form with validation
- Performance optimisation (90+ Lighthouse score)
- Browser testing (Chrome, Firefox, Safari, Edge)

### Timeline
- 2 weeks from contract signing

### Investment
- Total fixed price: $2,500
- 50% due at signing, 50% due on delivery

### Exclusions
- Content creation
- Logo or brand design
- Ongoing maintenance

Expected output: A clear fixed-price quote that defines scope, timeline, payment terms, and exclusions.

Value-Based Pricing

Value-based pricing charges based on the value you deliver to the client's business. This is the most profitable model for experienced freelancers.

flowchart TD
    A[Client Problem] --> B[Quantify Impact]
    B --> C[Calculate Value of Solution]
    C --> D[Price as % of Value]
    D --> E[Present ROI to Client]
    E --> F{Client Accepts?}
    F -->|Yes| G[Contract Signed]
    F -->|No| H[Adjust Scope or Price]

How to Determine Value

Ask questions during discovery to understand the financial impact of the project.

Value Signal What to Ask How to Price
Revenue increase "What revenue could this feature drive?" 10-20% of projected increase
Cost savings "How many hours does this Process take per week?" 3-6 months of saved salary
Competitive advantage "What is the cost of not doing this?" Premium flat fee
function valueBasedPrice(estimatedClientValue, percentageOfValue) {
  const basePrice = estimatedClientValue * (percentageOfValue / 100);
  const minimumFee = 1000;
  return Math.max(basePrice, minimumFee);
}

const price = valueBasedPrice(50000, 15);
console.log(`Value-based price: $${price}`);

Expected output: Value-based price of $7,500 for a $50,000 client value at 15%.

Hybrid Pricing Models

Many successful freelancers combine models. Use a fixed price for defined scope and hourly for changes.

Model Best For Example
Fixed price + hourly change requests Web development $3,000 base + $75/hour for changes
Retainer Ongoing work $2,000/month for 20 hours
Value + performance bonus Growth projects $5,000 base + 10% of revenue increase

Raising Your Rates

Raising rates is essential for growth. Do it strategically to avoid losing clients.

rate_schedule = {
    "year_1": 50,
    "year_2": 75,
    "year_3": 100,
    "year_4": 125,
    "year_5": 150
}

def raise_rate(current_rate, years_experience, client_relationship_quality):
    if client_relationship_quality < 3:
        return current_rate

    max_rate = rate_schedule.get(f"year_{min(years_experience, 5)}", 150)
    new_rate = min(current_rate * 1.15, max_rate)

    return round(new_rate, 2)

print(f"New rate after raise: ${raise_rate(100, 3, 4)}")

Expected output: New rate of $115/hour after a 15% increase.

When to Walk Away

Not every project is worth taking. Know your minimum acceptable rate and stick to it.

Scenario Action
Client wants 50% discount Walk away
Payment terms are 90+ days Renegotiate or decline
Scope is completely unclear Require paid discovery phase
Client is rude or disrespectful Fire the client

Practice Questions

  1. What are the three main pricing models for freelancers?
  2. How do you calculate an hourly rate from a desired annual income?
  3. What is value-based pricing and when should you use it?
  4. How often should you raise your rates?
  5. What should you include in a fixed-price quote beyond the price?

Answers:

  1. Hourly, fixed-price, and value-based.
  2. Divide desired pre-tax income plus expenses by total billable hours per year.
  3. Pricing based on the value you deliver to the client. Use it when you can clearly demonstrate ROI.
  4. At least once per year, or whenever you add significant skills or experience.
  5. Included deliverables, timeline, payment terms, and exclusions.

Challenge

Calculate your ideal hourly rate using the formula in this guide. Then create a value-based price for a hypothetical project that would save a client $100,000 per year. Compare the two figures.

Real-World Task

Review your last three projects. Identify which pricing model you used for each. Pick one project where you could have used a different model and calculate what you would have earned under that model.

Should I display my rates publicly on my website?

Displaying a starting price range on your website filters low-budget clients. For example, "Most projects start at $2,500." Save detailed quotes for discovery calls.

How do I handle a client who wants to switch from fixed price to hourly mid-project?

Agree to switch only for new work outside the original scope. Keep the original fixed price for the agreed scope and bill hourly for additions.

What if a client says my rate is too high?

Ask what their budget is and explain what you can deliver within it. If the gap is too large, offer a reduced scope at your standard rate rather than discounting your rate.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro