The view from above

I have decided to count the costs for December 2018. This is quite an unusual month, as there are many people taking days off which of course influences the month outcome (we pay less to our developers, but we also charge the clients even less).

Firstly, let’s say we have the following income statement for December 2018.

In theory, all looks good. Maybe apart from indirect costs which could have been lower, but the margin is over 17% — completely acceptable. The problem with such a view from above is that some projects might be more profitable than other or, even worse, some might be loss-making and it would be good to see that.

The naïve way

Here comes our “naïve way” — we will divide income and costs per client. We will use 5 example projects based on real data.

The problem comes when counting the indirect costs. I will divide them by number of all developers and then each project will be given its share. The per-developer indirect costs in December were 7,130.22 PLN.

The project names are of course made up. Let me explain what are the positions and then we will try to comment on the “results”.

Days charges — we are charging clients by days, rather than by hours.

— we are charging clients by days, rather than by hours. Developers — how many devs were on the project. This is used to count the indirect costs per project.

— how many devs were on the project. This is used to count the indirect costs per project. Labor costs — how much our developers were paid.

— how much our developers were paid. Other direct costs — everything else that we spent directly on the project. Might be AWS charges (which we recharge to the client); commissions for partners who got us the gig; travel costs to the client, etc.

— everything else that we spent directly on the project. Might be AWS charges (which we recharge to the client); commissions for partners who got us the gig; travel costs to the client, etc. Indirect costs — everything else. Marketing, administration, internal systems development, people waiting for projects on the bench, accounting, our monthly meetings, laptops and so on.

This gives us already a lot better view on how are the projects performing. The Product is on -6.70% margin — this might mean that our targeted zero-margin rate is slightly too small, but this might be also the days off taken by the team, and should be investigated even more. The rest looks good, maybe except for the Local Sam project which is on the 9.33% margin (the rate is quite low there plus we are paying a commission on top of it).

Now what is the problem here? We have divided the indirect costs equally between the projects, but is this really a good approach? Should the costs be equally divided? If not — can this change the situation?

The ABC way

What is ABC?

You can read on what ABC is on Wikipedia (or anywhere else on Google),

but in layman’s terms:

In Activity-Based Costs you divide your indirect costs into Activities, and for each one you think of a cost driver. A cost driver is what makes the cost go up or down. There is no silver bullet recipe for what should be a cost driver for a given activity— this is a decision that you, as a manager, have to make. What does really cause the cost? How can you fairly divide it between your products or services?

I am not going to explain fully how you divide your business into activities, because internet is full of good use cases, but let’s just analyse few activities a company like mine can have:

“Accounting Office” — it is tempting to divide it equally by the number of developers (the more developers, the more invoices, the more work for the accountant), but not necessarily in our case. We are a company working mostly for foreign customers and that caries on a lot of implications, and a lot of extra work for the accountant. Moreover, because of how VAT is done, we need to apply for VAT returns every few months and that means automatic (by law!) fiscal controls every time. So the costs are not really driven by the number of developers, but rather the number of projects. We will divide it equally between them.

“Business development” — these are the direct activities to get new clients. Our thinking is that every project has to somehow pay back for these activities. And the more business we get from the project, the faster it pays back. So for our cost driver we chose the inverse of days charged to the client — the smaller the project is, the more it has to pay back for the bizdev.

“Admin salaries” — this is quite obvious. Administration serves our employees, so that cost is driven by the number of developers and then equally divided between the projects.

Carry on, think about all the activities you have identified and figure out what is the cost driver for each of them. The sum of them is called overhead and will be treated as the indirect costs component from the naïve way.

Our calculations

I took all the identified activities, figured out what would be the cost driver for each of them.

For each entry I have counted the unit price, and then counted the total overhead (TOTAL Indirect Costs) for each of our projects.

Results? Quite interesting! The Small Badger project, originally at 19.19% margin now went down to practically 0%. Also the Local Sam from a not so good project became even worse with a margin at 5.22%. It shows, that especially for projects with a small number of developers, we need to have higher rates, because they are proportionally more expensive.