Challenge
VPS clients — banks acting as brokerage houses — needed to provide investors with information required for annual tax reporting. The old core systems could calculate and generate data for Norwegian securities, but could not support securities issued in other countries.
Different security types required different kinds of data and different report formats according to Norwegian tax office requirements. Customers used different transaction input methods and not all of them had ISO standards implemented. Tax calculations were complex and condition-based, requiring a solution that would be configurable, reliable, transparent and easy to validate.
What We Proposed
- 1 A new tax reporting application that enables brokerage houses to enter or transfer securities transaction information and generate the required tax reports.
- 2 Support for multiple transaction channels, including ISO messages, file upload and SFTP server integration.
- 3 Automated generation of annual statements showing investors a summary of their profits and losses.
- 4 Correction reporting after the tax period and reconciliation of holdings for shorter periods, such as monthly reporting.
- 5 Data consistency functionality to automatically identify inaccuracies in customer data and support quality control.
- 6 A flexible configuration interface allowing customers to define their own transaction codes and meanings when ISO standards are not implemented.
How We Implemented It
- Built the system around ISO standards so that transaction codes and tax office guidelines could be used to automatically determine how each value should be calculated.
- Created configurable GUI elements that allow customer-specific customization without compromising usability.
- Unified common calculation and reporting components to keep tax processing consistent and easier to maintain.
- Separated data intake from calculation modules, creating a clearer architecture for transaction processing and reporting.
- Introduced a FIFO mechanism to support asset management across different transaction scenarios.
- Implemented Data consistency checks and reconciliation reports to help customers verify data correctness on an ongoing basis.
- Enabled users to check calculation results and run simulations with explanations showing where the calculated values came from.
- Used developer specialization, collaborative knowledge sharing and comprehensive documentation to manage calculation complexity.
- Maintained quality through automated GUI testing, Cucumber tests, Sonar code coverage focus and direct client involvement in the solution process.
