When I bill hourly, it’s somewhere around the 200-250 USD range, but I much prefer to bid by the project. I also do a fair number of talks around machine learning/security, AI and the future of work, and consult with policy makers on the impact of tech (esp. AI) to jobs and rural workforces. The latter generates me significantly more revenue than the hourly billing.
As to the projects themselves, to use the adage, ML is probably less than 10% (maybe even 5%) of the actual projects. Most of the work is finding the data, cleaning, and doing things like figuring out how to get their IOT devices regularly reporting to the cloud or Messing with things like SNMP and monitoring infrastructure.
Hope that helps. Feel free to ping if questions.
Your goal is to work efficiently and fast. When you do this, it means you get to make more money for less time and the client gets the benefit of getting work done faster.
1. You penalize people who are wasting your time with trivial work like testing or not refactoring.
2. You can part time, or do a major project in parallel. E.g. work on the train, or while teaching classes.
3. Suitable for work where there's a lot of time consuming back and forth and experimentation, like working with APIs, CSS, copywriting, UX design.
4. You simply want to do other things the rest of the day - go to the bank, play video games.
Pros of charging daily:
A. If you have a lot of non billable hours. For example, you do a lot of hard work and need lots of rest.
B. Works better where there's less trust in the contractor. Sometimes when you don't trust yourself either.
C. Suited for deep work, which is hard to get into under pressure of hourly billing.
D. More room to research, where you don't want to feel guilty spending a lot of time researching something.
E. Less switching costs because your whole day is dedicated to only one thing.
For stuff like machine learning as opposed to front end web dev, perhaps daily rate is best.
If you said “charge by project/milestone”, your reasoning makes sense.
The people who charge a lot by hour (lawyers, tax specialists etc) will often charge in 15 minute increments. Even if you charge by day, tou’ll find you have to charge in 0.25 day increments or so.
You don't track your time specifically, you do report back on your progress each week/two, and the company makes renewal decisions off of that. The point is to not subdivide the week.
How does this work out if you finish all the tasks in the sprint really quickly or barely finish any in terms of client happiness? What are the benefits over charging per day or week?
Can you explain the advantages daily billing has overly hourly billing when the client has a constant stream of work to keep you busy?
Sounds like the main benefit is if a client interrupts your day with only a single hour of work to do, you can bill them more? Apart from that, doesn't it still have the downsides of having to keep timesheets, having to justify your hours and working faster means you earn less?
I'd they present you with a project that you agree to deliver in 6 weeks and then mostly leave you alone in the interim, it's probably a different story.
You could work just 1 hour a day; but you can similarly just work 10 minutes out of every hour you bill. If you're saying "well, yes, but it's not considered ethical on hourly rates and considered ethical on daily rates" - then our experience differs.
In a day rate situation, if you're blocked by client inaction, they're still paying you daily. In an hourly situation, that is generally not the case. And if you can truly satisfy client obligations working only an hour a day (very unlikely), then yes, you'd still get paid for the days and there would be nothing unethical about it.
I would also ask if you have a rough idea how much of the ML work is implementing basic models to production versus actual data scientific work in coming up with/tuning the underlying models themselves.
- 1% true research / original ML
- 29% figuring out clever ways to apply existing approaches to new problems, understanding how clients business works and thinking of new twists on old ideas to solve those unique problems, etc
- 70% helping the customer understand what ML can do, how to manage their data and how to convince the rest of the company and IT to let them actually do it
If you have stuff you think I should add, please let me know! (jan @ghostbytes.com)
Never be afraid of letting them pay you more!
The more projects you do, the more repeat business, the better you get, and the more you learn to not underprice you work (which helps you focus on the good projects where you can have the most impact). It pretty much compounds.
For the hourly stuff, I've had very little pushback until I get much above $250. Most of that work is break/fix. As above, I much prefer to do project based work and bid on a project by project basis. (Gives me incentive to work harder/faster, and gives the customers a predictable price. I've found a lot of them are wary of open-top ended contracts).
A good percentage of our work is remote (save for the robotics stuff, which is very hands on).