Have you found a way to deal with this that you're happy with?
Many of these platform have APIs you can use. I've created a few products off the back of them through tools I'm built for myself internally.
- https://www.inviewapp.com | Creates iCal feeds for your invoices and bills so you can see who owes what on your calendar (or in Slack). Works with most major invoicing platforms.
- https://www.quikk.co.uk | Backups and audits all your Xero data.
I'm sure you'd find neat ways to automate your workflow with whichever platform you end up opting for.
I ripped off an invoice template for Excel and I just use Google Sheets. I send the invoice via email. This has worked for me for 10 years. As a single-person corp I don't need anything more complex.
I also view invoicing as a completely separate activity from time tracking. I log time every week either in my client's system or in my own independent time sheets. I reference those numbers when I create the invoice.
I have a Google Drive template that I use.
Then for clients I copy last month's invoice for the new month, add in whatever info I need to (usually very little) and save it as a PDF to email them.
Once a month I create and send these invoices to a handful of clients.
I also wrote https://github.com/nickjj/invoice to automatically tally up how much I should bill each client.
All in all I spend about ~10 minutes a month creating invoices.
I would stay away trying to be super detailed about what you did in small time increments, unless required by customer. Nobody really cares about it, it is much better to say "Feature A development. 30hrs" than "Feature A research 15 mins, Emails 1hr. Rework screen A 4hrs... and so forth in long letter that looks like AWS bill.
I do track my time per project (usually break down to dev and admin category) but give out just half-day or maybe hour increments.
For invoicing I take the Harvest time tracking, export to Tiime.fr (my accountant uses it and I get it for free) and generate the invoice there.
Harvest + Forecast + Tiime (free) is only about ten bucks a month.
As for when and how to invoice, I mostly do retainer work and send invoices at the end of the month. For some hourly work or project work I bill at the end of the project or when I judge the amount of the invoice is worth bothering the accounting team at the client about.
I'd recommend invoicing everyone even if you don't need to (because you said some of your clients are more informal about asking for payment). Having consistent invoices for everything in one place will make taxes a lot easier. It will also be important if you ever need to do something like get a loan or buy a house or anything where you need to show who you clients are.
If you are in the US, don't forget to pay your estimated taxes on time! If you are somewhere else, make sure you register for the appropriate local system and don't get behind on taxes.
Suuuuuuper simple, and it keeps track of the invoice number each time I download a new one. I just put in the right details, download it, and send it in.
To keep track of projects, I use Trello: I've got a bunch of columns that I have for "Approved" "In Progress" "Completed" "Invoiced" "Paid", which helps me remember where, what, when, and how much I need to send in. It's a little clunky, but I've got a good workflow with it.
Step 1 - get an accountant
Step 2 - start using the bookkeeping software the accountant recommends
Step 3 - send invoices from the bookkeeping software on the first of the month
You are conflating a few things though:
* invoicing per se. You should get the habit of doing this even if the customer only want to know the hours. Paperwork matters.
* invoice details. Try not to go overboard here. Split per project, total number of hours, make a SUM and you are done.
* work status updates. Don't keep the customer guessing. But also, don't allow the customer to manage your every 15minute increment. You are a 3rd party not their employee.
I work through an agency that has its own work tracking also in a spreadsheet. They handle invoicing and collecting payment for their customers I work with.
Feel free to message me for more guidance on getting situated as a freelancer and if you want to learn more about my experience with Collective. I was in your position and someone had explained all this to me instead of learning about it the hard way!
I'd track my time, attach it to a contact, create an invoice for said time at x rate, download it, send it to them, and when the $/£ was received, I'd mark it to that invoice. I'd have automatic bank feed, so I'd have my business bank transactions imported daily, I could then attach a payment to said invoice, and any difference in money (invoiced $500, received $475 - transfer fee, currency conversion, etc), FreeAgent would automatically select the correct reason for the discrepancy. Everything was categorised, my accountant could pull reports/taxes from FreeAgent.
This was a few years ago, I only imagine it's gotten better since. I've recommended it to people in the US, and I think it integrated well with the US way of doing things (taxes, forms, etc).
I found the smartphone app handy before the lockdowns, and I especially like how they handle emailing clients.
I've also used an accounting system like xero which will generate invoices and give payment options, but that was more about the back end matching an accountant's system.
One tip: Any effort put towards "making your invoices beautiful" is overhead and likely a complete waste as most clients won't care or notice.
We're built from the ground up to handle invoicing for freelancers and come with lots of little details to help you save time and get paid. E.g., automatically apply late fees, lock files on a invoice until paid, recurring invoices and auto payments, and more.
Happy to answer any questions you have!
Invoicing feels like such an inconsequential part of consulting. As long as you send it on time and follow up accordingly (or automatically), it makes no significant difference where it comes from.
Built my own tool to email a PDF invoice.
Caveat emptor: we've been building custom machine learning products exclusively for large enterprise for seven years..
I wrote a twitter thread[0] you might find useful, especially as a relatively new freelancer. It deals with the fact you'll get paid way more if you're a company than an individual, product development, protecting yourself, foot in the door, and then expanding and abstracting. The context is enterprise products in the mid six figures that a couple of individuals can pull off.
- [0]: https://twitter.com/jugurthahadjar/status/131066829330549965...
Here it is, unrolled:
0. Form:
0.0. It pays to provide services through a company. Companies write large checks to companies without blinking; not so large for individuals.
1. Contracts:
1.0. Get a lawyer to prepare contracts for collaborations. Someone at some point might disagree or have trouble remembering what they have agreed to pay you, make sure to have a mnemonic device in the form of a clear contract.
1.1. Companies have typical contracts for collaboration: don't sign anything without legal counsel.
1.2. Retain intellectual property to amortize engineering and sell what you make to others.
1.3. Companies might ask that you do not sell to competitors: define them and contain geographic zone and duration. Get paid for the opportunity cost.
1.4. Split project into tranches for which you get paid. This can help cash-flow and reduce risk, especially in the beginning.
2. Presentation:
2.0. Your company solves problems and being open minded about these problems is useful; so it's not much about finding problems for your solutions, but more like finding solutions to clients' problems.
2.0.0 After enough problems you built solutions for, patterns emerge and you can abstract a solution that serves several use cases. See "Abstraction" section.
2.1. General presentation with broad strokes of your capabilities, including previous work with other clients
2.2. Conversation with the prospect on their worries in a given space
2.3. Conversation with the prospect on their worries in a given space
2.4. Extract problems from that conversation and send a list of N problems to solve/ideas to explore.
2.5. The client finds one problem urgent/highest priority/highest value
2.6. You get together and talk about "desirability, fasiblity, viability".
2.7. Once you agree on what to do, prove the concept.
2.7.0. e.g: organizations give us data and ask us to predict something, say customer churn or subway car malfunction. We return predictions, they validate the predictions, and we can then start the project because they have proof we actually can predict what they want us to.
3. Execution:
3.0. Your opinion on what is valuable for the client does not matter. It doesn't have to be valuable to you, only to the client. A client who gets excited by a functionality that took one hour to implement because it solves a real problem is a learning experience.
3.1. Go above and beyond. Some sectors/clients are hard to get in, but once you're in, you're in.
3.2. Listening and assuming the client is smart goes a long, long, long way.
3.3. Send meeting notes to the client. It clears ambiguities during/after the project.
3.4. Press to get the client's domain experts' collaboration. They will actually use what you're building. Get them at the table.
3.5. Some of the most valuable insights are gleaned after a meeting and not necessarily with your "counterpart".
Don't build the wrong thing.
4. Abstract:
4.0. When you solve many problems, some patterns emerge. You built custom products for your clients, but you can abstract functionality and build tooling to scale your services, and enable others to do the same.
4.0.0. e.g: we we built machine learning products for enterprise clients. After many projects, we built iko.ai, our own machine learning platform to "Get Data Products Released".
4.1. One advantage of this approach is to explore the space while being profitable. Some problems exist not for lack of a nice front-end or lack of knowledge of the target audience. Coming at them from a purely "webdev"/"devops" mindset can bring bad surprises.
All the best,