Comment by OneDeuxTriSeiGo

Comment by OneDeuxTriSeiGo 7 days ago

91 replies

So it applies to software engineers but under what definition of software engineer?

This [1] is the only definition the code actually give.

> (3) Software development

> For purposes of this section, any amount paid or incurred in connection with the development of any software shall be treated as a research or experimental expenditure.

1. https://www.law.cornell.edu/uscode/text/26/174

-----

Is a test or QA engineer considered a software engineer?

Is an FPGA or ASIC engineer still considered a software engineer if they are writing in HDLs?

Is a systems engineer, electrical engineer, or mechanical engineer considered a software engineer because they use MATLAB, etc and use programming to do their design work?

Is a sysadmin, DB admin, or other IT staff considered a software engineer because they write software as part of their job?

What about a quantitative analyst, data scientist, accountant, actuary, or any of the other maths and analysis adjacent job roles that regularly use some level of programming to do their job (and therefore write software)?

What about HR, etc who use excel documents? Excel is fundamentally just a graphical array programming language (and the design of spreadsheet tools is heavily inspired directly from APL). Is anyone who uses excel or builds/maintains spreadsheets considered a software engineer?

Like software engineering is such a broad field and programming bleeds into every part of modern business at this point.

EnderWT 7 days ago

The IRS released guidance back in 2023: https://www.irs.gov/pub/irs-drop/n-23-63.pdf

It starts on page 23.

Plenty of analysis online by tax firms but I'll quote from this one: https://insightplus.bakermckenzie.com/bm/attachment_dw.actio...

> Generally, activities treated as software development for section 174 purposes include, but are not limited to, the following.

• planning the development of the computer software

• designing the computer software

• building a model of the computer software

• writing source code and converting it to machine-readable code

• testing the computer software (up to the point that a taxpayer places the computer software into service or determines that the computer software is ready for sale or licensing to others)

• producing product master(s), if the taxpayer develops the computer software for sale or licensing to others.

> Activities that are not treated as software development vis-à-vis software developed by a taxpayer for use in its trade or business are as follows:

• training employees and other stakeholders that will use the computer software

• maintenance activities after the taxpayer places the computer software into service

• data conversion activities, except for activities to develop computer software that facilitate access to existing data or data conversion

• installing the computer software and other activities relating to placing the computer software into service

  • hn_throwaway_99 7 days ago

    > maintenance activities after the taxpayer places the computer software into service

    This is the part that I think makes this whole jig of treating software development like a purely capitalizable expense so nuts.

    I previously worked at a public company that wanted software developers to treat as much work as possible as CapEx - it makes you look more profitable than you actually are, which is bad for taxes but good for your stock price. Developers hated it. The problem with it is that with modern web based software, CI/CD, A/B testing, etc. that the line between "new software" (i.e. CapEx) and "maint" (i.e. OpEx) is so blurred as to be pointless. E.g. many times I'd be fixing a bug (technically OpEx) but that would often lead to some new features ideas, or ways to structure the software to make it easier to add new features (technically CapEx). Software is fundamentally different from capital expenditures in other areas, and assuming a 5 year straightline depreciation schedule for software is laughably absurd.

    What other sort of capital expenditure has you do releases every day, or requires 24/7 monitoring? I would argue that the business of software has changed so drastically over the past 20 or so years that it makes much more sense just to categorize it as OpEx by default (for both tax and GAAP purposes), and only have it be capitalized as CapEx for very small and specific reasons.

    • graycat 7 days ago

      Your Honor, here printed on paper is what the Prosection calls "software". Actually as anyone can see on the paper, what is there is just ordinary typing A-Z and 0-9 with a lot of the typing in English. Businesses have been doing typing for many decades. E.g., this typing is much like instructions to a delivery truck driver to deliver goods to customers. And it's the same if a drone reads those instructions and makes the delivery. Prosecution has yet to show what of this paper is other than business typing ~100 years old.

      • glitchc 6 days ago

        It runs on a computer. It tells a computer how to do things. You can type once and have the same instructions run again and again on the same computer or on different computers. It can run on many computers simultaneously. No human intervention is required for all of the above.

    • michaelt 7 days ago

      > What other sort of capital expenditure has you do releases every day, or requires 24/7 monitoring?

      Quite a lot of them actually. If I spend $$$$ setting up a car factory with a big production line, I'm going to have people monitoring it 24/7. If I build an airport, I'm going to have air traffic controllers working 24/7. And so on.

      Of course, the air traffic controllers didn't build the runway, and the construction crew don't direct air traffic, so the whole situation is much less ambiguous.

      • opello 7 days ago

        How exactly does the construction of an airport (runway, terminals, parking, etc.) satisfy "releases every day" during the construction? I could see if it were adding a runway or a terminal, but until at least some of the infrastructure is there it's not exactly usable to the end user, the public, as say a stand-in definition for "released."

      • stult 7 days ago

        > I'm going to have people monitoring it 24/7. If I build an airport, I'm going to have air traffic controllers working 24/7. And so on.

        > Of course, the air traffic controllers didn't build the runway, and the construction crew don't direct air traffic, so the whole situation is much less ambiguous.

        That is precisely why those salaries are NOT capex

      • pmontra 6 days ago

        Your example was quite good actually. Even in sw the people that build the system is not necessarily the people that monitor, maintain and use it, even for systems used only inside a company. I used to work in a telco and we had 3 separate departments, plus a 4th one for testing. And yet all of them seem to be subject to section 174, builders, maintainers, testers.

        A country wide power grid or telecommunications network are other examples that come to my mind. They are never complete, they get more features every day (new cables?), they are monitored 24/7. The owner companies also use them.

    • gboss 7 days ago

      What we do is enforce that everyone keeps one ticket in JIRA as in progress and use a timekeeping add on. The tickets role up to epics and initiatives. I review each top level initiative and epic with finance and they deem it capitalizable or not. Then we add a haircut. It’s really not that much work. We have an hour meeting monthly to work it out but I make sure to exclude my mainline engineers. They don’t need that

      • tough 7 days ago

        How many engineer-hours are lost amongst the whole company each semester to report all these mindless tickets?

        • oasisbob 7 days ago

          A lot.

          It also warps outcomes towards a metric which "is only used for tax purposes" but which also is reported ritualistically with an expectation of compliance.

    • hshdhdhj4444 7 days ago

      The entire thing is nuts.

      And no one thinks it was sensible.

      The only reason it exists is for political games by Trump 1.

      Now imagine all the nonsense that’s gonna go into the much bigger Trump 2 tax cut bill.

  • OneDeuxTriSeiGo 7 days ago

    > • data conversion activities, except for activities to develop computer software that facilitate access to existing data or data conversion

    ex: linking excel spreadsheets or setting up excel to ingest data from a sharepoint or network drive would still fall under the definiton of software developer

    > • maintenance activities after the taxpayer places the computer software into service

    So a sysadmin or a DB admin writing scripts or a DB admin writing queries and adding new reports would be considered software development

    It just seems way too easy for arbitrary employees to get pulled in under this definition because it just fundamentally misunderstands how widespread programming is.

    • raverbashing 7 days ago

      You missed the paragraph saying that maintenance activities are not considered development activities

      • OneDeuxTriSeiGo 7 days ago

        But that's the rub right? What is the definition of maintenance activities? And for what software? If you are writing a new script to automate something or updating an existing script, is that not software development?

        If that's considered maintenance activities then would maintaining a software codebase not be considered maintenance activities then?

  • keepamovin 7 days ago

    So if you’re just maintaining a software, that’s already used then you’re good.

    I used to support this change because I thought that it would fairly make the software industry like many other industries who have to pay this kind of amortization for R&D and I believe that there would be carve outs for small organization so that really large ones are the only ones who bear the cost.

    I also believed it unlikely that this would be enforced or audited before there were such corrections or refinement to the original language.

    So the way I viewed it was it’s basically a higher tax for giant software companies, but everyone else will be unaffected by it so we shouldn’t worry.

    However, I also now support repealing or changing it because whether or not it has ever or was ever gonna be enforced or audited, it’s ended up causing a lot of disruption across the entire software industry. So much so that it actually looks more like an unfair penalty against software development than anything else now unfortunately.

    So I’ll definitely be signing that little petition under my US corporation.

  • axus 7 days ago

    What a wonderful sales pitch for a timesheet software feature. Track non-software-related work for expensing in the current tax year.

    • koolba 7 days ago

      Any decent sized company already does this. You’ll see a field on things like Jira tickets for whether something is maintenance or capital improvement. And presumably that information can be used to infer the percentage of a given workers time that can be attributed to deductible vs depreciable expenses.

      • elliotec 7 days ago

        Exactly. Everywhere I’ve worked, this was a quick and non-intensive collaboration between engineering management and like one finance person. It’s baked into a ton of tools already (like you mentioned, Jira) so the percentages are usually just there and eng leaders review it with FP&A twice a year.

        • jchanimal 7 days ago

          Real innovators can’t stand this sort of noise and so it is a direct shot against their bow

    • OneDeuxTriSeiGo 7 days ago

      This is fairly standard for a lot of larger companies and for companies where your work is contract work (see defense contractors, legal firms, architecture and civil engineering firms). You have to do line item billing on costs for a given contract so you have to track how many hours are spent to do whatever labor needs done.

      The issue is that this is a lot of unnecessary complexity for orgs that aren't doing that kind of work.

teeray 7 days ago

> under what definition of software engineer?

Probably a broad enough definition to net the US Government the greatest tax revenue possible for the effort to enact this.

  • sailfast 7 days ago

    They want the change to _seem_ like it will bring in revenue so the CBO number adding to the deficit is lower.

    The folks advocating for this could care less about the deficit, but they need to act like they care.

  • abeppu 7 days ago

    IDK if that's right. Oddly, the current administration has gutted the IRS and seems pretty ambivalent about collecting taxes that are on the books. I wonder if there will be an inconsistent definition of who is a software engineer, based on how friendly the company is with the administration, whether the company still has someone with a DEI title, etc.

    • sh34r 7 days ago

      Judging by the Big Law shakedown, enforcement will be based on how much of your corporate cash is held in Taco’s shitcoin.

    • teeray 7 days ago

      > the current administration… seems pretty ambivalent about collecting taxes that are on the books. I wonder if there will be an inconsistent definition of who is a software engineer, based on how friendly the company is with the administration, whether the company still has someone with a DEI title

      So basically the same situation that we have with bullshit speed limits everywhere.

      • ethbr1 7 days ago

        If we had specifically defunded highway patrol that was net-revenue-positive, yes.

        Republican defunding of the IRS is literally insane: reform by cutting enforcement.

        - It rewards people who cheat on their taxes.

        - It costs the government more money that it saves, because IRS investment is net revenue positive.

        But then, the modern Republican party seems more concerned with being the party of 'law(s I agree with) and order (for people who aren't me).'

    • drdec 7 days ago

      What's really going on here is that this provision was part of the tax acts from the first Trump administration. Due to procedural rules in Congress, they had to make those cuts appear revenue neutral over a 10 year time period. This tax increase is part of that. Very likely nobody involved really had a reason or cared that SEs get categorized this way, it just let them pass the changes they really wanted at the time.

  • sh34r 7 days ago

    A sufficiently idiotic tax scheme such as Section 174 can destroy far more income tax revenue than it collects, by destroying jobs and small businesses, and knocking high earners down a tax bracket or three. Section 174 isn’t doing much to tax FANG companies. Apple has all their profits in their Double Irish Dutch Sandwich racket. Amazon cooks the books to appear unprofitable on paper, in a manner that would make Hollywood accountants blush.

    This really only hurts the competition, who is completely unprofitable in every sense of the word. And all for what? Left-shifting the collection of a 21% income tax by a couple years? I think many of us would’ve done terrible things in 2021 to only have an effective tax rate of 21%. The government mugged Peter the payroll tax man to pay Paul the corpo tax man, but they disemboweled Peter in the process, and most of the money had to be disposed of as a biohazard.

    I don’t believe Section 174 was an honest attempt to manage the deficit. I think Zuck, the PayPal Mafia, and the blood-boy cabal bribed some Congresscritters to kill off what remained of their competition.

    • robocat 7 days ago

      > I think Zuck, the PayPal Mafia, and the blood-boy cabal bribed some Congresscritters to kill off what remained of their competition.

      What's with the craze for finding conspirational incentives?

      There's a repeatable pattern where commenters hallucinate an unreasonable incentive for everything.

      Motivations are difficult to discern (see courtrooms), and it is a modern vice to try and analyse incentives, but too often the cause-and-effect imaginations are not even reasonable guesses, but are just pure fiction.

      My best guess (based off word choices made) is that we all love to create new stories/narratives, that fit into our personal tribal stories.

      • sh34r 7 days ago

        My best guess is that legalizing corruption has made everyone a bit more deranged. Some more than others.

        I don’t think it’s such a huge leap that a policy with such unanimous opposition was put in place by the select few special interests who benefit from it. It helps (or doesn’t help?) when they all got together for that photo op at the inauguration.

      • pigeonhole123 7 days ago

        Believing in corruption doesn't have to be in the same league as believing the moon landings were faked. I don't particularly think this tax thing is something other than short-sightedness, but there is a tendency among some to dismiss even blatant cases of corruption.

        Believing in fake moon landings requires believing in a level of competence I don't think exists in large organizations, but the same applies to believing there is no corruption or backroom deals, which are exposed all the time and seemingly rarely punished.

      • dgb23 7 days ago

        It’s much simpler than that. People have figured out that if you follow the money (ask who profits financially or in terms of market power), then even confusing political actions make sense.

      • tsunamifury 7 days ago

        Uh have you worked in policy in faang? I have that would be the least insane tactic I saw used.

        I can’t believe you’re trying to claim the high ground in rationalism here and have no clue how bad it is.

anigbrowl 7 days ago

The answer to all these questions is yes, i don't see the point in trying to obfuscate this with artificial complexity.

What about HR, etc who use excel documents?

IF they are using it rather than developing it, no. If they put in 5 hours a week writing code, yes for those 5 hours. This isn't hard.

  • OneDeuxTriSeiGo 7 days ago

    Okay so your random HR person at a nontechnical small to medium sized business now is on the line for developing spreadsheets to manage scheduling.

    OR they need to maintain a set of activity codes and a timesheet outlining how many hours (or partial hours) each week are spent on what types of tasks.

    It's unnecessary complexity if you want to be in actual compliance with the tax code vs just guessing whether XYZ task is on one side of the line vs the other and hoping it doesn't come back to bite you later.

  • Dig1t 7 days ago

    How is an HR person writing a script to do their HR work better considered an R&D expense?

    • anigbrowl 7 days ago

      Scripted automation is quite literally development of IP. It's an asset that belongs to the company and will be counted as such on its balance sheet.

      • sitkack 7 days ago

        Anytime someone has a good idea, it should be depreciated over 5 years? Why is software special? It is all just the composition of simple machines.

      • HPsquared 6 days ago

        What if they literally just write a post-it note of how to perform certain actions? Are those 5 minutes capital investment? The information on that scrap of paper is subject to copyright and is a company asset in just the same way as a script. Where do they draw the line?

  • jandrese 7 days ago

    So now every engineer has to record how many hours each day were spent doing "software development" vs. "software maintenance"/"overhead"/"etc..."?

ManBeardPc 7 days ago

> For purposes of this section, any amount paid or incurred in connection with the development of any software shall be treated as a research or experimental expenditure.

For me that sounds like everyone and everything in a company that develops software of any kind, including low-/no-code stuff, accounting, HR, travel costs, massages. Like who is not "in connection with the development of any software" in a company that develops software? Without further definitions this is even worse then just software engineering costs.

_heimdall 6 days ago

> This [1] is the only definition the code actually give.

Like most of our tax code, its overly complicated by unclear or incomplete codes.

The IRS will give guidance with examples, but those examples are still incomplete.

Ultimately our tax code always comes down to the filer doing whatever they (a) think they can get away with or (b) are willing to defend if they get audited.

nodesocket 7 days ago

I’m a solo founder and sometimes outsource projects. How does that work if I pay a contractor a few thousand for a project? Are contractors allowed to be deducted fully at 100% expense?

stult 7 days ago

Yes, this is an insane policy that reflects a complete ignorance of the on-ground realities. It was almost certainly only passed to help the 2017 tax bill's legislative scoring by the CBO.

I posted about this on Reddit the other day. https://www.reddit.com/r/Economics/comments/1l3lo7j/the_hidd...

> Yeah, it's pretty much completely insane. Although in your example I think you accidentally picked numbers that actually work out precisely to zero dollars in taxable income. The company (if US-based) would have zero taxable income in the first year because they can deduct 1/5th of the salaries (because there is a five year amortization for US companies, and 15 year for foreign companies), so they would have $1m in gross income and $1m in deductions resulting in $0 in taxable income. But you can tweak the numbers a bit to get the result you intended, e.g., $1m in revenue and $2.5m in salary would result in $500,000 additional taxable income under the TCJA's version of Section 174 over the previous version of the code, even though in reality the company operated at a net loss. (edit, just looked this up and actually the amortization is dated from the midyear of the tax year in which the expense is incurred, which is also just fucking bonkers, but that means I was incorrect and your example does yield a taxable income, because the first year in your example would have $500k in deductions rather than the full 20% of the $5m expense, resulting in $500k taxable profit)

> All of which means that we treat R&D salaries less favorably than ordinary salaries, which are fully deductible in the year they are incurred. So our tax code now not only fails to incentivize R&D as under the previous R&D tax credit regime, it actively treats R&D employee salaries worse than non-R&D salaries. Even though R&D jobs are generally the highly skilled, well compensated, white collar careers we want to keep in this country.

> Section 174 also specifically designates all software development as R&D, so there's no way to develop software while claiming it is not R&D. I'm sure accountants have been jumping through hoops in their efforts to reclassify other kinds of product development jobs as not R&D, which is the exact opposite of what R&D tax studies used to do, which was to label as much employee compensation as R&D expenses as possible, because §174 and the related, intersecting provisions of §41 (the R&D tax credit itself), treated R&D salaries more favorably than other salaries. To a certain extent, the OP article understated how much of a swing this revision to the tax code is. It isn't just that we are treating R&D salaries worse than we used to, but that we are treating them even worse than we treat other kinds of salaries. Which is bizarre in a world where the policy objective is to retain R&D jobs in the US.

> The purpose of capitalization is to match expenses to benefits over multiple tax years. So that the tax payer can't take a huge tax deduction up front to generate an economically fictional loss in the short term on an asset that will generate income over the many years. Amortization forces them to deduct the expense of the asset over time as the benefit accrues over time.

> This model is a poor fit for software. Construction workers produce an asset with a generally predictable and known useful lifetime and long-term stable value that is independent of the business. You can always sell a building.

> Software, however, does not generally create value for very long if it is not subject to continuous development and improvement. It also decays very rapidly when not maintained (e.g. security patches), yet there is no distinction in the tax code between new development and production support/maintenance software development. Nor would any such distinction make any sense in reality, because unlike a physical asset software is subject to continuous change and there is little distinction between adding new features and maintaining existing features. This approach to capitalizing salaries contrasts with other capitalized assets like buildings, where most ordinary maintenance costs are deducted in the current year, not capitalized.

> The value of software can be much harder to predict than other capitalized assets. Both in terms of the demand, but also in terms of the technical capability to deliver the desired product. Which is why it's considered R&D in the first place: there is inherent technical risk in many if not most software projects which is not present in other kinds of economic activities that produce capitalized assets.

> Software is often so specialized that it cannot be sold on to a third-party without selling the entire business around the software, including existing customers, distribution and sales channels, and supporting software engineering staff. It's not a liquid, fungible, alienable asset the way other capitalized assets typically are. There is no real market for the source code to Reddit, for example, because there is nothing technically special about Reddit. The company's value derives from the user base, the community, and the data, not anything particularly special about its software.

> The tax code also confuses the output of the software development process with the value software can generate. Software developers produce code. Some of that code is valuable, much is not. Unlike with other capitalized assets, you can't know in advance whether the software you produce actually works 100% of the time, even with robust testing and QA. Whereas you can be quite certain that a building will continue to function as a building if it is built correctly. Many software engineers actually regard code as a liability rather than an asset. The more you have to maintain, the more work you have to do to maintain the code base and the harder it is to add new features or debug issues with existing features. So if you can deliver the same capability to your customers with less code, then that is preferable. Which is to say, the output of the software development process is much more loosely tied to predictable economic value than other capitalized assets.

> Software is also frequently delivered as a service, which highlights the inanity of treating software as a fixed, long-term asset. The team maintaining a SaaS will handle day-to-day site reliability engineering work, which is never a stable output but needs to be constantly tweaked to match actual usage patterns.

> Last, and this is implicit in much of the above, but unlike other capitalized assets, software is never really complete. There are always more features, more optimizations, more bug fixes. Software development is never steady state. Either the software isn't being developed actively and quickly loses nearly all value due to code rot, or it is being actively maintained and improved and is producing value. Buildings don't stop functioning as buildings when you stop paying the construction workers. Thus, software development does not produce a long-term fixed asset but rather is a continuous service delivery process, where the revenue produced in any given year was produced by the same year expenses to maintain the software. Thus, software expenses and revenues are mostly naturally aligned in a single tax year, and therefore software is not suitable for amortization.

ivankelly 6 days ago

From the wording, it sounds like it applies to contracting non-US resident software development as well.

normie3000 7 days ago

> Is an FPGA or ASIC engineer still considered a software engineer if they are writing in HDLs?

Of course not. The Glorious Leader is rescuing the american hardware sector.

paulddraper 7 days ago

There is a substantially more definition, but the tl;dr is this an R&D expense, or COGS expense?

R&D is amortized, COGS is not.