This tool offers an invoicing case history and lists the comments of various CFOs on how they
invoice professional services.
One firm is using Robotic Process Automation to automate invoicing.
I am curious how you handle invoicing of your professional services. We have a lead for an engagement and they are responsible for triggering a billing event. That is reviewed by our accountant against our engagement contract and then the sales invoice created then is reviewed/approved by a partner before it is sent out to a client. There is a delay in time up to 2 weeks or a month or more before we finally send the invoice to the client. Do you end up modifying the invoice date so the client does not appear to get an invoice that is 30 days old? We do not modify the invoice date from the original billing date for tracing and accounting purposes. We did go through a system transition last year and significant revenue growth that had our invoices going out to clients that were several months old.
Â
Responses
- We are a professional services company and we have a Central Billing Team. Our billing team is able to see when a project is 100% complete by looking at the hours and expenses in the system and self-identifying when it can be invoiced. We are embarking on an Robotic Process Automation project to automate invoicing this year. Invoices get emailed to customers the day they are generated. They are quality checked before they go out in the same day. The size of our company is $200m in revenue and we have 6 billers, 1 process supervisor and 1 manager.
- For Time and Materials invoicing we typically bill at EOM. Invoicing is sent to customers by 7th workday. For fixed price or milestone Billings we meet with the PS department at month end to review which items are to be invoiced currently. Same deadline exists. Someone in Finance needs to own this work flow otherwise it results in late invoicing and delayed cash flow. Basically, needs ahead of time focus to result in optimal timing of invoicing
- We have a similar issue and we have decided not to finalize the invoice in our ERP until all final reviews have been completed, i.e. the partner would review a draft invoice and not a final invoice. Not sure if this would be possible with your process but I agree with the accountant that the
aging is incorrect if you are holding invoices for weeks or months before sending them. - I’m interested in hearing how others handle this issue as well. I usually kept the original invoice date when created and adjusted the collection policy when looking at aging report, but didn’t have so many invoices I couldn’t monitor.
- I had a similar situation for one of my clients and we did 2 things: 1. We used JEs to record the revenue when earned and not invoiced (CR.Income, DR Accrued Revenue). So the invoice date was always the date we sent it to the client and it was always coded under Accrued Revenue. 2. We created policies that would streamline the approval process and stop the internal delay (also cash flow delays) – now this took a minute to implement and getting everyone to follow through with the policy but worth it at the end as now we have more predictable cash flow
- I had this exact issue. We adjust the invoice so it is dated on the date sent to the client. By doing that, the aging is more accurate and the client’s AP isn’t opening up an email with an old date. Since our revenue follows 606, the receivable stays in the UnBilled Invoice account until it gets sent. We have numerous clients who use third-party systems to manage their payments and one AP approves the invoice, then our team needs to log into this system to upload the “approved” invoice. Therefore, there are more days added to the processing that affects cash flow. I had this exact issue. We adjust the invoice so it is dated on the date sent to the client. By doing that, the aging is more accurate and the client’s AP isn’t opening up an email with an old date. Since our revenue follows 606, the receivable stays in the UnBilled Invoice account until it gets sent. We have numerous clients who use third-party systems to manage their payments and one AP
approves the invoice, then our team needs to log into this system to upload the “approved” invoice. Therefore, there are more days added to the processing that affects cash flow. - We bill weekly and the invoice date is the date of last service, not the date of invoice creation. This only predates the invoice by a few days. You are right to fix this because I expect that the current process not only creates negative customer experiences, but impacts cash flow, resolution of errors, financial reporting, etc. I suggest asking a few questions: What value do the multiple levels of approval provide? Are errors found? If yes, is there a better way to prevent those errors upfront? Are all of the reviews necessary? Is it ok to sacrifice multiple approvals to achieve timeliness? Based upon the above, you may find that invoices don’t require the level of approvals that currently exist and you can eliminate layers. You may also have to sell them the benefits that will be achieved through a more timely process. If there is no support for this change, then you can look into possible automated workflows that will create reminders. However if partners are not going to prioritize approvals/timeliness, then there is no
automation to solve that issue. - interesting question. I’d say this is a business decision. I would opt to change the invoice date, if the review process really takes that long. However, I recommend looking into your invoicing process. You could review in draft mode (without creating a final invoice) or with a billing
report. The time to invoice strikes me as very long for a professional service company. Long review times result in higher collection risk and significantly higher need for working capital. If you can shorten the review period (in our company we target 3 business days after the end of each week), you have a win on your belt - We have a template that we use for billing client in which the field name is event date. You can probably modify your template to do the same? It’s a custom field we use