How bettergovph/open-budget-data works
This repository converts Philippine NEP/GAA budget records and UACS reference data into JSON, then loads the data into Neo4j for budget and hierarchy analysis. The workflow spans source conversion, dimension data, graph synchronization, and post-sync validation. Converter output paths and several sync operations are visible in excerpts; broader pipeline and data-model relationships are documented in the README, while unsampled sync details are not inferred.
Main entry points: sync.py Neo4j synchronizer · budget Budget records · nep-gaa/converter.py Budget converter · nep-gaa-excel/converter.py Excel import
Components 17
Data conversion
- Budget converter
scripts/nep-gaa/converter.py - Excel import
scripts/nep-gaa-excel/converter.py
Reference dimensions
- Funding converter
scripts/uacs/funding-source/converter.py - Location converter
scripts/uacs/location/converter.py - PAP converter
scripts/uacs/mfo-pap/converter.py - Object-code analysis
scripts/uacs/object-code/analyze.py - Organization converter
scripts/uacs/organization/converter.py
Converted datasets
- Budget records
data/budget - Funding data
data/funding_source - Location data
data/location - PAP data
data/pap - Object codes
data/object_code - Organization data
data/organization
Graph database
- Neo4j synchronizer
sync.py - Neo4j graph
- Graph validator
validator.py
Other components
- Data operator
Connections 23
- Data operator → Budget converter: runs
scripts/nep-gaa/converter.py - Budget converter → Budget records: writes records
scripts/nep-gaa/converter.py - Data operator → Excel import: runs
scripts/nep-gaa-excel/converter.py - Excel import → Budget records: exports JSON
- Data operator → Funding converter: runs
scripts/uacs/funding-source/converter.py - Funding converter → Funding data: writes data
scripts/uacs/funding-source/converter.py - Data operator → Location converter: runs
scripts/uacs/location/converter.py - Location converter → Location data: writes data
scripts/uacs/location/converter.py - Data operator → PAP converter: runs
scripts/uacs/mfo-pap/converter.py - PAP converter → PAP data: writes data
README.md - Data operator → Object-code analysis: runs
scripts/uacs/object-code/analyze.py - Data operator → Organization converter: runs
scripts/uacs/organization/converter.py - Organization converter → Organization data: writes data
scripts/uacs/organization/converter.py - Data operator → Neo4j synchronizer: starts sync
sync.py - Budget records → Neo4j synchronizer: loads records
README.md - Funding data → Neo4j synchronizer: loads data
sync.py - Location data → Neo4j synchronizer: loads data
README.md - PAP data → Neo4j synchronizer: loads data
- Object codes → Neo4j synchronizer: loads data
- Organization data → Neo4j synchronizer: loads data
sync.py - Neo4j synchronizer → Neo4j graph: writes graph
sync.py - Data operator → Graph validator: runs checks
validator.py - Graph validator → Neo4j graph: queries graph
validator.py