Developers March 24, 2020

How do you guys charge while doing contract work? Is there a thing as charging too often?

Taimoor Ahmad @TaimoorAhmad

Hey guys. I've done small websites for clients in the past with Wordpress and stuff. The biggest problem I had was agreeing on a project price (say $2000) and the project would end up never being finished.

Today I started contracting for a company to work on a web app for them. I asked to be paid per hour, however I'm worried this project will never get completed because the product manager keeps adding on features to what he originally wanted.

And since I don't want to end up working for free again, I'm sending daily invoices with a breakdown of time and what I did during that time. Is this a weird practice?

I feel like I've been burned several times with agreeing on an upfront cost or asking to be paid at the end of the week that I would rather send daily invoices that are due in 2 days (payable by credit card to prevent any cash flow issues)

Anyways; how do you guys manage it?

  1. 2

    I get paid therefore I work. I normally start out with a simple plan that I get paid every 2 weeks, the invoice is due at time of presentation. No more work is done until the invoice is paid. I normally keep the bill under $10,000 so I do not have any issue with IRS Reporting. If it's a new customer, I will do a basic level of concept work and then need a deposit. If there is no deposit then the work stops. I will NOT work for stock unless I am the investor. Getting paid on customer acceptance or on deployment is a looser, you have to have milestones you get paid on. If the customer wants a fixed price just do a "Do not exceed" agreement but never a "Fixed Price". If the hours are exceeded them the customer needs to decide what they want to do. There are lots of places that will give a fixed price and then have change orders, I worked for a large company "Rhymes with ass-enter" where I made bonuses on change orders, I always got the project completed even thought the customer could not use the product since I had then sign off acceptance before any changes could be made. I've been doing this for over 20 years. After my first couple of project burned me on time I got smarter and no longer do fixed price projects. If they do not want to scope out everything then they can just pay by the hour. I try to bill $150 / hr. Remember that when your doing the bill and waiting for response and other contract stuff you need to make sure you bill high to cover your downtime, not everyone bills 100% of the time your work. I'm happy most of the time to bill for 90% of my time.

    1. 1

      Holy heck $150 per hour!? What rate did you start off with may I ask? And how long did it take you to charge that amount?

      1. 2

        I started at $50 / hr about 20 years ago. Now that I have made a name I charge more. I also invest in startups. I worked for some large companies that billed me at over $300 / hr so when I went out on my own I wanted to make sure I got good money.

        1. 1

          That's amazing and very inspiring. I'm a young guy and I charged only $25/hr USD for Node and DynamoDB backend work (probably way too low). I'm going to study harder at my skills and raise my rates so I can have my own consulting business 😊

  2. 2

    Invoicing daily sounds excessive. You'll drive their AP person crazy. As always, it depends on the project and the customer as to what is appropriate. I generally bill hourly, but for an initial project, there will be a not-to-exceed amount in place. That essentially means that the first installation is a fixed bid. After that, I track hours on a daily basis with a daily breakdown, and send an invoice weekly or monthly depending on the client.

    With that said, you need to make sure that the scope of the initial project is well defined. And you need to keep the client from adding features until that is in place and proven out. If you base the scope on what the client is wanting to achieve from a business standpoint (be realistic and focused), convincing them to hold off adding new features shouldn't be too difficult.

    This ends up being a win-win. It prevents feature creep and lets you prove yourself to the client and builds trust. After that, features can be added and billed hourly and invoiced monthly much more easily. If you do this right, you'll have a client giving you regular work for years to come. If you don't keep it under control, you'll end up not ever finishing the project, and lose a client - and future clients they might refer to you.

    1. 1

      Your last paragraph really made me think. Thanks! Next time I will work with a contract + deposit.

  3. 2

    I also made this mistake recently, and tied myself to an extremely underpriced job, and the contract states I have to make it production ready. It's quite a high-end app that requires a lot of time. Sometimes it's better to take your loss and move on. Now I know the importance of contracts, but also judging the potential of the client.

    1. 1

      Sorry to hear. I feel like I underpriced myself quite a bit (I'm doing NodeJS work) for my project and I plan to charge a lot higher next time.

  4. 2

    Problem is your deal structure. For example, I never accept the work on a new website without the contract where everything is clearly explained and outlined - expected features, functions, who pays for the theme and plugins, who is purchasing hosting and domain, who is writing texts for the site, etc. Also, I take half the money upfront, before the work even starts. And before delivering the logins and everything, I ask the rest of the money, so it's up to him to pay if he wants the site delivered.

    That way both of you know what was agreed, and any deviation is charged extra, by the hour or by the feature. Also I don't look the price as some factor, value is important, value that site will provide for the client. You can't put the same price for the lawyer or dentist, and for the small mom 'n' pop shop.

    Same effort and hours could be priced 2000 or 5-6k, or even 10k, for different niches. It's up to you to determine what client should pay, and he will understand it, don't be afraid to ask.

    1. 1

      Thanks for the advice especially on pricing. With this client the source code is in his repo and I didn't take a deposit (foolish, but I did get paid quickly!)

      Next time I will do what you say: I drafted a contract which has a section for user stories and a half deposit required upfront.

  5. 2

    Hello,

    As @ShreefEntsar said, concluding on a weekly sprint with this project manager will be a better decision, in-which any deviation from this will require a certain cost depending on the hours taken to build it. Or any changes/additions will be moved to another week meaning an extension of weekly payment.

    There is something I am currently working on, I will like to perform a survey with you if you don't mind.

    1. 1

      Sure; send me a twitter dm

      1. 1

        I have followed you, will need you follow back

  6. 2

    I think weekly invoices would be better, also you have to have weekly plan with that product manager, something like sprints, this sprint will do 1-2-3 and will end in 1 or 2 weeks, and will cost about 40-60 hours for example, once you have weekly plan, lock it, don't ever add anything to it unless it's very urgent ( like website is down ).

    1. 1

      How do you deal with a project manager who keeps shifting goalposts? And have you ever ran into the issue where you were not paid?

      1. 2

        I usually try to have weekly goals with my clients, and I keep telling them, I prefer to know the goals of every week before I start the week, that helps me to save your money and time.
        for the payment, I usually 99% work on freelance websites like freelancer.com or guru.com, where the client pay the milestone in advance and release it once the week is done ( hourly or fixed price ).
        in your case, I suggest to ask in advance half of the estimated weekly hours, then every sunday EOD settle the hours with the managers.

        1. 1

          Thanks for the advice. I've drafted up a contract in Google Docs now that I will use on my next client. I feel stupid for not having one in the first place, I think that I may have to fire this client since I didn't setup a relationship with them probably. Oh well

          1. 2

            While I do have a contract made by my lawyer, I personally like to use https://gist.github.com/malarkey/4031110 - Contract Killer by Stuff & Nonsense. I modified it to work for my specific cases but overall is a great starting point.

            1. 1

              Thank you for the link! I saw that ages ago and I will look it over when it's time for y next contract.

          2. 2

            don't fire the client, just tell him, Hey, I have just learnt something and I need to modify our contract or the way we deal, I wan to work on weekly plan ( for tasks and payments ). then wait what he will say.

            1. 1

              Actually he paid the entire invoice without asking! Pretty cool dude. Life's good sometimes.