There are countless stories floating around social media today from individuals complaining about not having received their stimulus checks. In addition to the general confusion over who is or who is not qualified to receive the stimulus payments, there is also the question of lack of information from the IRS.
Like everyone else, the IRS is operating on skeleton crews because of the Covid-19 pandemic. This exacerbates the problem. But the underling problem is not the overwhelming task of sending millions of payments nor the lack of personnel.
The underlining problem is the technology.
The Internal Revenue Service is using computer technology that was launched in the 1960s. As many readers understand, in terms of technology, sixty-years might as well be the stone age.
The IRS stores American’s tax data in a file dubbed the Individual Master File. The file stores the identification of the taxpayer, their address, banking information, deductions, credits, and refunds issued to each taxpayer. Each social security number has its own Individual Master File.
With all this information in a data file accessible electronically, one would think that knowing who to send a stimulus payment would be available at the press of a button.
But not for the IRS.
The IRS keeps the Individual Master File coded on assembly language (asm) and COBOL. Assembly language was invented by Kathleen Booth in 1947. Assembly language is still used today in specific instances like cryptography or security systems where interfacing directly with a computer’s central processing unit (CPU) and other basic computing devices must be as efficient as possible.
Assembly language is a computer language few programmers specialize in.
The following code snippet writes: “Hello world” in assembly language:
<code> section.text section.data msg db ‘Hello world’,0xa len equ $ -msg </end code>
The above code is just a snippet to give the reader an idea of what the code looks like. It is missing the calls to move the message out to the device, in this case the monitor.
The other computer language used by the IRS to process tax information is COBOL.
COBOL, or “common business oriented language” was created in 1959. It is used in main frame computers today, mostly by government entities. COBOL was intended to make programming computers more accessible to business users as it was more English-like than the other computer languages in use at the time.
Although COBOL is an old computer language it is still in use by about 40% of the banking systems. Many federal agencies still use COBOL as well as many state unemployment offices.
The IRS had to reprogram its COBOL systems to be able to send out the stimulus checks, according to an April 17, 2020 Washington Post report. That is the problem with COBOL. It is a computer language practiced by few programmers today. It is cumbersome to use because it needs special tools layered on top of it to generate simple answers to questions like the status of a pending check.
The COBOL example for the “Hello world” example is:
<code> ---- IDENTIFICATION DIVISION PROGRAM-ID. helloworld. PROCEDURE DIVISION. DISPLAY “Hello world”. STOP RUN. ---- </end code>
The same “Hello world” example in a modern computer language would look like this:
<code> echo ‘Hello world’; </code>
In the example above I used PHP, a common programming language used on websites today.
The reason many taxpayers are experiencing problems receiving their stimulus checks and, for those who have not received them, checking on the payment status has to do with the age of the technology used by the IRS.
Although COBOL is still used by some banks, their dependence on them is mitigated by the other technology they have leverage against it. The COBOL programmers have aged and are on high demand as new programmers do not follow the COBOL path in their careers.
The issue of aging technology at the IRS has been well known for some time now.
In 2016, the Government Accountability Office (GAO) identified the reliance on dated technology in the Individual Master File as problematic. The GAO said that COBOL exposes the master file “to a rise in procurement and operating costs.” The GAO noted that the IRS spent $2.7 billion in FY2016 and $2.6 billion in FY2017 trying to rectify its outdated technology.
In 2014, the IRS attempted to migrate its systems to Linux, the underlining operating system (O/S) that runs the internet today. Of the 141 database it wanted to migrate, the IRS was only able to move eight by 2018.
A Treasury Inspector General report dated December 6, 2018 found incompetence in the IRS migration program. The IRS planned to complete the migration by 2016. The Treasury report stated that the IRS “migration team did not follow standard software practices” to complete the migration.
The Individual Master File that is central to every taxpayers’ relationship with the IRS is not even scheduled to be updated until 2022. That was before the numerous delays the IRS has already experienced in its technology upgrades.
For its part, the IRS argues that politics have led to reductions in the agency’s operating budget.
But for FY2020, received $180 million to modernize its technology over two years. This is in addition to the monies it has received for at least a decade for technology modernization.
On April 2019, the IRS released the “IRS Integrated Modernization Business Plan” ostensibly modernize its legacy systems. The IRS says it will cost up to $2.7 billion to accomplish the modernization over six years.
The obvious project is converting the Individual Master File from assembly code to a more modern language. Interestingly the IRS holds Patent No: 10,445,078 issued on October 15, 2019. The patent details a process by which assembly language data can be converted to a “target language”.
The issue is not the outdated technology per se as it obviously continues to chug along.
The problem is the time it takes to make an update to the underlining code to address new requirements like issuing stimulus checks. There are fewer and fewer legacy programmers. But that is only part of the problem.
The legacy system cannot communicate directly with newer technology like the one that drives the internet. When a taxpayer queries the IRS website to check the status of their stimulus check the queries must first be translated into the right format to interact with the assembly language and when the response is issued, it must then be parsed back into something the website can use to display the answer.
Not only are the translations slowing down the process, but the programs used to bridge the two systems must be programmed, tested and launched. Without adequate testing and forced to launch a status website application it is no wonder that the results are incomplete for many taxpayers.
But that is just part of the larger problem of having several different legacy/modern systems trying to communicate among themselves, exchanging data and ultimately dealing with the Individual Master File which is the single most important element for all taxpayer information.
This is the reason that unless taxpayers followed the path of timely filing tax returns and receiving refunds via direct deposit it is unlikely that they will know when to expect their checks or why it will take so long to send paper checks.
Someone must write the code that will make that happen.
It is an opportunity ripe for further problems and even outright fraud as programmers scramble to update the antiquated IRS computer systems.