Since 2017, Development Gateway has been working with the Government of Uganda to build and update its Aid Management Platform (AMP). Uganda’s AMP houses over 1,300 on-budget projects directly from its national data management system. This year, DG built a module that interfaces with Uganda’s Program Budgeting System (PBS) to ensure that data is effectively transmitted between the two systems while maintaining data integrity across both AMP and PBS
A Brief History of AMP Uganda
With the Ministry of Finance, Planning, & Economic Development of Uganda, Development Gateway launched the Uganda AMP in 2014, to track projects related to international aid flows in the country. The platform offers a centralized access point for relevant information and an efficient virtual workspace for government employees that manage aid in Uganda.
Building on our existing AMP work, in 2017 we began the process of integrating the AMP with the Program Budgeting System (PBS) of Uganda. The PBS is created, owned, and operated by the government. We launched the integration this March, and it represents one of AMP’s first full integrations with an existing country system.
Why Integrate With an Existing Country System?
Assessing the potential for integration with country systems is part of DG’s standard assessment done before starting any AMP project. While not every AMP includes an integration, identifying the potential to make these connections is essential to avoiding duplication of effort and data silos. In talking to AMP Uganda stakeholders, we identified the need for two types of information from AMP: (1.) disbursement information by donor and project; and (2.) medium-term expenditure framework (MTEF) data, which identifies the amount to be spent over a given period of time.
Using the integration, the PBS team can pull the data they need directly from the AMP, through an API in XSLT format. They then use that information to determine how much money has been allocated to different sectors, and to visualize annual and quarterly expenditure data easily in program budgets. Before the integration, the PBS team spent time and effort collecting budget and disbursement information for hundreds of projects in AMP, then manually inputting it into PBS.
Challenges to Integration
We mentioned that integrating data systems is important for reducing duplication and increasing efficiency. However, integrations such as these also face several challenges:
Challenge One: data is power
Sometimes, the owners of the data systems are unwilling to share their information. A sizable challenge is often ensuring that the owners and users of both systems are willing to share data. For the AMP-PBS integration, both systems were owned by the Ministry of Finance, Planning, and Economic Development – so there was clear political will to ensure a successful integration.
Challenge Two: mapping the fields between systems
Different data systems might have the same information fields, for example, both labeled “donor.” However, they might use different names to identify the same field values. For example, in one system, a donor may be labeled as the United States Agency for International Development. Another system may use the donor’s acronym, USAID. To address this, a mapping exercise can identify how the fields and values from one system match with the same fields and values from another. In this case, the PBS team matched fields and values with information from AMP, then began technical implementation.
Challenge Three: defining the technical format in which to share information
Both systems might use a common format to operate and share information, but often data from one system needs to be transformed before the other system can read it. For example, AMP has a built-in API to share data in JSON format. However, the PBS system originally could not “read” AMP’s data in JSON format. The teams then agreed on a format that could be transmitted from AMP and read by PBS.
While challenges 1 and 2 were easily overcome in this integration, our biggest challenge was finding a solution for challenge 3 – to transfer between systems efficiently. Read the next blog in this series, where we explain the challenges and the final solution to integration.