The best payment schedule for freelance development

Freelancing can be a tough gig so it’s important you have an idea of the best payment schedule for freelance development. Clients can be notoriously unreliable when it comes to payment terms and may often expect extra work for free. Getting everything written in stone is your best bet to avoid any headaches. 

The best payment schedule for freelance development is one that includes a significant portion of the money up-front. You should ask for at least 25% upfront and then segment the remaining amount into two smaller payments. Having clearly defined milestones for delivery is critical, regardless of your payment schedule.

Around 30% of freelancers have worked with clients who have at some point refused to pay and left them empty-handed. Like with any client work the end result is going to require some negotiation and compromise. 

The freelance industry is booming with software engineers staying at a job for smaller and smaller time frames. It’s become increasingly popular as freelance software developers travel the world and look to leverage large salaries in their home countries.

Let’s take a look at the different payment schedules available to software engineers and look at how these can protect you from being left with nothing.

Stage payment schedule

Stage payment schedules are pretty common in the business world and typically involve 2 or more payments. Usually, clients pay a significant portion upfront and then the rest once the work is complete. An example of a stage payment schedule is:

  • 50% payment after the contract is signed
  • 40% on completion and delivery of software
  • 10% provided thirty days after go-live

The initial payment could be too much for smaller clients. Be prepared to lower that amount if you are just starting out as a freelance software engineer, or are working with a small company. 

The benefits of stage payments for software developers

There are a few advantages to stage payments in freelance development, these benefits include: 

  • A large upfront cost means the client is less likely to be flaky.
  • You are guaranteed some money if the client pulls out partway through the project. 
  • Your development costs are covered by the first payment 
  • It is a widely used and simple to understand the payment schedule
  • Easy to administer because there are fewer payments

A key thing to consider as a freelance developer is your income. If a client ghosts you, which around 15%, of freelancers, have experienced, you are left with nothing. The large upfront payment lets them know you mean business and protects you against bad clients. Remember that you’re providing software that is helpful and should be rewarded as such.

For smaller ticket items of less than $5000, do you have the means to fight the battle in court? As that is likely the only way to reclaim the money. So getting at least something at the start takes some sting out of a client disappearing when it’s payment time. 

Drawbacks of a stage payment schedule

Stage payments do have some drawbacks for both the client and the freelance, these include:

  • The large upfront cost for the client – can be tough for smaller businesses
  • Not specific enough – without specific milestones or completion criteria getting the project signed off may be difficult. 
  • No milestones for user testing – the client may not be happy with the project on delivery. 
  • Harder to track progress

No payment schedule is perfect and it is always important to reach a middle ground where both parties benefit from the method you choose. Clients definitely take on more risk with this payment schedule, especially if the upfront amount is a large portion of the total cost. For established freelance software engineers this would work well, but for those starting out you may have to compromise more. 

Milestone based payment schedule

A milestone-based payment schedule involves a small up-front payment which is then followed by smaller payments throughout the project. The follow-up payments are delivered once certain stages or ‘milestones’ have been reached. A typical milestone schedule may include:

  • 20% once the contract is signed
  • 15% once the prototype is completed
  • 15% once the project has passed user testing
  • 15% once customizations have been complete 
  • 15% once the server is set up
  • 10% when the project goes live
  • 10% after 30 days of go-live 

There are far more payments in a milestone-based approach. However, you can work together to decide the right milestones for a specific project. Taking this approach gives you far more insight into what the project is going to entail. It’s vitally important to make sure that the acceptance criteria for each stage are well defined. Otherwise, you’ll end up going back and forth on specific aspects of a milestone. 

Advantages of a milestone payment schedule

Taking a milestone approach with certain clients is definitely the way to go, using this approach has a few advantages which include:

  • It encourages you to keep delivering top-quality work otherwise you don’t get paid.
  • It incentives the client because they won’t get the full product.
  • You get a far better idea of what the client thinks of your work – they are able to provide feedback and tweaks at each stage.
  • The project has a better structure and there is a clear indicator of the overall progress. 
  • Payment terms are better for clients so they may have a broader appeal. 
  • If the client refuses to pay, you can refuse to continue working. 
  • Any changes that go against the agreed acceptance criteria of each milestone can be easily tracked and charged for.

Overall the milestone approach incentivizes both parties to keep actively involved in the project. For the freelancer, it means you don’t complete all the work at once and then end up empty-handed. It also offers the client some security against sloppy workmanship.

As a freelance developer, you can often find yourself overdelivering on what was agreed. The milestone approach is great because it helps to keep this in check. If they ask for extra functionality that is outside the agreed milestones you can charge them for it without question. It’s why getting things written and agreed upon beforehand is so crucial. 

The disadvantages of milestone payment schedules

As with any approach to client work and project management, there are always going to be some drawbacks of using milestones, these include:

  • More complicated and time-consuming – particularly for an individual developer.
  • Each milestone must be well-scoped and agreed on – which can take time.
  • Multiple payments mean more administration for the clients
  • Requires negotiation

Overall the milestone approach will initially take up a lot more of your time. It takes longer to get projects moving because the milestones will need to be fleshed out and negotiated. However, once the project gets off the ground having well defined goals is a positive. You will know exactly what needs to be delivered and when. Clients like this type of payment schedule because it’s better for their cash flow and means they take on less risk. 

What is the best payment schedule for freelance development?

The best payment schedule for your freelance development work will depend on your level of experience. Newever freelancers, without a reputation, may find it more difficult to get clients to agree to large stage payments, so milestone payments may be your only option. As your reputation grows you will have more freedom to dictate the terms of payment.

In reality, the best payment option is a hybrid between the stage and milestone approaches. It is good practice to have large projects split up into smaller deliverables, just so your own cash flow doesn’t suffer. It makes the workload a lot more painless and allows you to manage the clients expectations more easily.

Whatever payment schedule you choose, make sure to get at least 25% of the project cost up front. It means that if the client gets cold feet or decides to pull out you won’t be left without any money. Getting a deposit up front also weeds out any clients who aren’t serious or don’t respect your time and effort. 

I’d always be hesitant to work with a client who is reluctant to put any money up front. It shows they may not have the cash or will want you to do everything as cheap as possible. 

Make sure to define the specific scope of each project. It is so easy for extra work to creep in as a freelancer as you tend to communicate with the client frequently. It may seem daunting to challenge a client’s request and ask for more money but this is how professional agencies do it. Also, once a company knows they can keep asking for additional features for free, they will do so at will.


Deciding on a payment schedule for freelance development can be a real headache. Getting it wrong at the start can lead to a lot of extra admin later on in the project. Even worse if you don’t set things in stone the scope of the project can creep in and you’ll end up doing work for free.

More mature companies will use a milestone payment approach. It’s definitely the way to go if you want a better organized and lower stress project. Although it does take more time to set up and requires negotiating.