Kokil Thapa - Professional Web Developer in Nepal
Freelancer Web Developer in Nepal with 15+ Years of Experience

Kokil Thapa is an experienced full-stack web developer focused on building fast, secure, and scalable web applications. He helps businesses and individuals create SEO-friendly, user-focused digital platforms designed for long-term growth.

How to Price a Fixed Project vs Hourly

By Kokil Thapa | Last reviewed: September 2026

You quoted a Laravel booking portal at Rs 180,000 (~USD 1,350) and the client added three payment gateways mid-build. That is the moment how to price a fixed project vs hourly stops being theory and becomes a cash-flow problem. On real client projects since 2010, I have used both models for web development in Nepal and international work. The choice is not about which sounds more professional. It is about how well you know the scope, who owns change requests, and whether your estimate survives the first production surprise.

How do you decide between fixed price and hourly billing?

Start with scope certainty, not your favourite pricing habit. Fixed price works when deliverables are defined, integrations are known, and the client can sign off a written specification. Hourly works when discovery is still running, stakeholders change minds weekly, or you are maintaining a live system where every ticket is different.

A practical decision rule I use on production Laravel applications: if I cannot write acceptance criteria in one page, I do not fixed-price the build. Discovery belongs in a paid phase, often billed hourly or as a small fixed discovery sprint. That aligns with how planning and research should run before anyone commits to a full build number.

Fixed vs Hourly DecisionScope fully defined?YesFixed price + bufferNoPaid discovery firstHourly or retainerHigh change rate?Use hourly billing
How to price a fixed project vs hourly starts with scope certainty—undefined work belongs in discovery or hourly billing.

Compare the models on criteria that matter after launch, not only at quote time.

CriterionFixed priceHourly (T&M)
Client budget predictabilityHigh—one number upfrontLower—depends on actual hours
Your margin protectionStrong if scope is tightStrong if you track time honestly
Scope creep riskHigh without change ordersLower—extra work is billable
Best forLanding sites, defined MVPs, migrations with clear inventoryRetainers, R&D, legacy debugging, AI integrations
Documentation burdenHeavy—SOW must be preciseMedium—timesheets + task notes
Cash flowMilestone deposits helpWeekly or biweekly invoicing

For deeper rate benchmarks in the local market, read the companion piece on average hourly rates for freelance website developers in Nepal. Your fixed price is just those hours multiplied forward, plus risk.

How do you calculate a fixed project price that protects your margin?

Fixed pricing is not guessing a round number the client will accept. It is reverse-engineering labour, overhead, and uncertainty into one figure the client can approve. Skip any step and you subsidise the project with unpaid evenings.

Step 1: Break the work into estimable units

Split the project into epics: authentication, admin panel, payment flow, SEO setup, deployment, and training. Each epic gets optimistic, likely, and pessimistic hour estimates. For a Laravel 13 client portal with document upload and Khalti payment, a likely build might land at 120 hours excluding content entry.

Step 2: Apply your effective hourly rate

Your billable rate must cover taxes, software, hardware, unpaid sales time, and slow months. If you target Rs 600,000/month (~USD 4,500) net from 120 billable hours, your floor rate is Rs 5,000/hour (~USD 37). Use the Nepal salary calculator to sanity-check what you need after SSF and income tax before you discount for a friend.

Step 3: Add a risk buffer

Buffer size reflects uncertainty. Use 15% when the stack is familiar and the client is decisive. Use 35% when APIs are undocumented, content is late, or multiple approvers exist. Legal-tech portals I have shipped often sit at 25% because compliance copy and document workflows expand quietly.

Base cost     = estimated_hours × hourly_rate
Risk buffer   = base_cost × buffer_percent
Fixed price   = base_cost + risk_buffer

Example (Nepal, 2026):
  120 hrs × Rs 5,000     = Rs 600,000
  25% buffer             = Rs 150,000
  Fixed quote            = Rs 750,000 (~USD 5,600)

Step 4: Structure milestones, not one lump sum

Never tie 100% payment to final delivery. A pattern that works on client portal projects and booking systems alike:

  1. 30% on signed SOW and discovery approval
  2. 30% on staging demo of core features
  3. 30% on UAT sign-off
  4. 10% after 14-day hypercare window

Milestones align cash with progress. They also give you a natural pause if scope starts drifting.

Fixed Price FormulaHours120 est.×RateRs 5,000/hr=BaseRs 600,000+ 25% BufferRs 150,000Fixed QuoteRs 750,000Milestones30 / 30 / 30 / 10
Fixed project pricing: estimate hours, multiply by rate, add buffer, then split into milestone payments.

On e-commerce builds, add line items for catalogue import, shipping zones, and gateway testing. WooCommerce 11.1 shops with multi-currency logic take longer than a five-page brochure site. Price the workflow, not the page count.

When should you use hourly billing instead of a fixed quote?

Hourly billing is not a failure to estimate. It is the honest model when uncertainty is the main feature of the work. I default to hourly for production support, legacy PHP refactors, and early-phase AI integration where prompt quality and API limits are still unknown.

Scenarios that favour hourly

  • Ongoing maintenance: security patches, Laravel upgrades, plugin updates—work arrives irregularly.
  • Legacy rescue: you cannot know depth until you read the codebase.
  • Staff augmentation: the client owns the backlog; you execute their tickets.
  • Third-party blockers: bank APIs, SMS gateways, or government portals with slow sandboxes.
  • Retainer advisory: architecture reviews, SEO audits, deployment troubleshooting.

Publish a clear hourly rate card. Senior full-stack work in Kathmandu often runs Rs 3,500–Rs 8,000/hour (~USD 26–60) in 2026, depending on stack and client location. International clients may pay USD 50–120/hour for the same skill set. See freelance web developer Nepal rates per project for how flat projects map back to implied hourly numbers.

Retainer vs pure hourly

A retainer is prepaid hours at a slight discount in exchange for guaranteed availability. Example: 20 hours/month at Rs 4,500/hour billed as Rs 90,000 (~USD 675) upfront. Unused hours may roll one month or expire—state the rule in writing. Retainers suit support and maintenance after launch better than open-ended hourly without a cap.

Scope Change ImpactFixed PriceNo change orderYou absorb costMargin dropsHourly BillingExtra hours loggedRevenue growsMargin stableFix: Change Order on Fixed DealsNew scope = new estimate + client sign-offbefore additional work starts
Without change orders, fixed-price projects absorb scope creep; hourly billing passes extra effort to the client.

Track time even on fixed projects internally. If your actual hours consistently exceed estimates, your rate or buffer is wrong—not the client.

What contract terms prevent scope creep on fixed projects?

The quote is only half the pricing system. The statement of work (SOW) and change-order process protect the number you presented. Clients rarely scope-creep maliciously. They simply assume "website" includes features you never listed.

Minimum SOW clauses

Your SOW should name deliverables, exclusions, assumptions, revision limits, and acceptance criteria. "Admin can export bookings to CSV" is testable. "Easy to use admin" is not. Link deliverables to milestones so payment gates match visible output.

Change Order Template (short form):

  Change ID: CO-2026-014
  Description: Add Stripe alongside Khalti
  Estimated effort: 18 hours
  Rate: Rs 5,000/hr (fixed-quote rate)
  Additional fee: Rs 90,000
  Timeline impact: +5 business days
  Client approval signature: ___________
  Work begins after signed CO + 50% deposit

For VAT-registered agencies in Nepal, confirm whether quoted amounts are inclusive or exclusive of 13% VAT per Inland Revenue Department rules before the client compares your bid to an informal freelancer quote.

Revision and content boundaries

Cap design revisions at two rounds unless hourly. State that client-supplied content must arrive before build week three. Late content shifts the schedule without shifting the price. On a legal-tech portal like Court Marriage In Nepal, delayed Nepali copy blocked launch—not code—and the contract made that explicit.

Use project management tools to log every out-of-scope request. A ticket trail beats memory when someone asks why phase two costs extra.

How do Nepal freelancers and agencies typically structure web project pricing in 2026?

Local market pricing spans solo freelancers, small studios, and offshore-facing agencies. The model mix differs by client type. Domestic SMBs often want one fixed number. Export-facing product work often blends fixed MVP plus hourly retainer.

Typical project bands (indicative)

These ranges reflect Laravel, WordPress 7.1, and WooCommerce work in 2026. They are guides, not mandates. Complexity swings them fast.

Project typeCommon modelIndicative range (NPR)
Brochure WordPress siteFixedRs 40,000 – Rs 120,000
WooCommerce shop (standard)Fixed + support retainerRs 150,000 – Rs 400,000
Custom Laravel MVPFixed milestonesRs 400,000 – Rs 1,200,000
Booking + payments + CRMFixed or phased fixedRs 800,000 – Rs 2,500,000+
Post-launch maintenanceHourly or retainerRs 15,000 – Rs 90,000/month

Enterprise portals with RBAC, audit logs, and API integrations belong in the upper band or in phase-one discovery plus phase-two fixed build. Trying to compress them into a brochure-site quote creates bad blood on both sides.

Hybrid pricing many seniors use

A pattern I have used on production deployments:

  1. Phase A — Discovery (fixed small fee): wireframes, data model, integration checklist—Rs 50,000–Rs 150,000.
  2. Phase B — Build (fixed): priced from discovery outputs, lower buffer because uncertainty dropped.
  3. Phase C — Care (hourly retainer): upgrades, monitoring, content support.

That hybrid shows up on trek booking systems like Adventure Third Pole Trek where supplier CRM features emerged after the first workflow demo. Discovery paid for the clarity; the fixed build covered the agreed module set.

Hybrid Pricing PhasesPhase ADiscoveryFixed feePhase BBuildFixed pricePhase CCareHourly retainerLower buffer on Phase BDiscovery removes unknowns before main quote
Hybrid pricing: paid discovery, fixed build from clear scope, then hourly retainer for ongoing work.

If you are comparing agency delivery models, review custom software development scopes alongside enterprise application requirements. Larger teams add project management overhead you must either bill or absorb.

Red flags that mean walk away or switch to hourly

  • Client refuses written scope but demands fixed price.
  • They want "Facebook-level features" at brochure-site budget.
  • Payment terms are 100% on delivery with no deposit.
  • They will not assign a single decision-maker.
  • They ask you to copy a licensed SaaS pixel-for-pixel.

Professional pricing includes saying no. Underpricing a toxic fixed deal costs more than losing the lead.

For testing and launch buffers, budget time for QA—not only coding. Testing and optimization on payment flows and mobile checkout is not optional on e-commerce work. Either include it in the fixed price or bill it hourly as a separate test sprint.

Technical founders sometimes ask for cost breakdowns by line item. Share milestone totals and capability groups. Do not expose your internal hourly math unless it helps the sale. Your margin lives in the buffer and in efficient delivery, not in convincing the client you typed fast.

International clients paying in USD should fix currency in the contract. NPR amounts can swing with forex moves. The Nepal forex rates tool helps you quote USD equivalents for local receipts. For official tax guidance on service exports, refer to IRD publications rather than forum advice.

Document assumptions about hosting, SSL, email delivery, and third-party SaaS fees. Many disputes are not about code. They are about who pays for Mailgun, Cloudflare Pro, or SMS credits. A fixed web price rarely includes unlimited external API spend.

When upgrading stacks—say Laravel 12 to 13 with PHP 8.3—hourly or phased fixed beats one lump quote if legacy migrations hide data quirks. I have seen production databases with orphaned records that only surface during migration scripts. Price that uncertainty or isolate it into a paid audit task first.

SEO and content work often belongs outside the dev fixed price unless tightly bounded. Metadata templates and sitemap generation fit in build. Twelve blog posts and keyword research do not. Link SEO to search engine optimization services as a separate line or retainer so developers are not writing copy at developer rates for free.

Finally, revisit your rates yearly. Inflation, SSF changes, and tool subscriptions shift your floor. A rate that worked in 2023 may lose money in 2026 if you have not adjusted. Your past portfolio proves capability; your pricing must match current costs.

Key Takeaways

  • Choose fixed pricing when scope, integrations, and acceptance criteria are written and stable; choose hourly when discovery, legacy risk, or ongoing change dominates.
  • Calculate fixed quotes as hours × effective rate + 15–35% buffer, then split into milestone payments—not a single end-of-project invoice.
  • Use paid discovery or hourly pre-build phases to shrink uncertainty before you lock a large fixed number.
  • Every fixed SOW needs exclusions, revision caps, and a signed change-order process before extra work starts.
  • Track internal hours on fixed jobs to calibrate buffers; use retainers for post-launch maintenance instead of unpaid favours.
  • State VAT, forex, hosting, and third-party API costs explicitly so the quoted price matches what the client actually pays.

People Also Ask

Is fixed price or hourly better for freelancers?

Neither is universally better. Fixed price wins when you control scope and estimate accurately. Hourly wins when the client changes direction often or the work is exploratory. Many experienced freelancers use fixed builds plus hourly retainers so both sides get predictability where it matters.

How much buffer should I add to a fixed project quote?

Use 15% for repeat work on a familiar stack with a decisive client. Use 25–35% for new integrations, multi-stakeholder approvals, or content-dependent launches. If you finish under budget, you can deliver polish or record higher effective margin—never apologise for prudent estimating.

Can you mix fixed and hourly pricing on one project?

Yes, and you should on larger builds. Fixed discovery, fixed core build, and hourly enhancements or maintenance is a common professional structure. Each phase gets its own SOW so the client knows which requests trigger change orders versus included support.

What hourly rate should I charge for web development in Nepal?

Indicative 2026 rates span roughly Rs 3,500–Rs 8,000/hour locally and higher for international clients, depending on stack depth and accountability. Derive your floor from monthly income needs divided by realistic billable hours, not from what competitors post without context.

Price with clarity, deliver without resentment

How to price a fixed project vs hourly comes down to matching billing model to uncertainty, then backing it with contracts that respect your time. Fixed quotes reward precise scoping; hourly billing rewards honest tracking. Hybrid phases give clients a clear entry point without forcing you to guess a six-month roadmap on one call. If you want help scoping a Laravel build, WooCommerce rollout, or legal-tech portal with realistic milestones, contact us for a structured discovery conversation—or browse about my delivery approach and recent web development projects first.

Frequently Asked Questions

Neither wins always. Fixed suits defined scope; hourly suits discovery, legacy work, or frequent changes. Many seniors combine fixed builds with hourly retainers.

Use 15% for familiar stacks and decisive clients. Use 25–35% for new integrations, multiple approvers, or content-dependent launches. Legal-tech portals often sit at 25%.

Senior full-stack work in Kathmandu often runs Rs 3,500–Rs 8,000/hour (~USD 26–60) in 2026. International clients may pay USD 50–120/hour for the same skill set.

Start with scope certainty, not personal preference. Fixed price works when deliverables are defined, integrations are known, and the client can sign off a written specification. Hourly works when discovery is still running, stakeholders change minds weekly, or you are maintaining a live system where every ticket differs. A practical rule I use: if I cannot write acceptance criteria on one page, I do not fixed-price the build. Undefined work belongs in a paid discovery phase, often billed hourly or as a small fixed sprint, before anyone commits to a full build number.

Fixed pricing is reverse-engineering labour and uncertainty, not guessing a round number. Split the work into epics with optimistic, likely, and pessimistic hour estimates. Multiply likely hours by your effective hourly rate—the rate that covers taxes, software, unpaid sales time, and slow months. Add a 15–35% risk buffer reflecting scope uncertainty. Example from the article: 120 hours at Rs 5,000/hour equals Rs 600,000 base, plus 25% buffer of Rs 150,000, giving a fixed quote of Rs 750,000 (~USD 5,600). Never tie 100% payment to final delivery; split into milestone deposits instead.

Hourly billing is the honest model when uncertainty is the main feature of the work, not a failure to estimate. Default to hourly for production support, legacy PHP refactors, and early-phase AI integration where prompt quality and API limits are still unknown. It also suits ongoing maintenance, staff augmentation where the client owns the backlog, third-party blockers like slow bank API sandboxes, and retainer advisory work such as architecture reviews or deployment troubleshooting. Publish a clear hourly rate card so clients know what open-ended access costs before work begins.

The quote is only half the pricing system; the statement of work and change-order process protect the number you presented. Your SOW should name deliverables, exclusions, assumptions, revision limits, and testable acceptance criteria—"admin can export bookings to CSV" works; "easy to use admin" does not. Link deliverables to milestones so payment gates match visible output. Cap design revisions at two rounds unless billed hourly. State that client-supplied content must arrive before a defined build week, and that late content shifts the schedule without shifting the price. Log every out-of-scope request in a project tool so you have a ticket trail when phase two costs extra.

Milestones align cash flow with progress and give you a natural pause if scope starts drifting. A pattern that works on client portals and booking systems: 30% on signed SOW and discovery approval, 30% on staging demo of core features, 30% on UAT sign-off, and 10% after a 14-day hypercare window. Never accept 100% payment on delivery with no deposit—that is a red flag on both sides. For VAT-registered agencies in Nepal, confirm whether quoted amounts are inclusive or exclusive of 13% VAT before the client compares your bid to an informal freelancer quote.

Without signed change orders, fixed-price projects absorb scope creep and you subsidise the client with unpaid evenings. When new work appears—like adding Stripe alongside Khalti mid-build—issue a short change order naming the description, estimated effort, rate, additional fee, timeline impact, and client approval signature. A template from the article: 18 hours at Rs 5,000/hour equals Rs 90,000 with a five-day timeline extension. Work begins only after the signed change order and a 50% deposit on that additional fee. This keeps the original fixed quote intact while making extra effort billable and documented.

Hybrid pricing splits uncertainty across phases instead of forcing one model on the entire engagement. Phase A is paid discovery—a fixed small fee of Rs 50,000–Rs 150,000 covering wireframes, data model, and an integration checklist. Phase B is a fixed build priced from discovery outputs, carrying a lower buffer because uncertainty dropped. Phase C is an hourly retainer for upgrades, monitoring, and content support after launch. This pattern appears on trek booking systems where supplier CRM features emerged only after the first workflow demo. Discovery paid for clarity; the fixed build covered the agreed module set; the retainer handled ongoing change.

Local market pricing spans solo freelancers, small studios, and offshore-facing agencies, and complexity swings ranges fast. Indicative 2026 bands from the article: brochure WordPress sites at Rs 40,000–Rs 120,000 fixed; standard WooCommerce shops at Rs 150,000–Rs 400,000 fixed plus support retainer; custom Laravel MVPs at Rs 400,000–Rs 1,200,000 with milestone payments; booking systems with payments and CRM at Rs 800,000–Rs 2,500,000 or more, fixed or phased. Post-launch maintenance runs Rs 15,000–Rs 90,000/month as hourly or retainer. Enterprise portals with RBAC, audit logs, and API integrations belong in the upper band or in discovery plus phased fixed build.

A retainer is prepaid hours at a slight discount in exchange for guaranteed availability, suited to support and maintenance after launch better than open-ended hourly without a cap. Example from the article: 20 hours per month at Rs 4,500/hour billed as Rs 90,000 (~USD 675) upfront. Pure hourly bills after work is done and suits irregular tickets like security patches, Laravel upgrades, or legacy debugging. State clearly whether unused retainer hours roll one month or expire. Retainers give the client predictable access; hourly gives you billing flexibility when every ticket is different and volume is unknown.

Professional pricing includes saying no when the deal structure guarantees a loss. Walk away or switch to hourly when the client refuses written scope but demands a fixed price, wants enterprise-level features at brochure-site budget, insists on 100% payment on delivery with no deposit, will not assign a single decision-maker, or asks you to copy a licensed SaaS pixel-for-pixel. Underpricing a toxic fixed deal costs more than losing the lead. If they will not commit to acceptance criteria or change-order rules before signing, the fixed number you quote will not survive the first production surprise.

Yes, always track internal hours even when the client pays a flat fee. Fixed pricing protects margin only if your estimate and buffer were right; hourly billing passes extra effort to the client automatically. If your actual hours consistently exceed estimates across multiple fixed jobs, your rate or buffer is wrong—not the client. Internal time data tells you whether to raise your floor rate, increase the risk buffer for similar project types, or refuse fixed pricing on work you cannot scope tightly. The margin lives in the buffer and efficient delivery, not in hoping you typed fast enough to hide underestimation.

Many pricing disputes are not about code—they are about who pays for external services the build depends on. Document assumptions about hosting, SSL, email delivery, and third-party SaaS fees explicitly in the SOW. A fixed web price rarely includes unlimited external API spend for Mailgun, Cloudflare Pro, or SMS credits. SEO and content work often belong outside the dev fixed price unless tightly bounded: metadata templates and sitemap generation fit in build; twelve blog posts and keyword research do not. International clients paying in USD should fix currency in the contract, since NPR amounts can swing with forex moves between quote and invoice.

Share this article

0 Comments

Leave a comment

Your email is not published. Comments appear once they have been read. Sign in to have your details filled in.

Quick Contact Options
Choose how you want to connect me: