Technology Fiascos and Your Stimulus Check
There are countless stories in 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 Internal Revenue Service (the IRS).
Like everyone else, the IRS is currently operating on skeleton crews because of the COVID-19 Pandemic, which exacerbates the problem. But the underling problem is not the overwhelming task of sending millions of payments nor the lack of personnel–its something altogether solvable.
The Underlining Problem is the IRS’s Technology.
The Internal Revenue Service is using computer technology that was created and launched in the 1960s. As many readers understand, in terms of technology, sixty-years might as well as 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 it is not the case 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 which few programmers specialize in.
The following code snippet writes: “Hello world” in assembly language:
section.text section.data msg db ‘Hello world’,0xa len equ $ -msg ...
The code above 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 article. The problem with COBOL, is that it too 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:
IDENTIFICATION DIVISION PROGRAM-ID. helloworld. PROCEDURE DIVISION. DISPLAY “Hello world”. STOP RUN
The same “Hello world” example in a modern computer language would look like this:
echo ‘Hello world’;
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 because few new programmers do not follow the COBOL path in their careers.
The issue of aging technology at the IRS has been a well known fact 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. Unfortunately, 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.
For FY2020, the agency 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” which sought to 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 the need to convert the Individual Master File from assembly code to a more modern language. Interestingly enough, the agency (the IRS) holds Patent No: 10,445,078 to do this. The patent, issued on October 15, 2019, 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 the agency obviously continues to chug along.
The problem is the time it takes to make an update for the code to address new requirements like issuing stimulus checks. There are fewer and fewer legacy programmers, and that is only part of the problem.
The legacy system cannot communicate directly with newer technology like the one which 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.
It 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.
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 for paper checks to arrive. The system cannot correct itself; someone must write the code that will make it happen.
It entire system is an opportunity ripe for further problems and even outright fraud as programmers scramble to update the antiquated IRS computer systems.