Corporate Lending Risk Analysis: Citigroup

This project involved retiring a client-side application that had been in use for about eight years in Citigroup’s corporate banking division. The original application, called the Analytics Utility, produced reports on the financial health of corporate clients for use by banking relationship managers. It integrated data from private disclosures and various third-party data feeds of public-company financials, such as Reuters, Thomson, CompuServe, etc. The application used user-written business rules to transform the data into a standardized chart of accounts and then generate a variety of analyses and peer-company reports.

The original application ran on the user’s desktop, using business rules and data from Oracle or SQL Server databases. Although well liked by the users, the tool ran counter to the security policies adopted by Citibank in compliance with the Sarbanes-Oxley Act. Also, Citibank had no developers remaining in its IT staff capable of maintaining the system and had to depend on an external consultant for maintenance.

As a result, the decision was made in 2005 to transition the Analytics Utility to a web-based application, replacing the old code with C# and .NET. Citibank contracted with SmartArrays to assist, using our expertise in APL and the array processing functionality of the SmartArrays SDK to re-engineer the solution.

The new Analytics Utility was written in C# and ASP.NET. The functionality was separated into two parts – a lightweight web client for the user interface, and a powerful analytics and reporting web service that ran on a separate server. The web client was integrated into CitiVision, an internal application portal used by thousands of Citigroup employees.

Development work was divided between Citigroup’s own IT staff and one SmartArrays developer. The Citibank employees worked primarily on the user interface and portal integration, while the SmartArrays developer converted the data retrieval, transformation, calculation, and reporting functions and packaged them as an ASP.NET web service. SmartArrays technology was used for the array-processing functionality and to provide a high-performance database adapter and cache.

The new application used the same database as the original as its repository for source data and business rules, allowing it to run in parallel during the test period. All of the business rules and reports that the users had created in years of using the original application were preserved, making for an easy transition to the new platform and minimal retraining.

Replacing the analytical calculations with SQL stored procedures was considered. However, prior experience at Citibank had shown that this would not work. The compute-intensive parts of the application would not have been fast enough in SQL, while SmartArrays was able to crunch the bulk data with ease. In addition, the users would have lost the ability to write their own business rules directly. Using SmartArrays for the “heavy lifting” part of the application provided excellent performance and the necessary flexibility, and reduced the load on the database server.