₱457 Million in Cash, and Nobody Asked
In 2025, flood control contractor Sally Santos withdrew ₱457 million in cash, across two withdrawals, from a LandBank branch in Malolos, Bulacan. Senate ledgers show more cash withdrawals from the same account: ₱180 million, ₱141 million, ₱299 million, and ₱65 million.
LandBank is a government bank. The money in her account was government money, paid out for flood control projects. She testified that she delivered the cash as kickbacks to DPWH officials.
When senators asked the branch head why nobody flagged it, her answer was that anything above ₱500,000 is “automatically captured by the system” and reported as a covered transaction report. She also said she didn’t wonder about it because the funds came from the government and the DPWH.
So the report was filed. Automatically. It went to the Anti-Money Laundering Council exactly the way the law says it should.
Nobody read it
On 29 September 2026, Senate President Sherwin Gatchalian told a budget briefing what the AMLC had told the Senate when asked why it never caught any of this: there is a huge volume of incoming documents that they are unable to analyze. “AMLC never detected that,” he said.
That’s the SALN problem all over again. The paper exists. The system generated it on time. Nobody looked.
I get that the AMLC is not a big agency. Its 2026 budget was ₱170 million in the original proposal, and Congress roughly doubled it to about ₱333 million after the scandal broke, with most of the extra going to AI tools and technical hires. That helps. But when your own explanation is volume, the problem is design before it is money. A ₱457 million cash withdrawal by a government contractor, from government project money, at a government bank, should never be one report in a pile.
Suitcases, chip boxes, and “basura”
DPWH drivers described suitcases holding ₱30 to 40 million each, sometimes up to ₱50 million. Santos said that on one day she delivered ₱245 million, packed in boxes of chips and noodles. The code word for the cash was “basura,” garbage.
None of this was moved by wire. That was the point. A bank transfer leaves a record with a name on both ends. Cash in a suitcase leaves a withdrawal slip and nothing after it. Which is exactly why the withdrawal slip was the one moment the system could have caught it.
We had just been cleared
The Philippines spent almost four years on the Financial Action Task Force’s money-laundering grey list, from June 2021 until it was removed in February 2025. Getting off the list took real reform, and the people who did that work deserve credit.
The ₱457 million withdrawals are dated March and July 2025, a few months after we got off the list.
Then, in February 2026, with the scandal fully public, the BSP raised the trigger for enhanced checks on cash withdrawals from ₱500,000 to ₱1 million. Its reasoning is fair: banks said they handle a lot of legitimate large cash transactions like payroll, and the checks moved from each transaction to each customer’s profile. But a customer profile is only as good as what the bank is willing to write down, and we just watched a branch decide that government money didn’t need a second look.
Four agencies, four drawers
Shouldn’t there be more coordination between government agencies? There obviously should.
While all of this was happening, the government already had everything it needed. The AMLC had the cash withdrawal reports. The Budget Department and the DPWH had the payments to every contractor. The BIR had what those contractors declared as income. The Ombudsman had the SALNs of the officials approving the projects.
Put those four side by side and a contractor pulling hundreds of millions in cash out of public project payments lights up on the first day. Nobody puts them side by side. Each one sits in its own agency, behind its own secrecy rule, waiting for a complaint.
So the money moved first and the government moved after. The AMLC has since frozen ₱24.7 billion in assets. The BIR filed ₱7.1 billion in tax evasion complaints against the Discayas. The DOJ says ₱841 million has been recovered. Every one of those actions came after the Senate hearings. None of them needed new information. They needed someone to act on information the government already had.
And frozen is not returned. Frozen means a court is holding it while the cases run.
So how do we fix this? Three things.
No more cash for public money. A contractor paid from public funds shouldn’t be able to pull that payment out in cash above a set limit. Checks and transfers only, so every peso has a name at both ends. Senator Kiko Pangilinan said it in the hearing: a check leaves a paper trail, and that’s exactly why someone would want cash.
Match the reports automatically. Every covered transaction report should be checked against the list of government contractors and the payments they received. A big cash withdrawal from a public project payment gets flagged to a human within days, not filed into a pile.
One unit, four datasets. A standing joint team from the AMLC, the BIR, COA, and the Ombudsman, with legal permission to share what each one holds and a duty to act within a fixed number of days when the numbers don’t line up.
Money laundering in this country is too easy, and it isn’t because we lack the data. We have more data than we read. The report in this case was filed on time. Somebody needs to read them.
Part 4 of Anti-Corruption With Teeth, the last of four. Read Part 1: Who Funds the Watchdog? The People It Watches., Part 2: The Aide Goes to Jail. The Senator Goes Home., and Part 3: The Paperwork Nobody Reads.



