Businesses often rely on the daily PHP/USD rates published by the Bankers Association of the Philippines (BAP) for various financial decisions, from investment valuations to foreign exchange operations. Starting in June 2021, BAP began making their historical exchange rate data available through public Google Sheets, including not only daily rates but also trading volumes.
While the move to publish historical data is a step toward transparency, their choice of format—Google Sheets—is notably out of touch with modern standards. Instead of offering a proper API endpoint for structured, automated access, BAP expects users to manually work with spreadsheets. This approach is inefficient and reflects a backward mentality that’s not commensurate with the needs of 21st-century data users. For a major financial industry player with such national relevance, adopting more developer-friendly, programmatic access methods is long overdue.
To assess the quality of the published data, I consolidated all available sheets and performed a thorough analysis. Here are some of the most glaring issues I found:
Unexplicable Data
An entry dated 2019-09-13 appears under the February
sheet of the 2019 workbook:
This item doesn’t belong in February and causes duplication for September 13, 2019, with completely different balances. It is unclear which entry is valid.
Unusually High Number
On May 20, 2021, the opening rate is recorded as 478.855—far outside the plausible range. It’s likely a typographical error and should be 47.855:
Duplicate Data for Adjacent Dates
Some rows across adjacent dates have exactly the same values across all key fields, including:
- Open
- High
- Low
- Close
- AM/PM Weighted Averages and Volumes
- Total Volume
- Settlement
This could indicate copy-paste or data rollover errors.
High is Less than Low
The High
value should logically always be greater than or equal to the Low
. However, there are rows where this is violated:
Open Outside of High and Low
The Open
price should fall within the range of the High
and Low
, but some rows show it falling outside:
Close Outside of High and Low
Similarly, Close
should also fall within the daily high-low range, yet some entries show otherwise:
These data issues show that BAP needs to improve validation and correct existing errors before publishing. Additionally, providing a proper, well-documented, and publicly available API endpoint is essential to enable reliable, automated access and support modern financial workflows. Addressing these will greatly enhance data accuracy and usability.