← Back to context

Comment by phoehne

3 years ago

There's actually a pretty good argument to treat software as capex. It's an asset that allows you to earn revenue over multiple years, and apportioning part of the cost to each year of service is sound from the accounting side. Not a popular opinion, but this is not as arbitrary, crazy, or hidden deep in the weeds of tax law.

I thought about that, but it's also true that most software without any developers maintaining it goes stale in 1 or 2 years at most. I'm not sure if amortizing it over 5 years is reasonable.

  • The same is true for other things you amortize and those maintenance costs are opex. If you don't change the oil, filters, spark plugs, etc. on your delivery trucks, they will break down before the end of their service life. Stale is not the same thing as useless. You might get bored by a game, or find the interface "old", but in enterprise environments, 10 year old software is very common. Heck, 90% of your transactions run on a platform first developed in the early 1960's.

    The 5 year is arbitrary. Arguably, software doesn't really break or wear out, so the service life is arbitrary. (That's not to say that the OS it's running on doesn't break it during an update). 5 years matches the life of the capitalized equipment on which it runs. I don't have any insight as to the debate around 5 years, but my guess is computers are a 5 year asset.

    My guess is the rules apply from other assets, where fixes to bugs and minor updates are opex as maintenance costs. If you make a major change that extends the life of the asset, such as remastering a game or refreshing the UI, or adding a feature, might be capitalized. This would be like adding a lift to a delivery truck or replacing the engine to extend its life.

    • I happen to work on a system that launched more than five years ago, which at my company is pretty unusual (without at least one full rewrite). The teams working on generalizing use cases and new features have expanded every year since launch. Amortization makes sense for spreading out the tax deductions on an investment whose cost is fully front-loaded, but not on an investment whose cost is incremental and continually increasing over the entire lifetime.

      3 replies →

Couldn't you say that about the salary of any employee working on a long term project?

I think the problem is having essentially a tax on software development could discourage some investment in that area especially from the smaller companies that could benefit the most.

  • There are a few tests for whether or not something is capitalized.

    First, the revenue is earned in future accounting periods. For example, you buy a delivery truck. You expect to earn money over several years with the delivery truck. To match expenses with the revenue generated, a portion of the expense of the truck is allocated to each accounting period. If the revenue is in the current period, then there's no reason to capitalize. For example, fast food worker's wages are not capitalized since the revenue is in the current period. The warehouse construction worker's salary is capitalized int he cost of the warehouse because it will earn revenue for several years.

    Another test is if it's assignable to the cost of the asset. The CFO's salary isn't capitalized as part of the investment (unless the company literally does nothing else), because there are a lot of projects and it's hard to specifically assign. Selling expenses aren't capitalized because 1) the asset is complete and 2) they are assignable to the sale and not the cost of the asset. Other costs to acquire the asset, such as delivery fees, installation fees, insurance, etc. are capitalized.

    Do you own the asset? If I hire a construction company to build a warehouse, they hae nothing to capitalize since they don't own the asset. I do.

    And material. If I have you write a shell script that we'll use for the next five years to copy backups between our servers and Azure, and it takes an afternoon, we don't capitalize that. It's just not material.

    If it's leased for 90/95% of the cost and for 90/95% of the useful life, it's capitalized. This prevents companies from treating capitalized costs as leasing expenses in the current period.

It's not that that argument has no reason, it's that it is suddenly dumped on people without any ability to adjust. Similar to a car slowing to 0 from 60 mph over a minute is no problem, going from 60 to 0 in zero time is.

Amortising software development is just stealing from the future

It’s what software companies do to make themselves seem profitable than they are

  • Actually, not amortizing makes them seem more profitable. At the end of the life of the asset, the totals are the same. However, under one model you show a giant loss, initially, and then profits for the next few years. If I expense the $1,000,000 in the year of acquisition, and show a 1,000,000 loss, I then show my revenue as pure profit. Instead, if I have to amortize, I show no loss my first year (because the cost is on the books as an asset), but profit in future years only when my revenue exceeds 200,000 (1/5 the acquisition price). This is how all other assets that earn revenue over multiple accounting periods are handled. Why should Ford have to capitalize a welding robot, but not the software developed to control the welding robot?

    • Amortizing makes sense for things that have a huge up-front cost and value over time, like - indeed - a robot, or a laptop, or a house. But salaries are not that, they are a continuous cost. I can take a loan on a house (mortgage), and laptops can be bought on 0% payment plans over 3 years. But how would that work for salaries? I'm forced to take out loans to pay the duplicate tax over salaries (and other minor expenses) over the amortization period. That's the insane bit here.

      1 reply →

    • Not amortising is only more profitable if you stop developing…

      What many companies who amortise development costs do is make some enhancements to some software or build new software so in theory generating a greater asset value but the reality is they’re just kicking the can of accounting for developer costs down the road

      Have worked in several businesses that amortised development costs and it always comes back to bite you at some point

The argument only exist because the one who made the argument has never written a line of code in their entire life.

You don't expect the warehouse to grow rooms and additional bay with each passing year. The warehouse is a capex, the software you bought and expecting to be supported down the line isn't.

  • Really, you've never seen a warehouse complex get added to, or a building retrofitted with new loading docks or refrigerators? Hospitals are notorious for growing like a friggin' plant. They just keep adding wings.