A complete local portfolio implementation spanning governed credit-risk modeling, simulated policy, reproducible scoring, aggregate monitoring, and a clearly separated fictional fraud scenario.
Validation status Portfolio implementation validated · 94 tests passing
The challenge Make predictive performance usable without hiding risk. A credible financial ML system needs chronology, leakage control, calibration, reproducible decisions, monitoring, and governance—not only a strong model score.
The solution An evidence-gated path from source contract to monitored decisions. The implementation separates data governance, point-in-time features, model validation, simulated policy, deterministic scoring, and monitoring into auditable stages.
01 Govern Source and contract 02 Split Chronological windows 03 Model Calibrated risk 04 Simulate Decision policy 05 Score Batch and API Verified current repository Aggregate evaluation evidence from a frozen out-of-time test; restricted source records remain outside the portfolio.
Governed applications 1.53M Aggregate evidence only
Retained features 147 After proxy-risk review
Out-of-time ROC AUC 0.8144 Frozen credit-risk test
Automated tests 94 Passing in the current repository 01 Data governance 40 critical quality checks
02 Feature control 30 proxy-risk fields removed
03 Model evaluation Frozen out-of-time test
04 Policy simulation Approve, review, decline
05 Reproducible scoring Batch and local API
06 Monitoring response Investigate before change
Evidence moves forward only after the relevant gate passes
Engineering and governance evidence The model is one controlled component inside a wider decision system. Chronological train, selection, calibration, and test windows Calibrated LightGBM evaluated on a frozen out-of-time set Exact 147-feature scoring contract with checksum verification Zero probability difference across direct, batch, and local API paths Policy actions treated as simulation—not real lending decisions Protected-class fairness not claimed where evidence is unavailable Verified stack Python Polars LightGBM scikit-learn FastAPI Pydantic pytest Ruff Power BI Scope boundary: This is a local portfolio implementation. It is not deployed or approved for production, cannot authorize lending, and does not expose customer-level records.
Explore code on GitHub ↗ Monitoring response Stable replay stays quiet; controlled deterioration stops the simulation. Aggregate reference monitoring checks drift and performance across a frozen 169,722-row test window without publishing row-level data. A synthetic deterioration scenario verifies that severe changes trigger investigation rather than an automatic model update.
Power BI report complete · aggregate portfolio evidence
Report pages 9 Risk through governance
Explicit measures 67 Validated DAX inventory
Report visuals 56 Current PBIP structure Executive overview Risk, policy, and incident posture at a glance Connects governed model performance to the simulated decision mix and monitoring posture without exposing application-level records.
01 Executive overview 02 Model comparison 03 Decision policy 04 Monitoring 05 Fraud simulation
Clean PBIP export · aggregate portfolio evidence · no customer-level records · no production decisions
Separate synthetic exercise Point-in-time fraud scoring under a fixed review capacity. A deterministic fictional event stream tests temporal features, mature-label training, frozen evaluation, and a constrained manual-review queue. It uses no customer, card, or payment-network data and takes no real transaction action.
Fictional events 30,000
Point-in-time features 15
Frozen ROC AUC 0.8572
Fraud capture 46.23% At 55 reviews per day All decision, monitoring, and fraud results shown here are evaluation or simulation evidence—not real financial outcomes, profit, deployment, or automated action.