I know, I know, everyone says agencies need to move to value based billing. "Bill for what you are worth," they say. "You need to help people understand the value they're getting," they always tell you.
They don't tell you about the sleepless nights and hardcore sales pitch tuning that goes down ahead of time, or that you need to pad every invoice, or manage expectations constantly to make sure you're not doing anything you didn't agree to from the beginning.
Yes, in theory you should be able to charge $100k for a logo and deliver one version two weeks later that is approved by the greatest entrepreneurial mind of our generation. But most likely, you are not Rob Janoff.
We don't do that.. Typically we take on projects where there are many unknowns and we need to approach these projects with flexibility in mind. Where other firms will spend a ton of time in the estimation and sales stages of the project, and then command a healthy margin by under-delivering on their fixed bid, we prefer to get in there early with some small tasks, bill hourly, earn the client's trust and then go from there. We have been able to turn small retainers into large ones, and keep our retainer clients for years and years.
At this point, this is our best business model: onboard a client, track time, be fast to respond, over communicate and most importantly, ship it or zip it. If we are not continuing to show value week after week then we should let that client go.
We all sleep better and work better when there is a fractional support agreement in place, and we can put effort towards whatever the client needs us to do. This is how we invoice for our fractional digital support team model.
When you start a new client on a digital support retainer, you will agree to a hourly rate (try to get to $185CAD/h or $165USD/h) and a block of hours per month. Even on a new website project that has a fixed budget, we should break up the estimate into monthly payments.
You just signed a website redesign project! It's about 400 hours based on their RFP and they want it built in six months. You are planning to start on April 23rd and it's April 15th.
Send an initial invoice for 50hrs that is due on receipt (April 15th.
Set up a recurring invoice for the remaining 350hrs (70hrs X 5 invoices) that start on May 1.
In the invoice, reference the SOW document or the approved estimate as a link. You can include the payment schedule and deliverables or whatever else makes sense in the invoice too. Also in the notes, remove the instructions for EFT/ACH that don't apply for that currency. For example, remove the EFT instructions for american customers.
Make sure you matched the currency. If it's USD then dont include any taxes. If it's CAD then include GST.
The invoices go out automatically on the first of every month, and hopefully the client pays by the 15th or so.
These types of projects should be tracked like this in Harvest:
The invoice line items for the hours are associated with the correct project in Harvest.
After the invoice goes out, that amount of hours should be added to the total budget of the project. For example, if it's a 35hr/month pre-payment and the total budget is 450, you need to update it to be 485.
At the same time, update the description with the invoice number and total hours added. One per line, so it's easy to see all the invoices that have been sent and the hours billed.
At the end of the month, we need to tell the client how we are tracking on hours compared to the pre-payment. If we are over by more than a couple of hours, we need to send a "bonus hours" invoice.
Read below for how to send the bonus hours invoice. For the rest of the invoicing, keep reading this section.
Not every client has a pre-payment agreement in place. For the ones who don't, you need to work from the "Uninvoiced" report page. You should invoice for all of the outstanding hours from all time. There is an Uninvoiced Report set up in Harvest. It's easiest if you just modify the end date to the last day of the previous month. To do this, click on edit timeframe and edit the end date. then update the report so it's saved as you will keep going back to this report over and over when you are doing the invoicing.
Usually that is only one month of hours, but sometimes if the invoice is only going to be a couple of hours then we don't bother sending it. If the total hours is around 5hrs or higher, or it's been months since you have invoiced them, then maybe you should just to clean up the uninvoiced and send the invoice.
When you are tracking and pre-billing hours, some months we go over and some months are under. Both are annoying, but at least if we go over we can send a "bonus hours" invoice for the extra work that we did. This is how you do it.
Check the project and see when the last bonus hours invoice was sent. Let's say it was 3 months ago.
Go to the uninvoiced report page.
Generate an invoice for all of the unbilled time. Make sure it goes all the way back to the day after the last bonus hours invoice went out. If some of the time is marked invoiced, you need to "mark selected hours as uninvoiced" for all of that time from the last bonus hours invoice until now.
Now that you have all the time uninvoiced, generate a new invoice using all of the time from the last 3 months.
In another tab, go to that project and double check how many hours have been paid for in the last 3 months. I usually check the invoices tab. Let's say it's 35hrs/month, so 105hrs total.
Back in your invoice tab, create a new entry at the bottom called "Monthly Pre-paid hours" and add the detail about which months they were billed and how many hours. Put that under the correct project and use the "Service" category.
Set the number of hours to 105 and the cost to the negative hourly rate (eg -185 or -165)
Here's an example from Vitruvi.
It can be annoying if the client asks for weekly hours reporting and we are reporting by the minute, but we invoice by the quarter hour. To make things easier, you can either:
Hover over the week view on the project page and write down the hours tracked for the week
Or pull a detailed time report as a CSV or excel file and use the "rounded time" column to calculate the time.
We have had some success over the years applying for a tax credit for the more difficult or experimental work that we do. We love doing hard things and this is an incentive from the Canadian government to keep doing hard things in Canada with Canadians.
If you have an idea for an app or tool for a client that can't be stitched together using plugins or off the shelf tools, please let us know and we can see if it's something that we could track and submit as part of our grant application.
Our multi-year projects over the last couple of years are:
component-based web development (platform agnostic)
data migration solutions
fitness and activity tracking (Move2help)
If your project can fit under one of these that's great, but it doesn't have to. AI, machine learning, blockchain, quantum computing, or anything that you would like to experiment on that could lead to a new application of these technologies would apply.
Since we have started getting work from US companies and billing in USD on some projects, we have finally started to make some profit.
Let's keep it up!
We're not going to drop Canadian work, obviously. But if there's a choice of where to direct your effort, get back to people sooner and so on, give priority to US clients over Canadian agencies we're sub-contracting for. Sad but true.
Tips for billing:
Use the same process as any monthly retainer client (see "First of the month" above)
Include the ACH instructions on the invoices or in any vendor forms you fill out. Right now we are using WISE for all USDs. The ACH information is on all the USD invoices.
???
Profit
Most or all of the USD ends up in our WISE business account, and when we need it it can be moved over. It's really important to not include any notes on the wire request as that can trigger a whole host of problems, just leave the notes section blank. Because it costs about $25 to transfer money out of WISE, try to do it when there is enough money in the account
Once we have collected $20-$40k or so in the TD USD account, we should probably convert that to CAD so that we can pay people and ourselves. The best rate we could find was with VBCE (Vancouver Bullion). The more you transfer the better the rate, but we are capped at $50k. Here's the steps to transfer the money:
Make sure you have the money in the TD USD account first! You can trigger an NSF if the funds are not there.
Log in here with the ID (6326346), username (andrew.mellenger) and password.
Select Quick Transfer, choose TD USD as the From and TD CAD as the To.
Set the From amount to $40,000 or whatever you are selling, and then get the quote.
If you are happy with the quote, you can accept it.
The money ends up in our account within a day or so.