Fog Creek Software
Discussion Board

Normal not to get paid until end of contract?

I was recently awarded a contract for a 1,500-hour project by a semi-large company in another country (my first at going it alone...). I told them as part of the proposal I'd need 25% up front, 25% at the first deliverable milestone, then 50% on final acceptance, and they said "no problem."

Well now, after I've flown out, gathered the requirements, signed the contract on the above terms (which is basically unenforceable, since their country is somewhat backwards) and gotten back, they say it's "normal" in their country to not receive any payment until it's been developed, delivered and accepted, which is why they're late with the first payment (oh, and they'd like it finished in eight months instead of twelve "if at all possible...").

I know that kind of schedule pressure is normal in contracts, and late payments from customers are pretty  normal, but it sounds crazy to ask somebody to develop completely custom software on their own dime, submit it, then if they like it they will pay. And if not, oh well.

Or is that in fact how large software developers operate? I can kind of see booking the contract to show the revenue right away, then writing it off later if the customer doesn't accept it (which is probably unlikely if the customer truly needs the software). But that just seems a risky way to do business. Or is that how it's done?

New At This
Wednesday, March 3, 2004

You didn't mention which country you're in or the client is in, but from my UK perspective it sounds totally dodgy.

Without knowing more about it , its hard to tell, but my instinct here would be to press the "Eject" button before you crash and burn.

Steve Jones (UK)
Wednesday, March 3, 2004

It doesn't matter how they do it in their country.  Your payment schedule is how you prefer to work, because it provides both parties with some security.  It sounds like they are already screwing with you, and if you let them get away with it, they are sure to get a lot of free work out of you.  If you can't get them to work on terms that you find reasonable, don't work with them.

Keith Wright
Wednesday, March 3, 2004

I would never accept a contract that says "no greens until final delivery and acceptance". They can scew you over and have you work for free, and keep changing their minds all the time, so you never reach "final acceptance".

Wednesday, March 3, 2004

Even the originial 25/25/50 arrangement (for a 12 month contract) sounds generously in their favor.  If you're an individual working on this contract, if you're billing them through your own corp, you should be getting paid on regular (e.g. biweekly basis). 

Sounds to me like they suspect you're naive, and will try to take advantage of that fact by either NOT paying, or paying a significantly reduced rate at the end.

Start getting some money now, or get out, or get totally screwed.  Those ARE your three options.

Ken Klose
Wednesday, March 3, 2004

You signed a contract stating payment terms, and now they are trying to change those terms. My gut feeling is that they will also try to change the terms at the end, like "we can't pay you until we have all the code" followed by either "the code is unsatisfactory, we won't pay" or "The number you have reached has been disconnected..."

If they don't make the first payment, they are in breach. I'd recommend you see a local attorney for advice, but in the US you have the right to refuse to commence work until you are paid.

[this is not legal advice]

Wednesday, March 3, 2004

Give them a very short (< 1 week) deadline to get the money to you, or bail out. They are already in breach, and it seems clear that they intend to shaft you completely. They knew when they signed what the contract terms were. If you let them push at all, you'll end up with nothing.

Push back FAST, or get out. Otherwise, you're toast.

Michael Kohne
Wednesday, March 3, 2004

Run away! Run away!

Wednesday, March 3, 2004

I agree with all of the above, expecially Philo's comments.

They're already reneging on the contract.

Did they understand that the contract called for pay "as you go" ?

At what point did they "realize" that that's not how they do it on thier country?
What other "issues" will they "realize" in the future.

It may be all a misunderstanding. Give them a chance to meet your generous terms. Otherwise, drop 'em like a hot potato. It's easy to find work where you're not paid.

The real Entrepreneur
Wednesday, March 3, 2004

I'm a contractor and I've done some fixed price projects.

As stated before, the client is changing the terms of the contract. Very bad faith being shown here. If you can't trust them to stay with an original agreement, then you can't trust them to pay you when you're done. Software is like a vapor; you have no collateral you can withhold when you deliver your software.

If they're using their country's prevailing practices as an excuse, I'd love to know which "Ebonia" it is.

As also stated previously, your request for 25% up front is modest and reasonable.

Lastly - in some contexts it's not possible to ask for advance funds to start a project. Example: specifies in their online bidding pages that any request posted in a bid for an advance payment  will disqualify the bid and cause the bidder to lose their account.

In summary: it is absolute idiocy - extremely bad business practice - to do a significant amount of work up front with no payment from the client.

Bored Bystander
Wednesday, March 3, 2004

I'd suggest a simple no-work-til-I'm-paid policy whenever anyone is late paying you.

Mr Jack
Wednesday, March 3, 2004

Must be standard in their country to rip off the gullible
as well.

My guess is the software will never be correct.
There will always be a bug.  A new feature.
A feature you didn't get right. The upshot
being the project will never finish and you'll
never get paid.

son of parnas
Wednesday, March 3, 2004

I have worked with a lot of "bad" clients.

They signed a contract - so they should pay the upfront amount stated in the contract. Otherwise, don't do any work for them.

Even if they pay the upfront ammount, they are bad clients, so be very careful with them. Don't deliver code before you are fully paid, only give them a time-limited .EXE before, etc.

Wednesday, March 3, 2004

Where are they from (country)?

Wednesday, March 3, 2004

"In summary: it is absolute idiocy - extremely bad business practice - to do a significant amount of work up front with no payment from the client."

Couldn't we look at this from the client's perspective and turn it around?:

"In summary it is absolute idiocy - extremely bad business practice - to pay for an amount of work before it is done."

Surely staged payments are the solution (i.e. monthly).

Of course if you were dealing with a reputable company and a tight contract payment is unlikely to be an issue. And if it were then the contract should be easily enforceable.

If, on the other hand, it's a dodgy country with questionable legal recourse you'd want some up front (to cover your costs if it all turns to shit) and then regular payments where your exposure is limited. One way or another someone is going to be exposed but you need to make sure that that exposure it a level you're comfortable with and can afford to lose. You can't make too many demands otherwise they'll feel they're too exposed and then they'll find someone who's more reasonable.

Wednesday, March 3, 2004

Making a "good faith" payment up front is customary in just about any endeavor where there is custom work involved - it's a sign that the requestor is serious about wanting the work (and therefore serious about being willing to pay for it)

Look at it this way - if the client doesn't make a payment up front, then the *contractor* is making a payment up front (in time and effort). Somebody has to pay first. ;)


Wednesday, March 3, 2004

All the above advice is exactly on target.  Every time I have had a client start waffling on things that were previously nailed down, it's a bad sign.

I had one place cap the amount of hours then add on more work and want it sooner than originally agreed to.  To top it off the terms were net 30 and the last payment was pushing 60 days since "we haven't been paid by our client yet".  Their accounts receivables is not my problem to deal with.  I hope they enjoyed the effort I gave them since I don't expect to hear from them again and will turn them away if I do.

The best advice I ever got for situations like this is: "It's not a good deal unless you can walk away from it."  If you're desperate for the work or want to land some big name client, be prepared to be put through the wringer for the privilege of doing the work.

Roger Dodger
Wednesday, March 3, 2004

Make everyone aware that you will walk if treated poorly and having that in mind, never put yourself in a position where you can't.

It is easier than it sound but remember clients are like dogs and women, they can smell fear and desperation.

And for the two women here, Clients are like monkeys and men...  Keep your eye on them or they will be flinging shit everywhere.

Wednesday, March 3, 2004

Wow, it seems pretty unanimous... thanks for the advice, everyone!

I'm in the U.S., the company is in Chilé, and they integrate and resell factory equipment for beef processing plants. They got a big (for them) contract with a factory and needed me to write monitoring software and a custom configuration editor (I did similar in my previous job).

I priced it at $120 an hour and figured I might not get the final 50% at the end if they dicked around, so $60 was still acceptable to me... plus I was going to have it work for 30 or 60 days then require a hardware dongle, which they wouldn't get until final payment.

But I just wasn't prepared for them to want to redo the contract after signing... thanks again for the feedback, I wasn't sure if that was normal or not with international work. I'll try to nicely tell them you no pay, I no work.

(Those f&%@ers, I quit my nice salaried job for this contract... )

New At This
Wednesday, March 3, 2004

We had similar problems with a non-software related contract with a country in Asia.

Push back, give hard deadlines and pull out the L word.  Things should clear up quickly.

Wednesday, March 3, 2004

Danger Will Robinson danger...

Your client knows that they are dealing with a techie who doesn't know how to run his business properly.

As other have already mentioned, I would DEMAND to be paid according to the contract both you and your client signed. If your client refuses to do so, you should walk away from this project.

Imo, your payment schedule is overly generous to the client. In theory, you were suppose to receive 50% of the total payment by the time you delivered your first milestone and then wait (up to 11 months) till the end of the project before you received the final fifty percent! Your payment schedule should have been setup so that the final amount owed to you is no more than 25% - 30% of the total. I understand this is your first big project, however, you seem to be taking an unnecessary risk.

As far as shortening the schedule is concerned, your contract is based on a 1,500-hour project. If your client wants you to shorten this schedule, then among other things you will need to negotiate cuts in functionality and create a new contract which your client must sign.

One Programmer's Opinion
Wednesday, March 3, 2004

It depends a lot on the overall contract value and its length but I rarely give a retention of more than 10%.  Its just enough for it to mean something and not too much to hold a hammer over your head for.

Simon Lucy
Wednesday, March 3, 2004

They're trying to screw you! Or they want to force you to cancel.

And don't believe the "in my country" stuff. If you get a builder to build a house you pay him in stages in India just as you do in Indiana..

Inform them that they signed a contract and you expect it to be adhered to. Tell them that you expect payment withing the week, that you are not starting work on the next stage until you have received payment, and that the delay is to be added to the promised twelve month delivery date.

Stephen Jones
Wednesday, March 3, 2004

If the contract is indeed unenforceable (because their country is backwards???), then you aren't under much obligation to provide them with free labor, are you?

What kind of country has such a screwed up legal system that a binding contract is unenforceable?  If it can't be enforced now, then it can't be enforced even if you deliver a perfect program, and you will literally never get paid.

I would agree with everyone else here and say no more work until the check clears the bank.  (And yes, I do mean literally that - don't just accept a check.  No "the check is in the mail" or "we're setting up electronic payment and it will take a few weeks for it to be in place" or anything else.  When you see your bank account go up and no sooner.)

Good luck.  You are going to need it.

Aaron F Stanton
Wednesday, March 3, 2004

Don't waste 1 more minute of your time until you start receiveing payment.

You will deliver the app, and may never pay you.

Spend your time getting clients who will actually pay you.

(can you tell i've had a bad experience? :) )

michael sica (
Wednesday, March 3, 2004

The whole point of insisting on an upfront payment and then regular progress payments is that you are using your leverage while you have it.

If they want the system developed, they have to pay you to get it done.

If you finish the system before expecting any payment, you have no leverage at all. They can just keep putting you off, or tell you they're not happy with the work and are only paying 10 percent.

So the golden rule is always to demand some commitment from them, being an upfront payment, before starting work. Until you receive that payment, do not start the work. In the worst case, you won't have wasted time on the project.

There are additional practical grounds for demanding an upfront payment. It ensures the person commissioning you actually has approval in his own company to spend the money. You don't want to work for six months and then discover Mr X was just testing something out and didn't have management approval.

Thirdly, if they've spent money with you, there's motivation for them not to just kick you out half way through.

Must be a Manager
Wednesday, March 3, 2004

Run Forrest, run....

Wednesday, March 3, 2004

Even if they now agree with the contract, I would put a 'time bomb' in the code that refuses to work after a specified period after delivery.  If/when they pay you, they get the final version otherwise they can't use your program after 60 days.

Be Afraid, be very afraid
Wednesday, March 3, 2004

You also should ensure that your contract with them specifies that they hold no rights in the work unless they pay you as specified in the payment schedule attached to your contract.

Otherwise, believe it or not, they will have the right to use the software even though they haven't paid you.

Must be a Manager
Wednesday, March 3, 2004

Agree with everyone.  Make sure you get paid.  I would be concerned about the months you work before your 25% though.  You probably already figured this out.

As an aside, and sarcastically, are you aware that you are OUTSOURCING and OFFSHORING, you must be the scourge we hear about all the time.  Yes, this is a two-way street!


David Freeman
Wednesday, March 3, 2004

*  Recent Topics

*  Fog Creek Home