Ownership and guarantees
Select a relationship pattern.
Choose a relationship pattern below. Select a person, company, or loan in the diagram to see its connections; the table lists the balances behind the total.
Loan balances
Each loan counted once| Loan | Borrower | Connection | Balance (MXN) |
|---|
Relationship table
| From | Connection | To |
|---|
Cypher query
Model evaluation
Compare borrower-only and graph-enriched models under three network assumptions.
Results and calibration
Data and methodology
Portfolio data
The portfolio contains synthetic borrowers, loans, and relationships. Exposure is the sum of distinct outstanding loan balances; guarantee liability depends on contract terms.
Model dataset
10,000 borrowers in 1,000 disconnected groups, across five fixed seeds. Whole groups are assigned to training (60%), calibration (20%), and testing (20%). Predictors use only information at the observation date; simulated defaults occur over the following 12 months.
Evaluation protocol
A constant baseline, borrower-only logistic regression, and borrower-only and graph-enriched LightGBM are compared after sigmoid calibration. PR-AUC, ROC-AUC, Brier score, and log loss are reported with group-bootstrap uncertainty. Calibration never uses the test split.
The model uses a separate synthetic dataset. Evaluation covers held-out borrower groups; performance on real portfolios and later periods remains untested.
Implementation
Python generates the portfolio and model results as versioned JSON. D3 renders the relationships. The repository includes the data, configuration, and reproduction commands.
Source code and reproduction instructions