I recently decided to get serious about establishing my freelance web development business and one of my biggest issues thus far is with the payment procedures. In the past, I used to charge my clients by the service with 25% to 50% as down payment. I learned the hard way that this method is highly inefficient as I have no good way of knowing how much time is needed for a service, and how much I should actually be getting paid for it.

Eventually I ended up missing deadlines and working much more for much less. Therefore I decided that I want to charge by the hour and ideally, I want to have an arrangement in which I get paid for the time before I start with the work so I wouldn't waste my hours like in the scenario below.

Scenario (example):

I agreed on a project with a client, did work which wasn't fully covered by the down payment I received and when I finished, said client disappeared and left me with no payment and with finished project files that I can't reuse without heavy modification.


After a few days of research, I've learned that each project should be divided into several stages like Research & Development (R&A), Design, and Programming for example. I also learned that before sending out the actual quote to the client, first I must complete the R&A stage so that I would know exactly what the client wants and charge accordingly and in a fair manner to both parties.


I'm aware that there's the risk where the client is "just looking around" and I end up wasting several hours for nothing. Charging the client before actually starting the R&A stage would just get me a lot of bad words as I haven't reached that level of professionalism yet. With that in mind, I would like to somehow be compensated for my hours in the R&A stage while also getting the payment for the next stage so my hours wouldn't be a waste even if my client decides to go all David Copperfield on me. Any suggestions please?

2 Answers 2


Well you covered most of it.

During the research phase when the client is not sure whether he will start the project or not, you will not be able to avoid couple of free hours of work. that's just the way for both of you to realize whether you can finish the project and for the client if he has money for it. If it takes more than a couple of hours that give him first a very rough costs idea and after that proceed to the Specs phase where you will make a good specs for him. after that you will be able to tell him your final price.

Now, most ideally is when you work hourly via some freelancing website. You don't even have to use sites like oDesk, but you can sign up for some project management service and register work hours and then demand to be paid over the weekend. If you're not paid, you're not starting working on Monday on that project.

Lastly, never send sources without being fully paid. As simple as that.

If you want to proceed with fixed-price milestones like you suggested, I have to warn you that more than 5 milestones may bring you new troubles. I used to work this way and I once waited 2 month to be paid for 1 milestone until I fixed the smallest bug. If I worked hourly, I would be paid and of course fix those bugs but without pressure. If you want to successfully work as a freelancer that you have to have a constant income, whether from your current long term job or from small side-jobs.

Ask me if I did not cover something...

  • "If it takes more than a couple of hours that give him first a very rough costs idea and after that proceed to the Specs phase where you will make a good specs for him. after that you will be able to tell him your final price." I'm not sure I understand this part. Could you please elaborate more? Also, you make a very good point regarding the fixed milestones. Perhaps I should avoid charging per stage and instead charge at fixed time intervals for a better flow of income but I'll have to plan it well so as to not put my clients in an annoying situation.
    – M. Tahan
    Oct 6, 2013 at 20:13
  • 1
    @MahmoudTahan Yes, you may have a milestones set as Work week where you set the price at the end of each week. Now, I said the above sentence that you will always have to work some hours for free during the estimation phase. For example, a clients approaches to you and you have to estimate the costs of the project. It takes you a couple of hours and you then tell him the approximate price (you may also say that this price may change after you make specs and you better understand the project). Then as milestone 1, you make specs, charge him for making specs and then tell him your final price.
    – Peter MV
    Oct 7, 2013 at 18:26
  • You're right. Spending time to collect information in order to reply with an estimate is unavoidable so I'll have to deal with it. Additionally, I like your idea of charging at regular time intervals instead of major project milestones as that will keep my income flowing at a steady rate and furthermore, reduce the amount required for each payment which I feel will be much more manageable for the client. However, that leaves me wondering how I can justify that with smaller deliverables in order to assure the client that the project is moving.
    – M. Tahan
    Oct 7, 2013 at 19:41
  • 1
    @MahmoudTahan There are many proves you can give to a client. I personally give the access to SVN server with source code. So each Friday I upload the sources and he can see commit differences, etc. At later stages, you can provide build each Fri. At the beginning you simply describe him which tasks you did. A client must know that you cannot always provide visual proof in the first stages but only source code. He can investigate it if he's worried. you cannot do much more.
    – Peter MV
    Oct 7, 2013 at 20:28

About the R&D phase: Unless it's very project specific, the 'R&D' of determining what a client needs / if you're able to do it isn't something you're likely able to charge for (it's really part of the 'interview' or 'on-boarding' process).

And spending a large amount of time determining exactly how much time it will take to complete a specific project isn't necessarily a good more either - as that biases you and the client against changing specs during the project (something that should be possible, as a lot is learned during the development process).

You should be able to (or be working towards this ability) give a client a decent estimate of what time smaller parts of the project will take. Again, I emphasize smaller parts of a larger overall project, as you want those goals to remain fluid, as things progress.

Of course this applies more to custom development - if your clients are looking for a few page marketing sites, or what amounts to setup and theming of existing applications, then it becomes something you probably can quote for the whole project. You mention R&D though, so I'm assuming that's not the kind of projects you're talking about.

At that point, you move from trying to charge for a relatively large amount of R&D hours at the start of a project, to simplifying things to a smaller deliverable, where there's no question it's billable time.

For example: A client wants you to build an app that sends reminders to people. Instead of spending hours up front collecting requirements for all the potential features, and accounting for all the edge cases - propose to work for a few hours (say 5 to 10), and build what will have to be the core of that application (perhaps a simple API that accepts text, a date, and an number, and sends out a SMS at the right time).

You'll still need to have a rough idea of what the total time will be, but since you're actually delivering functionality in smaller steps, there's not a huge investment of time just to start working on the actual project. And, as long as you identify the core of a project, those first few deliverables are a sort of R&D - but it's R&D that results in something tangible for the client (and signals to both parties the likely success of the full project).

A long winded answer that boils down to this: You're a freelancer, not an enterprise development shop, so don't act like one - think smaller, and smarter.

About the client's payment: My recommendation here is (and I don't work for them, only through them) just use oDesk. I don't use oDesk for its job board (although that is useful at times). When I have a new client, I tell them to signup on oDesk, and we'll manage the contract through their system. With oDesk's platform, I don't have to send the client a single invoice, and I'm guaranteed that every hour I bill (as long as I use their monitoring software) will be paid.

And it does remove any pressure you have to put on the client for payment, as it is oDesk that will charge their card when needed, and it is oDesk that will notify them (and you) that no more work will/should be done on the project until a payment method is restored (if a card fails, etc).

Some people complain about the 10% oDesk takes - but I think it's worth every penny to simplify my billing (literally, a few keystrokes to start and stop time tracking on a project is all the time I spend on invoicing), and insure that I get paid every week.

[This is a bit longer than I wanted, will try to simplify later, but hope it helps.]

  • Sorry for the late response. Could you please explain the first part ("unless it's very project-specific") of your answer? You have some really good points in there like allowing for more flexibility to change the specs, and the smaller deliverables when possible. I checked out oDesk and I understood its basics. It's a good service indeed but I don't think it would benefit me much at this point because I live and work in Kuwait and most of my clients are locals so I feel that it's a bit impersonal and I want to establish good relations. I think I'll keep it for international clients.
    – M. Tahan
    Oct 7, 2013 at 3:57
  • @MahmoudTahan Just contrasting the shorter time needed to determine if a contractor can accomplish a project, with the longer time than may be needed on certain projects to actually investigate if some technique / feature / etc is even possible. For example, you should be able to determine quickly if you can build a Twitter client - and that shouldn't be billed to the client. It may take longer (and be billable) to determine if you can use Twitter's user streams.
    – Tim Lytle
    Oct 7, 2013 at 20:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.