My general impression is that the large COBOL codebases are used across a lot of different parts of industry, and for a lot of different things. The most common feature is that COBOL applications continue to be used in organizations that are so dysfunctional and bureaucratic that they can't successfully agree on how to replace it. The general shape of the problem seems to be that business decisions were made decades ago, and written into the codebase. Replacing the codebase would mean that someone at some level would need to sign off on requirements, which would mean taking responsibility for something, and the organizations that can't move off COBOL are so toxicly risk averse that nobody will make an affirmative statement about any requirement. Instead, they manage to just barely get by with a combination of very experienced developers who can retire comfortably and DGAF and make decisions, and very junior (and poorly paid) developers too naive to push back or ask too many questions.