Increasing Cashflow in a Software Consultancy

Here are some basic thoughts on improving cash flow on successful projects, which should be applicable to many freelancers / contractors / consultants.

Possible current problems

Payment latency

Invoicing is generally kind of a pain because you have several gates to get through in order to get paid. You could be looking at the following situation if your company has net-thirty payments:

  • Work done on day 1
  • Company policy is to bill the client every thirty days, so we send the invoice for days 1-30 on day 31
  • Our invoice is on net-30 terms, which means the client has thirty days to pay the invoice (day 61)
  • We notice the invoice has not been paid on day 65 and send an email reminder
  • The client promptly sends a check via snail mail. We receive it three days later (day 68)
  • We deposit the check on our weekly bank run (day 70)

So with these policies and delays, we could easily be looking at seventy days between when we do work and when we get paid. One issue with this is that it gives us a slower feedback cycle on the work that we are doing.

Startups considered harmful to cashflow?

I’ve heard something along the lines of this story a couple of times:

We started work with [startup X] in April and things were going well. They paid on time and were generally a pleasure to work with. Then they started falling behind on payments, but they assured us that payments were just around the corner. Finally we had to cut them off because they were avoiding us, but unfortunately we have a couple of months worth of unpaid bills on the project. Now they are saying that unless they launch soon with a few more features, they won’t be able to get more funding, and won’t be able to pay us.

So now the consultancy is in the unenviable position of:

  1. writing it off and losing a couple of months of money
  2. trying to help just a little more and taking the risk of losing whatever leverage they might have had

I liked Brennan Dunn’s perspective on considering equity:

I make it very clear that I’m a professional, and my job isn’t to take on risk. The founders and their investors are on the hook for either crashing or burning or making a boatload of cash; my job is to get paid for services rendered.

Taking equity further harms your position, as you get into “between a rock and a hard place” decisions a bit more often. It also exacerbates cashflow issues, as equity pays out generally only on a liquidity event, which may be years from now (if at all.) Try paying for dinner with equity from a pre-IPO company, and you will see what I mean. :)

Some potential solutions

Getting better terms

Alan Weiss has written some excellent books on consulting including Million Dollar Consulting. I definitely recommend reading it, as it will force you to look at your business assumptions in a whole different light.

Weiss promotes getting better terms for your contracts. He requests that all clients pay upon signing a contract with him for the full fee. For a monthly retainer, he might book for six months or a year. For a full reason of the benefits, I encourage you to check out the book.

I enjoyed these posts by Sebastian Marshall on thinking through the systems behind fees:

Creating better internal systems and policies

I recently started depositing paper checks with my phone to avoid needing to go to the bank (to cut down on the amount of delay in the money-getting workflow.) What other things could you do to cut out delays entirely caused by your end?

Do you invoice monthly? What about cutting it to biweekly? This would certainly help to reduce the risk with minimal impact on client relations. Same for payment terms, doing something like net-15 instead of net-30 should be no problem for a client that you are meeting with every few days anyway.

I recently highlighted using IPN to get faster payment of invoices. Through IPN or other means you can give an incentive for timely payments, although I probably would not do that unless I charged higher than usual to begin with (a form of fees for late payment.)

When you consider that you develop software in an iterative manner to reduce risk, why not bill for that software development in a manner that reduces the risk?

Get payment up front with riskier clients

To avoid the aforementioned client with financial problems, consider taking advance payment. If you have a lot of potential paying clients and an existing client misses paying an invoice or two, you can consider making prepay the default for that client.

This may seem heavy-handed, but you have a business to run and should not be in the business of making loans. If I have ample clients, then those that are not paying in a timely manner need to get current and stay current or risk losing trust.

What if you don’t have a good idea of what to charge for a prepay block? You could look at past billings and make an educated guess, charge a certain amount and then invoice for the overage or apply the credit to the next month, or allow prepayment for a block of hours.

Prepay for a block of hours

Jared Brown taught me about a “prepayment for a block of hours” technique. Basically low-bandwidth clients purchase a block of hours (say, ten hours) and then they can use these hours across whatever issues come up. I suppose this is a sort of a retainer with a time cap. It is useful when the scope of work changes often or there are budget concerns. The client knows they will be paying for X hours and can get the changes they need, and that more work will cost more.

This strategy incentivizes clients to be clear about their scope of work and desired results. It’s also nice that you have the funds up front instead of needing to worry about tracking someone down for ten hours worth of work. In a sense, it’s batching up small payment decisions into one larger contract, and also bundling any authorization decisions in there as well. “I’m getting close to my limit, so I’m going to need you to sign off on an additional Y hours.” When you get paid, then you work. Not the other way around.

Other thoughts

Obviously I seem to be focusing on hourly / daily compensation, which leaves out the value-based fees approach. I think that some of the principles are similar though, and I think there is value in considering how you can get better terms and make better policies and systems.

Collecting Fees with Intuit Payment Network

Alternate title for this post: “So the check does not need to be in the mail.”

Today I will share a low-cost tool that helps consulting clients pay more quickly. This can help you get paid faster, which increases cashflow and makes your business less risky.

The Good

I think Eliza introduced me to Intuit Payment Network (IPN).

IPN charges $0.50 (fifty cents) per payment that is sent on their system. The nice thing is that this is done electronically, and payments generally show up in your bank account within a day of being sent.

I find the flat cost to be preferable to other payment solutions which take a percentage of the payment. For example, if you have a $2500 payment that goes through a payment processor that charges 1% per transaction, it would cost $25 to send that payment. I think one percent is on the low end of transaction costs, so it seems desirable to use the fixed cost.

A system like this is nice because it happens mostly automatically on my part. I create an invoice in Harvest (my preferred time tracking software [affiliate link]) and email it, and then follow up with an IPN request for that amount. I can schedule when payments should be made, and send reminders if they are not paid on time.

Some options that are there but that I have not used yet:

  • sending money
  • accepting credit card payments for 3.5%

The Bad

While there are some good reasons to use IPN to collect payments from clients, there are some limitations that I have found.

The most annoying was that it was tough to get receiving rate limit increases. The beginning receiving rates are probably fine for some businesses, but collecting payments for consulting will quickly exceed either your daily or monthly limits, no matter how much you slice it.

On IPN, daily limits are half of what your monthly limits are. When I first started out, I think the monthly payments were limited to $5000, and so my daily limits were $2500. This quickly ends up being unusable, since I fairly quickly receive payments that are greater than the daily limit, and the monthly limit means that I can’t break up the payments into smaller chunks to get around the low daily limit.

I contacted IPN to try to raise my limits. They put me through a fairly opaque limit raising operation. I sent them three months of bank statements and then they just said that the request was denied. I tried again soon after, with the same result. Then I just kind of punted on it for a while and just took paper checks.

When I tried the next time and related my previous experiences and desire to use their system, I was told that it was mostly their fraud department wanting to ensure that I had enough cash in that account to cover any fraudulent payments. After I understood this (and had a little more money in the bank), I was able to increase the rate to $25000 monthly / $12500 daily. This gives enough breathing room to receive large payments, and potentially to have multiple clients use this method. If I get close to the limit again (a fantastic problem to have), I would petition for another increase, set up another (possibly complementary) method, or ask for a one-off check payment or wire transfer.

So, not entirely smooth sailing, but that has been the only issue I’ve had so far. I am guessing that my requirements are different from many other small businesses?

Your thoughts?

Am I missing a simpler solution that does not cost much to implement? What are you currently using for getting invoices paid? What does the process look like on your end?

Vim Plugins: Why You Should Use noremap

Today’s quick post is about why Vim plugin writers should generally use “no remap” versions of keyboard mappings.

Check out this StackOverflow post for a great overview of how mapping works. Basically, using :map a b will map presses of key a to whatever b currently does. However, using :noremap a b will translate presses of key a to whatever b did by default.

There are variants of these commands, such as nnoremap and vnoremap which only change the mappings in normal and visual mode, respectively.

Plugin creators should use noremap versions because they can never assume that users will not remap their keys.

Some handy tricks that might be perilous

One thing that I currently use in my .vimrc and miss when it is not present is:

noremap ; :
noremap : ;

This sets the semicolon to enter command-mode (what colon typically does) and sets the colon operator to search forward on the line for the search character (what semicolon does by default.)

This saves me unknown amounts of shift-pressing, and I think it is very useful. However, when I run into a plugin that does something like:

nmap <leader>cf :let @*=expand("%")<CR>

My editor would not work quite right. This is because without using the no-recursive version of remap, Vim will interpret the colon as the colon to search forward, not the colon to enter command-mode (the default behavior.) If we instead say:

nnoremap <leader>cf :let @*=expand("%")<CR>

Then plugins work just fine even though I have remapped a seemingly critical key.

Randomizing Writing Topics

I came up with a quick hack today that I think is useful, so wanted to share it while it was fresh in my mind.

I have a fairly long list of ideas for blog posts, which I refer to when considering what to write next. My typical workflow has been to run through them and see which one I think is the best or that I feel the most strongly about at the moment, and then start writing about it. However, in practice, I run through the list and at some point either give up or lose enough focus that I stop wanting to write.

So my idea was to create a script to take the list and generate one writing prompt that I could run with. Hopefully any idea on the list is good enough to be advanced at any time or should be discarded. When I have only one idea that I can work with, I can focus on that idea only and not need to worry about other possibilities.

The list was a plain-text file that was separated by lines that had a bunch of equal signs on them. I went and quickly manually cleaned up the list to ensure that:

  • every entry was separated correctly,
  • long entries were split into multiple ideas,
  • and old entries were removed or clarified

From there, I created a no-frills script that goes through the list and prints one of the ideas at random. Here is a sample of the script.

I think this will be a useful technique when I have a bit of downtime and want to do some writing.

Saving $1400 With a Prepaid Phone Plan

This post will show you how I will save roughly $1400 over the next two years by buying a new unlocked phone and getting a prepaid phone plan instead of a standard contract.

Why I Switched

I put my last phone through the washing machine (and dryer), and while it still somehow works, it ain’t pretty. It now can serve as an ugly alarm clock or workout MP3 player.

My jacked up phone

So, I was in the market for a new phone.

New phones under contract are not often expensive to obtain, but the costs add up over time due to high monthly subscription fees. According to one article, the total cost of ownership (TCO) of a brand new iPhone 5s with mobile hotspot is roughly $2200 - $2700. That is $1225 a year on average. This does not count the new accessories Apple will probably make you buy to connect it to your computer or charge it. :)

Realizing this, I set about finding a cheaper option.

The prepaid option

The last I had heard of prepaid phone plans (PPP) was when I was in college and you used it for either a throwaway number, calling abroad, or you didn’t have good enough credit to pay for a “real” plan. Probably a misinformed bias on my part.

When I looked into them again, a few things appealed to me:

  1. PPP are contract-free, which means no cost to stop service or switch carriers (besides any small setup fees, like SIM cards)
  2. PPP can be much cheaper than standard contract plans, maybe as low as $30 a month
  3. I am not much of a phone talker. My average minutes per month for the last year were below 100 minutes a month

These aspects led me to do a little research and get creative with my phone plan. Even if you are a big phone talker, I still think there are plans out there that would be better than a standard contract plan.

My prepaid plan

There are a few options out there that might be appealing based on your usage. Most of the low (30 MB a month!?) or slow data plans out there did not seem useful for a smart phone. I also wanted a carrier that would get reasonable service throughout the US. Side note: some PPP carriers will work across multiple networks, so you can get pretty decent coverage.

I ended up going with one of the following T-Mobile plans:

  • $30/month
  • 100 phone minutes (extra minutes: $0.10 each)
  • unlimited text
  • unlimited data, first 5 GB at up to 4G speeds

Pretty solid. About the only thing I give up compared to my previous plan is some phone time (100 vs 400 minutes) and it is $30 a month instead of close to $80. But I can use Skype or Google Voice pretty easily, and that should take care of most high minute usages.

I needed to order a SIM card from them, which took a little longer than expected to get. I would order this before you order your phone if you are serious about it.

My new phone

Most high-end unlocked phones in the recent past were pretty expensive to buy. You could be looking at maybe $600 or so for a non-carrier-subsidized phone.

When I purchased my new phone back in June, it was $299 unlocked for an 8 GB version. It would have been nice to get the 16 GB version, but it was $349, which was a bit more than I wanted to pay. Recently, the phone prices dropped to $199 and $249, so you could get the 16 GB version now for cheaper than I bought my phone for (if it is still available.)

Not all phones are unlocked. I think you generally have to buy them unlocked in order to use a PPP. I am not an expert, so there may be ways around this.

I’m sure unlocked phones will be getting better and cheaper, and the nice thing is that I can upgrade at any time just by paying the up-front cost. I’d like to keep this one for several years to amortize the up-front cost, but knowing there is an option is nice.

This phone has free Wi-Fi and Bluetooth tethering (why I focused the iPhone price on the plans with tethering.)

Really, I think of my “phone” as just a small tablet computer that I happen to sometimes use as a device to connect to telephones. In that sense, it gets the job done pretty well.

New total cost of ownership

At $300 phone cost, plus $10 for prepaid-compatible SIM card from T-Mobile, plus $30 a month the plan for 24 months, I’m looking at $1030 total cost over the course of two years. Already this is cheaper than a new contract iPhone would be for one year. Total savings: ~$1400.

Any minute overages just cost $0.10 a minute, so I can double my 100 monthly minutes for just $10. If I keep my phone for three years instead of two, the economics look good ($50 savings a month for a year is $600.)

Cancelling my old plan

I still had a Verizon contract on my old phone and it would cost money to break the contract. I wondered: should I keep my old plan? My old phone still had a $80 a month plan, with six months on it. The cost to cancel was about $150. Crap.

Well wait a minute, maybe I should do the math.

Keeping old plan: $80/month * 6 months = $480

Going to new plan: $150 to cancel + 6 months * $30/month = $330

Clearly I should go to the new plan! (Endowment effect almost got me.) The old contract was a sunk cost.

Transferring my number

I was able to transfer my old number to my new phone without too much hassle. This was probably the hardest part about the whole thing. One important thing is to ensure that you do not cancel your current plan before you active your SIM card and port the number to that SIM card. Otherwise you lose the ability to transfer the number. In my case, the last 7 digits of my phone number are a palindrome, so I was loathe to lose it.

Bill automation

When I transferred the number, I needed to make the first month’s payment on the phone to get it activated. When the next month rolled around, I had something on my calendar to remind me to put more money on the card. I figured this was going to be a pain.

But, I didn’t need that reminder! T-Mobile helpfully sent me a text reminder to let me know when there were a few days left to put money on my account to pre-pay the next month. And there is a way to set it up so you can link a credit card or bank account to it to. I now have it automated, and don’t have to worry about it. If you are worried about minute overages, you can always just put $10 more on there and be covered for a lot of extra minutes.

Was it worth it?

So all told, probably took me a couple of hours to research this and get everything set up. I think it was worth it, from a financial standpoint ($500 an hour?) and a “sticking it to the phone carriers” perspective. Plus, I got a blog post out of it. :)

I think that things like this will only become more common and with better options as time goes on, so if you are looking for a good phone plan for not a lot of money, I recommend checking out unlocked phones and prepaid plans.

I’ve been using it happily for over three months, and I have no serious complaints.

What did I miss or get horribly wrong about the phone system? Are my numbers on iPhone TCO too low or too high? Anyone else using a prepaid phone plan? Thanks!