Catacaustic is complete correct there; in the end, everything
comes down to time. I recommend using this formula:
(how long do you think it will take) x (your hourly rate) x 2
x2 because in the end, everything always takes longer than you expect with very few exceptions.
[I just saw in your other post that you're not familiar with Drupal. In that case, multiple by x4 because Drupal has a massive learning curve; probably the highest of any PHP framework.]
In the US, rates for contracted professional software development tend to fall between $50 and $200 per hour. If you're not used to billing hourly though, it's probably difficult for you to gauge what your time is worth on an hourly basis - so think about it on a yearly scale instead. A full time worker works approximately 2000 hours in a year. What do you feel is a reasonable yearly salary? If you're just coming out of school, I expect you're thinking somewhere around $50k to $100k. $50k/2000 works out to $25/hr, BUT remember that as a contractor you don't get full time benefits. Those benefits are easily worth another $10k or $20k. So a $50k salary actually works out to closer to $30/hr - $35/hr.
To be honest, it sounds to me like you're about to commit to more than you quite understand. Obviously I have not seen actual specifications for the project, but a 6 figure estimate for a site that like is completely reasonable - because it's going to take a really long time to build. The company was probably estimating 1500 - 2500 hours, which is the same ballpark figure I would give if someone came to me and asked me to build a custom Drupal site plus a site like Facebook.
So first you have to ask yourself, do you actually have that much time to commit to this project.
Then you have to ask yourself, can I actually do that much work in the timeline they want.
And finally, you have to ask yourself, am I willing to do that much work at a hugely discounted rate?
For a 2000 hour / 1 year project, $100k works out to only $50/hr. So how much lower can you really bring that?
| This company is on a budget so that's just not possible, they simply don't have it. |
If the company doesn't have the money to do the project, then they don't have the money to do it. That is (a) not unusual, and (b) not your problem. The fact that they simply don't have the money doesn't make the project any easier or less time consuming. Tell them to reduce the scope of the work or get a loan.
| I'd rather give them a flat rate and go from there. |
No, believe me, that will not work out well, it almost never does. You will walk away stressed and overworked in the end because you feel they misrepresented the scope of the work in the beginning (and they probably did, because very few people actually understand the scope of a project like this, particularly non-technical people). Plus, in the end, they will still walk away feeling cheated because in their opinion you never finished the site.
The one wildcard is that possibly the first company that they talked to misunderstood the project specifications and overestimated the project. It does happen, but not very often, and based on what you've said I doubt it happened here. Software companies have an incentive to underestimate work, because then the client is more likely to move forward with it. Any software company that consistently overestimates work is going to have a lot of trouble landing projects.
I don't mean to sound all negative on this, but I don't want to see you end up screwing yourself over on this, and I can totally see it happening. If you move forward with the project, be totally and completely sure that you document EXACTLY what you're going to build for the client and get them to sign off on it; that's the best way to protect yourself.