{
  "schema_version": 1,
  "title": "Synthetic 12-month default experiment",
  "disclaimer": "Entirely fictional data. Results demonstrate simulator assumptions, not validated lending performance. Demo scenarios are a separate dataset.",
  "configuration": {
    "seeds": [
      42,
      43,
      44,
      45,
      46
    ],
    "n_borrowers": 10000,
    "n_groups": 1000,
    "conditions": [
      {
        "name": "absent",
        "network_strength": 0.0
      },
      {
        "name": "moderate",
        "network_strength": 0.75
      },
      {
        "name": "strong",
        "network_strength": 1.5
      }
    ],
    "split": {
      "train": 0.6,
      "calibration": 0.2,
      "test": 0.2
    },
    "bootstrap_repetitions": 200,
    "borrower_features": [
      "leverage",
      "interest_coverage",
      "cash_buffer"
    ],
    "graph_features": [
      "relationship_count",
      "guaranteed_exposure",
      "connected_financial_stress"
    ],
    "lightgbm_parameters": {
      "n_estimators": 150,
      "learning_rate": 0.04,
      "num_leaves": 15,
      "min_child_samples": 60,
      "reg_lambda": 2.0,
      "verbosity": -1,
      "n_jobs": 2,
      "deterministic": true,
      "force_col_wise": true
    },
    "calibration": "Logistic sigmoid on clipped probability logits; fit only on calibration split"
  },
  "generating_process": {
    "observation_date": "2025-01-01",
    "outcome_window": "2025-01-02 through 2026-01-01 (simulated)",
    "formula": "P(default)=sigmoid(intercept + 1.1*financial_stress + network_strength*mean(guaranteed borrowers' observed financial_stress) + hidden_group_shock)",
    "financial_stress": "(0.85*leverage - 0.65*interest_coverage - 0.45*cash_buffer)/sqrt(0.85^2+0.65^2+0.45^2); each attribute independent standard normal",
    "intercept": "Solved per seed and condition to set mean simulated probability to 0.08; realized prevalence varies",
    "hidden_group_shock": "One independent Normal(0,0.35) draw per relationship group; excluded from predictors",
    "graph": "Each disconnected group is a directed guarantee ring with an additional outgoing chord with probability0.35 per borrower. Balances are LogNormal(10,0.7). All graph features precede outcomes.",
    "limitations": "Edges are generated randomly; this is neither causal identification nor an estimate of real default risk. Absent network effects is a negative control. Temporal generalization is not tested by the group split."
  },
  "provenance": {
    "generator": "scripts/model_experiment.py",
    "generator_sha256": "d2eb1e211f0475a177116ee159ede654cd94771046d15d954c166044b046a941",
    "versions": {
      "numpy": "2.4.6",
      "sklearn": "1.9.0",
      "lightgbm": "4.6.0"
    },
    "split_membership": "artifacts/model/split-membership.csv",
    "uncertainty": "95% percentile intervals from held-out whole-group resampling within each seed. Summary intervals average independent per-seed bootstrap draws; conditional on the five fitted runs, not population or between-training-run uncertainty.",
    "uplift": "Paired graph-enriched minus borrower-only LightGBM on identical held-out group resamples; positive improves AP/AUC, negative improves Brier/log loss."
  },
  "summary": [
    {
      "condition": "absent",
      "network_strength": 0.0,
      "models": [
        {
          "name": "constant",
          "metrics": {
            "average_precision": {
              "mean": 0.0763,
              "ci95": [
                0.0719,
                0.08230500000000002
              ]
            },
            "roc_auc": {
              "mean": 0.5,
              "ci95": [
                0.5,
                0.5
              ]
            },
            "brier": {
              "mean": 0.07056619282334739,
              "ci95": [
                0.0668595385465625,
                0.07565123532503283
              ]
            },
            "log_loss": {
              "mean": 0.2702393765100702,
              "ci95": [
                0.2594025521862295,
                0.28498589308246386
              ]
            }
          }
        },
        {
          "name": "logistic_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.2635896012920963,
              "ci95": [
                0.23640758192864714,
                0.2983159265265185
              ]
            },
            "roc_auc": {
              "mean": 0.7759528291073426,
              "ci95": [
                0.7616741865759399,
                0.789779233181481
              ]
            },
            "brier": {
              "mean": 0.06366004206829876,
              "ci95": [
                0.06039524940214309,
                0.06785028326226718
              ]
            },
            "log_loss": {
              "mean": 0.23204131346232812,
              "ci95": [
                0.22115095960643638,
                0.2449740138639138
              ]
            }
          }
        },
        {
          "name": "lightgbm_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.24332990495081575,
              "ci95": [
                0.2209639016920436,
                0.2782797513641265
              ]
            },
            "roc_auc": {
              "mean": 0.7604560487209506,
              "ci95": [
                0.7451344876480758,
                0.7773325920648191
              ]
            },
            "brier": {
              "mean": 0.06462306495080976,
              "ci95": [
                0.061258260192872,
                0.06884569612505151
              ]
            },
            "log_loss": {
              "mean": 0.23696326224974093,
              "ci95": [
                0.22589078555908076,
                0.24955023634970588
              ]
            }
          }
        },
        {
          "name": "lightgbm_graph",
          "metrics": {
            "average_precision": {
              "mean": 0.24030497098007716,
              "ci95": [
                0.21792471567755348,
                0.27060138737146405
              ]
            },
            "roc_auc": {
              "mean": 0.758659696467995,
              "ci95": [
                0.741512352178981,
                0.7753007256511177
              ]
            },
            "brier": {
              "mean": 0.06493605842521642,
              "ci95": [
                0.06151444507222322,
                0.06914076286407442
              ]
            },
            "log_loss": {
              "mean": 0.2379404047740424,
              "ci95": [
                0.226527149396736,
                0.2510219852796346
              ]
            }
          }
        }
      ],
      "graph_uplift": {
        "average_precision": {
          "mean": -0.0030249339707385803,
          "ci95": [
            -0.012861919770781702,
            0.006055261568622321
          ]
        },
        "roc_auc": {
          "mean": -0.001796352252955602,
          "ci95": [
            -0.006771301551343384,
            0.003206799502095495
          ]
        },
        "brier": {
          "mean": 0.00031299347440666425,
          "ci95": [
            1.5105973839812175e-05,
            0.0006336101162101516
          ]
        },
        "log_loss": {
          "mean": 0.0009771425243014775,
          "ci95": [
            -0.00016864033226923425,
            0.002267823911268388
          ]
        }
      }
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "models": [
        {
          "name": "constant",
          "metrics": {
            "average_precision": {
              "mean": 0.0781,
              "ci95": [
                0.0720925,
                0.08410250000000001
              ]
            },
            "roc_auc": {
              "mean": 0.5,
              "ci95": [
                0.5,
                0.5
              ]
            },
            "brier": {
              "mean": 0.072072779083133,
              "ci95": [
                0.06711939765932094,
                0.07706263471007434
              ]
            },
            "log_loss": {
              "mean": 0.2745646406810256,
              "ci95": [
                0.26050567022285903,
                0.2889908417822448
              ]
            }
          }
        },
        {
          "name": "logistic_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.25000786521301677,
              "ci95": [
                0.22761190047949154,
                0.2862757749160667
              ]
            },
            "roc_auc": {
              "mean": 0.7625431016236522,
              "ci95": [
                0.7467776739632409,
                0.7782197627613318
              ]
            },
            "brier": {
              "mean": 0.0658088703110855,
              "ci95": [
                0.0615924802158142,
                0.07018837568011253
              ]
            },
            "log_loss": {
              "mean": 0.239756812135327,
              "ci95": [
                0.22663794944621013,
                0.25235822132926566
              ]
            }
          }
        },
        {
          "name": "lightgbm_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.22513233759798879,
              "ci95": [
                0.20600820649794505,
                0.25961634099417097
              ]
            },
            "roc_auc": {
              "mean": 0.7405663359495208,
              "ci95": [
                0.7257449843406767,
                0.7583264441791197
              ]
            },
            "brier": {
              "mean": 0.06709363005932298,
              "ci95": [
                0.06256527786714523,
                0.07152319476587568
              ]
            },
            "log_loss": {
              "mean": 0.2461343298919802,
              "ci95": [
                0.2323715521006145,
                0.258532038437205
              ]
            }
          }
        },
        {
          "name": "lightgbm_graph",
          "metrics": {
            "average_precision": {
              "mean": 0.2930385037076748,
              "ci95": [
                0.26950171560274916,
                0.3342271935394976
              ]
            },
            "roc_auc": {
              "mean": 0.7881562301547603,
              "ci95": [
                0.7733644123817025,
                0.8041224668600997
              ]
            },
            "brier": {
              "mean": 0.06410935665850606,
              "ci95": [
                0.06024676443248039,
                0.06825039308941233
              ]
            },
            "log_loss": {
              "mean": 0.2319833687038076,
              "ci95": [
                0.21964761717389086,
                0.24459210730975497
              ]
            }
          }
        }
      ],
      "graph_uplift": {
        "average_precision": {
          "mean": 0.06790616610968603,
          "ci95": [
            0.04784400587144259,
            0.08761815497802657
          ]
        },
        "roc_auc": {
          "mean": 0.047589894205239514,
          "ci95": [
            0.03596369530691873,
            0.05931793317415207
          ]
        },
        "brier": {
          "mean": -0.002984273400816917,
          "ci95": [
            -0.0041703597775726966,
            -0.0019478855565978062
          ]
        },
        "log_loss": {
          "mean": -0.014150961188172606,
          "ci95": [
            -0.017873747799931408,
            -0.010705496403382678
          ]
        }
      }
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "models": [
        {
          "name": "constant",
          "metrics": {
            "average_precision": {
              "mean": 0.079,
              "ci95": [
                0.0717975,
                0.08520250000000001
              ]
            },
            "roc_auc": {
              "mean": 0.5,
              "ci95": [
                0.5,
                0.5
              ]
            },
            "brier": {
              "mean": 0.07285990239623724,
              "ci95": [
                0.0669060570239558,
                0.0779538751269667
              ]
            },
            "log_loss": {
              "mean": 0.2769575764405047,
              "ci95": [
                0.25998575730775664,
                0.29134247292714854
              ]
            }
          }
        },
        {
          "name": "logistic_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.22153066401913019,
              "ci95": [
                0.20165183498067082,
                0.2510082516146095
              ]
            },
            "roc_auc": {
              "mean": 0.7434702959924548,
              "ci95": [
                0.7287775745510527,
                0.7577736063792367
              ]
            },
            "brier": {
              "mean": 0.06784847939219221,
              "ci95": [
                0.06260065205450349,
                0.07230551330322184
              ]
            },
            "log_loss": {
              "mean": 0.2478220422308118,
              "ci95": [
                0.23215618734031476,
                0.2611290892693541
              ]
            }
          }
        },
        {
          "name": "lightgbm_borrower",
          "metrics": {
            "average_precision": {
              "mean": 0.19430274937973502,
              "ci95": [
                0.17984052813402415,
                0.22677123386826709
              ]
            },
            "roc_auc": {
              "mean": 0.719469675890805,
              "ci95": [
                0.7018896723683539,
                0.7348819107251404
              ]
            },
            "brier": {
              "mean": 0.0691310752842638,
              "ci95": [
                0.06374686818824597,
                0.07376103735583128
              ]
            },
            "log_loss": {
              "mean": 0.25437966964640174,
              "ci95": [
                0.23794006787143418,
                0.2674693509831942
              ]
            }
          }
        },
        {
          "name": "lightgbm_graph",
          "metrics": {
            "average_precision": {
              "mean": 0.41029795922700574,
              "ci95": [
                0.3765613120486882,
                0.4497302351374822
              ]
            },
            "roc_auc": {
              "mean": 0.8479106024731362,
              "ci95": [
                0.8343611570249746,
                0.861753811973795
              ]
            },
            "brier": {
              "mean": 0.05848032664644513,
              "ci95": [
                0.05433431359113478,
                0.062402475236667664
              ]
            },
            "log_loss": {
              "mean": 0.2087407590598275,
              "ci95": [
                0.19595890285257145,
                0.22099400772025057
              ]
            }
          }
        }
      ],
      "graph_uplift": {
        "average_precision": {
          "mean": 0.21599520984727072,
          "ci95": [
            0.18163783075835815,
            0.2447616831215244
          ]
        },
        "roc_auc": {
          "mean": 0.1284409265823312,
          "ci95": [
            0.11255198841654256,
            0.14303106726395484
          ]
        },
        "brier": {
          "mean": -0.01065074863781866,
          "ci95": [
            -0.012524475494913445,
            -0.008848263094838528
          ]
        },
        "log_loss": {
          "mean": -0.04563891058657424,
          "ci95": [
            -0.05089236228409954,
            -0.03939470756775843
          ]
        }
      }
    }
  ],
  "runs": [
    {
      "condition": "absent",
      "network_strength": 0.0,
      "seed": 42,
      "intercept": -2.936815618285901,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 482
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 143
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 173
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0865,
            "roc_auc": 0.5,
            "brier": 0.07905577777777775,
            "log_loss": 0.2946159978558144
          },
          "metrics": {
            "average_precision": 0.0865,
            "roc_auc": 0.5,
            "brier": 0.07924280007850294,
            "log_loss": 0.29596028389971096
          },
          "calibration_curve": {
            "predicted": [
              0.07149833080944432
            ],
            "observed": [
              0.0865
            ]
          },
          "ci95": {
            "average_precision": [
              0.076,
              0.099
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.07024426502550123,
              0.08995534180826692
            ],
            "log_loss": [
              0.2690393541183607,
              0.32800900982988984
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2586901741444794,
            "roc_auc": 0.7584245311971043,
            "brier": 0.072012286887455,
            "log_loss": 0.25794149256601867
          },
          "metrics": {
            "average_precision": 0.2586901741444794,
            "roc_auc": 0.7584245311971043,
            "brier": 0.07235536248315713,
            "log_loss": 0.25938365793829476
          },
          "calibration_curve": {
            "predicted": [
              0.008531939254028393,
              0.016672310159058262,
              0.02420242880948063,
              0.03293153383342388,
              0.04284983126576601,
              0.054575552228946965,
              0.06903304782960333,
              0.09123838174510811,
              0.1265474526197472,
              0.24283994689688324
            ],
            "observed": [
              0.0,
              0.03,
              0.045,
              0.04,
              0.05,
              0.05,
              0.075,
              0.13,
              0.16,
              0.285
            ]
          },
          "ci95": {
            "average_precision": [
              0.20728116611081415,
              0.3279655831133063
            ],
            "roc_auc": [
              0.7176486249258865,
              0.7901976532552031
            ],
            "brier": [
              0.06429297266200035,
              0.08161606458456948
            ],
            "log_loss": [
              0.2354353811186586,
              0.2888280724405845
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.21734998629888191,
            "roc_auc": 0.7250902487099418,
            "brier": 0.0744141027184235,
            "log_loss": 0.271457717665342
          },
          "metrics": {
            "average_precision": 0.21734998629888191,
            "roc_auc": 0.7250902487099418,
            "brier": 0.07428907392647113,
            "log_loss": 0.2696647863431347
          },
          "calibration_curve": {
            "predicted": [
              0.008704736397114849,
              0.016347257573927007,
              0.023622627551493212,
              0.032753638250226806,
              0.04555243055971807,
              0.059630511450409596,
              0.07520260429035881,
              0.09614867739383802,
              0.126623832010945,
              0.2189034180452894
            ],
            "observed": [
              0.02,
              0.015,
              0.05,
              0.03,
              0.08,
              0.06965174129353234,
              0.10050251256281408,
              0.095,
              0.145,
              0.26
            ]
          },
          "ci95": {
            "average_precision": [
              0.17650637824999035,
              0.2788070758205031
            ],
            "roc_auc": [
              0.684044588037782,
              0.7629848437067296
            ],
            "brier": [
              0.06641388838391458,
              0.08397482462332984
            ],
            "log_loss": [
              0.24315954057903838,
              0.3003893877029177
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.21698548844383486,
            "roc_auc": 0.7301492386204366,
            "brier": 0.07484079368359187,
            "log_loss": 0.271014743378516
          },
          "metrics": {
            "average_precision": 0.21698548844383486,
            "roc_auc": 0.7301492386204366,
            "brier": 0.07446829565794723,
            "log_loss": 0.26925929340696514
          },
          "calibration_curve": {
            "predicted": [
              0.010171160789372578,
              0.018242415104985844,
              0.025608392860213814,
              0.03436675636408642,
              0.04691456669773591,
              0.05969151685852773,
              0.07420875130147561,
              0.09412693483446546,
              0.12397919648946944,
              0.22117176750680326
            ],
            "observed": [
              0.01,
              0.045,
              0.03,
              0.05,
              0.045,
              0.045,
              0.11,
              0.11,
              0.165,
              0.255
            ]
          },
          "ci95": {
            "average_precision": [
              0.17352612445432056,
              0.2769101066624591
            ],
            "roc_auc": [
              0.689188562227799,
              0.7689046597188918
            ],
            "brier": [
              0.06621757333104654,
              0.08353725496069468
            ],
            "log_loss": [
              0.24473448336253434,
              0.2986500425755776
            ]
          }
        }
      ]
    },
    {
      "condition": "absent",
      "network_strength": 0.0,
      "seed": 43,
      "intercept": -2.9213421729486546,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 446
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 168
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 139
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0695,
            "roc_auc": 0.5,
            "brier": 0.0646931111111111,
            "log_loss": 0.25251693309479156
          },
          "metrics": {
            "average_precision": 0.0695,
            "roc_auc": 0.5,
            "brier": 0.0648799406380013,
            "log_loss": 0.2537878983809111
          },
          "calibration_curve": {
            "predicted": [
              0.08399795289002183
            ],
            "observed": [
              0.0695
            ]
          },
          "ci95": {
            "average_precision": [
              0.057487500000000004,
              0.0815
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.05488549145618408,
              0.07486398976864078
            ],
            "log_loss": [
              0.225087318997949,
              0.28245861243673165
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.27018160516989503,
            "roc_auc": 0.7618399638161584,
            "brier": 0.058058827596823834,
            "log_loss": 0.21807865262940185
          },
          "metrics": {
            "average_precision": 0.27018160516989503,
            "roc_auc": 0.7618399638161584,
            "brier": 0.05821442186040225,
            "log_loss": 0.21896925898798367
          },
          "calibration_curve": {
            "predicted": [
              0.009850448631698622,
              0.018079613865040926,
              0.02627795838654193,
              0.035859994134634386,
              0.046960120933089246,
              0.06022584387044591,
              0.07779220882998239,
              0.10703772191803981,
              0.14706804259168127,
              0.272535544297771
            ],
            "observed": [
              0.005,
              0.025,
              0.04,
              0.03,
              0.035,
              0.04,
              0.065,
              0.075,
              0.1,
              0.28
            ]
          },
          "ci95": {
            "average_precision": [
              0.20561112308547994,
              0.3485551384434172
            ],
            "roc_auc": [
              0.7233157982415128,
              0.7974931360846943
            ],
            "brier": [
              0.04925211419105861,
              0.06690308429743896
            ],
            "log_loss": [
              0.19149516109452794,
              0.24417818921087905
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.24277451327741378,
            "roc_auc": 0.7361382253681203,
            "brier": 0.059180790130411366,
            "log_loss": 0.22606784889531747
          },
          "metrics": {
            "average_precision": 0.24277451327741378,
            "roc_auc": 0.7361382253681203,
            "brier": 0.05945833244050274,
            "log_loss": 0.2260155602692154
          },
          "calibration_curve": {
            "predicted": [
              0.012433676858495966,
              0.022134278749174084,
              0.03200726658174912,
              0.04083516610784045,
              0.051055200622002195,
              0.06600462459496509,
              0.08408428004263557,
              0.10759167310799507,
              0.1453738182978806,
              0.2522970916453934
            ],
            "observed": [
              0.03,
              0.025,
              0.04,
              0.02,
              0.03,
              0.05,
              0.06,
              0.07,
              0.12,
              0.25
            ]
          },
          "ci95": {
            "average_precision": [
              0.18966507824262738,
              0.31128579228995634
            ],
            "roc_auc": [
              0.6954791567499409,
              0.7763761860573514
            ],
            "brier": [
              0.05020455185579059,
              0.06818855024839104
            ],
            "log_loss": [
              0.19791410168621565,
              0.25244846537102217
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.22859160580775972,
            "roc_auc": 0.7382315533924284,
            "brier": 0.05976433206135579,
            "log_loss": 0.22616466056257456
          },
          "metrics": {
            "average_precision": 0.22859160580775972,
            "roc_auc": 0.7382315533924284,
            "brier": 0.05994994850899916,
            "log_loss": 0.22632608726978232
          },
          "calibration_curve": {
            "predicted": [
              0.013825012750774902,
              0.021762731250265892,
              0.02970446440629738,
              0.03858013393417913,
              0.04919485051497212,
              0.06294271438841752,
              0.08201424334099976,
              0.10639438524096362,
              0.15082613996176886,
              0.2691507102700736
            ],
            "observed": [
              0.015,
              0.025,
              0.025,
              0.04,
              0.045,
              0.075,
              0.03,
              0.08,
              0.115,
              0.245
            ]
          },
          "ci95": {
            "average_precision": [
              0.17707995920397712,
              0.2893864838800785
            ],
            "roc_auc": [
              0.6954547503457906,
              0.7735876796678403
            ],
            "brier": [
              0.050785237906882164,
              0.06866075020533362
            ],
            "log_loss": [
              0.19828986146041758,
              0.2527609607948616
            ]
          }
        }
      ]
    },
    {
      "condition": "absent",
      "network_strength": 0.0,
      "seed": 44,
      "intercept": -2.962195297968809,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 501
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 156
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 157
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0785,
            "roc_auc": 0.5,
            "brier": 0.07236275,
            "log_loss": 0.27525687338307897
          },
          "metrics": {
            "average_precision": 0.0785,
            "roc_auc": 0.5,
            "brier": 0.07233800950549452,
            "log_loss": 0.2750922786707471
          },
          "calibration_curve": {
            "predicted": [
              0.07799058318194828
            ],
            "observed": [
              0.0785
            ]
          },
          "ci95": {
            "average_precision": [
              0.0665,
              0.0935
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.06220978350186128,
              0.08499829201003609
            ],
            "log_loss": [
              0.24545267051864778,
              0.3121417888608712
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2550727916297226,
            "roc_auc": 0.7700820111214407,
            "brier": 0.06585491424084104,
            "log_loss": 0.23845304076102988
          },
          "metrics": {
            "average_precision": 0.2550727916297226,
            "roc_auc": 0.7700820111214407,
            "brier": 0.06578801687691777,
            "log_loss": 0.23836038494823156
          },
          "calibration_curve": {
            "predicted": [
              0.00778020035507338,
              0.01607874516153704,
              0.024009752302524934,
              0.03269609181179891,
              0.04285709051091659,
              0.05500599718241202,
              0.07363945283982502,
              0.10014177350645272,
              0.14437550996914494,
              0.27132608706839295
            ],
            "observed": [
              0.01,
              0.015,
              0.03,
              0.035,
              0.055,
              0.03,
              0.065,
              0.11,
              0.19,
              0.245
            ]
          },
          "ci95": {
            "average_precision": [
              0.20458529961281974,
              0.33458508088892824
            ],
            "roc_auc": [
              0.7354819903074776,
              0.8059219779070005
            ],
            "brier": [
              0.05670606448492898,
              0.07624899819851107
            ],
            "log_loss": [
              0.2095667430420784,
              0.2709183191721329
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.23500994522623472,
            "roc_auc": 0.7603879025819853,
            "brier": 0.06711843420568515,
            "log_loss": 0.24323797644182046
          },
          "metrics": {
            "average_precision": 0.23500994522623472,
            "roc_auc": 0.7603879025819853,
            "brier": 0.0665974859921638,
            "log_loss": 0.241796482134069
          },
          "calibration_curve": {
            "predicted": [
              0.011396815981299793,
              0.018162532269135598,
              0.024617383333045674,
              0.03321686467537042,
              0.044468710843665875,
              0.0585668306044394,
              0.07728053367747326,
              0.0997437475924015,
              0.14535385193526323,
              0.26587578706108156
            ],
            "observed": [
              0.01,
              0.015,
              0.04,
              0.015,
              0.055,
              0.055,
              0.07,
              0.13,
              0.155,
              0.24
            ]
          },
          "ci95": {
            "average_precision": [
              0.1963409665991746,
              0.301159382085326
            ],
            "roc_auc": [
              0.7221905521502809,
              0.797078092394391
            ],
            "brier": [
              0.05785796195583382,
              0.07711476946293816
            ],
            "log_loss": [
              0.21503588227257908,
              0.2736607672096832
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.22342998691979937,
            "roc_auc": 0.7542431164917349,
            "brier": 0.06794712843973254,
            "log_loss": 0.24593989580489278
          },
          "metrics": {
            "average_precision": 0.22342998691979937,
            "roc_auc": 0.7542431164917349,
            "brier": 0.06735454293578882,
            "log_loss": 0.24434245612179264
          },
          "calibration_curve": {
            "predicted": [
              0.010973792593197156,
              0.017878053153596533,
              0.02505104158861799,
              0.03299829028619939,
              0.04239839011690621,
              0.055967782412158655,
              0.07452841595153371,
              0.09965709675757164,
              0.15154708088636878,
              0.2838252335507307
            ],
            "observed": [
              0.005,
              0.03,
              0.025,
              0.045,
              0.015,
              0.07,
              0.08,
              0.115,
              0.165,
              0.235
            ]
          },
          "ci95": {
            "average_precision": [
              0.1804235907292477,
              0.29753532246133274
            ],
            "roc_auc": [
              0.714939948021521,
              0.7911181585922343
            ],
            "brier": [
              0.05905872305708559,
              0.07808808006322487
            ],
            "log_loss": [
              0.2171256532313702,
              0.2760398776120463
            ]
          }
        }
      ]
    },
    {
      "condition": "absent",
      "network_strength": 0.0,
      "seed": 45,
      "intercept": -2.93160647396373,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 500
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 174
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 148
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.074,
            "roc_auc": 0.5,
            "brier": 0.0686111111111111,
            "log_loss": 0.2644556271767092
          },
          "metrics": {
            "average_precision": 0.074,
            "roc_auc": 0.5,
            "brier": 0.0686929879005527,
            "log_loss": 0.2649805766073159
          },
          "calibration_curve": {
            "predicted": [
              0.08699953462831642
            ],
            "observed": [
              0.074
            ]
          },
          "ci95": {
            "average_precision": [
              0.062,
              0.08701249999999999
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.05878097673163219,
              0.07944132501185087
            ],
            "log_loss": [
              0.23677057315805794,
              0.2955707990976049
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.29224510842575196,
            "roc_auc": 0.8106904150370674,
            "brier": 0.06023458192742306,
            "log_loss": 0.21788964118758894
          },
          "metrics": {
            "average_precision": 0.29224510842575196,
            "roc_auc": 0.8106904150370674,
            "brier": 0.060258019799662915,
            "log_loss": 0.21772368202974843
          },
          "calibration_curve": {
            "predicted": [
              0.008273971150215588,
              0.0168701752823949,
              0.025546574611030028,
              0.035415907180041444,
              0.04755132010344568,
              0.06205634962177308,
              0.08203552066112602,
              0.11213837291189602,
              0.16477171557855566,
              0.3131068252613414
            ],
            "observed": [
              0.0,
              0.005,
              0.015,
              0.015,
              0.06,
              0.035,
              0.085,
              0.09,
              0.155,
              0.28
            ]
          },
          "ci95": {
            "average_precision": [
              0.23766570387903904,
              0.3838538148114713
            ],
            "roc_auc": [
              0.7832896223509227,
              0.8400150047125557
            ],
            "brier": [
              0.052888438823806144,
              0.06875011237296359
            ],
            "log_loss": [
              0.1963235157339861,
              0.2425969139779805
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.29617981037918634,
            "roc_auc": 0.8058563423034265,
            "brier": 0.060405687855205815,
            "log_loss": 0.21812122506970638
          },
          "metrics": {
            "average_precision": 0.29617981037918634,
            "roc_auc": 0.8058563423034265,
            "brier": 0.06054766856457154,
            "log_loss": 0.2194428733344709
          },
          "calibration_curve": {
            "predicted": [
              0.009179893206105447,
              0.015422757355259706,
              0.022694872289878334,
              0.03234487407335842,
              0.04725229344577333,
              0.07003030363511543,
              0.09668263795926231,
              0.12468741265981248,
              0.17112583618145183,
              0.29238696525535907
            ],
            "observed": [
              0.0,
              0.005,
              0.01,
              0.035,
              0.04,
              0.04,
              0.085,
              0.105,
              0.115,
              0.305
            ]
          },
          "ci95": {
            "average_precision": [
              0.23190973695884307,
              0.3916240306034036
            ],
            "roc_auc": [
              0.7695466410560573,
              0.838197592003774
            ],
            "brier": [
              0.05303657026657886,
              0.06971161476793829
            ],
            "log_loss": [
              0.19783166237438365,
              0.24502494727205687
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.29324310947802695,
            "roc_auc": 0.8002707080730839,
            "brier": 0.06055664500329195,
            "log_loss": 0.21954001336916734
          },
          "metrics": {
            "average_precision": 0.29324310947802695,
            "roc_auc": 0.8002707080730839,
            "brier": 0.06073955027948057,
            "log_loss": 0.22112756697099464
          },
          "calibration_curve": {
            "predicted": [
              0.01163097718971902,
              0.018225868160004655,
              0.025317151494900353,
              0.03507686809200929,
              0.049234304804578015,
              0.06946797558419261,
              0.09216591207522735,
              0.12316680748580316,
              0.16818485095736999,
              0.2831667160934512
            ],
            "observed": [
              0.0,
              0.01,
              0.015,
              0.025,
              0.04,
              0.055,
              0.09,
              0.08,
              0.13,
              0.295
            ]
          },
          "ci95": {
            "average_precision": [
              0.230783827142783,
              0.38427591759890284
            ],
            "roc_auc": [
              0.7676760845254573,
              0.8322328959492041
            ],
            "brier": [
              0.053052132721237155,
              0.07015953902080968
            ],
            "log_loss": [
              0.19857426986633872,
              0.2471479009868114
            ]
          }
        }
      ]
    },
    {
      "condition": "absent",
      "network_strength": 0.0,
      "seed": 46,
      "intercept": -2.9625948196234226,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 496
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 151
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 146
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.073,
            "roc_auc": 0.5,
            "brier": 0.06776444444444446,
            "log_loss": 0.2619701436578549
          },
          "metrics": {
            "average_precision": 0.073,
            "roc_auc": 0.5,
            "brier": 0.0676772259941855,
            "log_loss": 0.26137584499166594
          },
          "calibration_curve": {
            "predicted": [
              0.07549519421799576
            ],
            "observed": [
              0.073
            ]
          },
          "ci95": {
            "average_precision": [
              0.061,
              0.0875125
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.057489110655417404,
              0.07999847798200818
            ],
            "log_loss": [
              0.2313135740207508,
              0.29773240394711636
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2417583270906324,
            "roc_auc": 0.7787272243649422,
            "brier": 0.061876269061776554,
            "log_loss": 0.2264243059927174
          },
          "metrics": {
            "average_precision": 0.2417583270906324,
            "roc_auc": 0.7787272243649422,
            "brier": 0.06168438932135376,
            "log_loss": 0.22576958340738218
          },
          "calibration_curve": {
            "predicted": [
              0.008415084963267259,
              0.016842170569102807,
              0.02437819729460011,
              0.03300214690231345,
              0.043227693941898654,
              0.056883891501102575,
              0.0735258165860355,
              0.0977236168379615,
              0.13635524130981408,
              0.26570227080834785
            ],
            "observed": [
              0.015,
              0.01,
              0.015,
              0.005,
              0.06,
              0.05,
              0.08,
              0.105,
              0.115,
              0.275
            ]
          },
          "ci95": {
            "average_precision": [
              0.1863716019959171,
              0.3064948952142382
            ],
            "roc_auc": [
              0.744842083382827,
              0.8122164207633733
            ],
            "brier": [
              0.0520197855539934,
              0.07237525676091877
            ],
            "log_loss": [
              0.19535973648980942,
              0.2611885254812828
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.22533526957236205,
            "roc_auc": 0.7748075246412791,
            "brier": 0.06278286543438932,
            "log_loss": 0.22836939687227972
          },
          "metrics": {
            "average_precision": 0.22533526957236205,
            "roc_auc": 0.7748075246412791,
            "brier": 0.06222276383033959,
            "log_loss": 0.22789660916781462
          },
          "calibration_curve": {
            "predicted": [
              0.012781735859729111,
              0.021393715766850434,
              0.030833823337749693,
              0.03929098726744473,
              0.04787932160477454,
              0.06123554173213165,
              0.0769081725670232,
              0.09485627561901731,
              0.1306929579725474,
              0.23674567129850022
            ],
            "observed": [
              0.01,
              0.015,
              0.005,
              0.03,
              0.04,
              0.075,
              0.08,
              0.08,
              0.155,
              0.24
            ]
          },
          "ci95": {
            "average_precision": [
              0.17111633561212475,
              0.2894564153483043
            ],
            "roc_auc": [
              0.7387272867799537,
              0.8122282967558127
            ],
            "brier": [
              0.05279514074537838,
              0.073129232492171
            ],
            "log_loss": [
              0.1993932331892371,
              0.26077269219596394
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.2392746642509649,
            "roc_auc": 0.7704038657622911,
            "brier": 0.06278443874922407,
            "log_loss": 0.22939804412229614
          },
          "metrics": {
            "average_precision": 0.2392746642509649,
            "roc_auc": 0.7704038657622911,
            "brier": 0.06216795474386632,
            "log_loss": 0.22864662010067724
          },
          "calibration_curve": {
            "predicted": [
              0.014436596043519824,
              0.022580502137026576,
              0.03178535364037888,
              0.03998495338759231,
              0.047750393757156714,
              0.0593982874328402,
              0.07491664947983606,
              0.09568557167077091,
              0.1312425211615283,
              0.2430158654856584
            ],
            "observed": [
              0.015,
              0.01,
              0.015,
              0.035,
              0.03,
              0.06,
              0.08,
              0.095,
              0.145,
              0.245
            ]
          },
          "ci95": {
            "average_precision": [
              0.17595947483086102,
              0.3138135832628684
            ],
            "roc_auc": [
              0.7325651385265979,
              0.8048237297384436
            ],
            "brier": [
              0.05249645337127571,
              0.07270054935472124
            ],
            "log_loss": [
              0.19816962770665567,
              0.26221243263791455
            ]
          }
        }
      ]
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "seed": 42,
      "intercept": -3.083150704711822,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 489
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 164
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 177
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0885,
            "roc_auc": 0.5,
            "brier": 0.08071674999999999,
            "log_loss": 0.2993726655970969
          },
          "metrics": {
            "average_precision": 0.0885,
            "roc_auc": 0.5,
            "brier": 0.08071000245599555,
            "log_loss": 0.29932772036196137
          },
          "calibration_curve": {
            "predicted": [
              0.0819998110800105
            ],
            "observed": [
              0.0885
            ]
          },
          "ci95": {
            "average_precision": [
              0.076975,
              0.1020375
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.07107509810138982,
              0.09202735757100423
            ],
            "log_loss": [
              0.27148930583548686,
              0.3320272897027119
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.28022204794960676,
            "roc_auc": 0.7565321953320875,
            "brier": 0.07300772323761133,
            "log_loss": 0.26131595225845955
          },
          "metrics": {
            "average_precision": 0.28022204794960676,
            "roc_auc": 0.7565321953320875,
            "brier": 0.07315574479010024,
            "log_loss": 0.26157719385574435
          },
          "calibration_curve": {
            "predicted": [
              0.012184732272471204,
              0.022429396999314868,
              0.03171922887504,
              0.0419986642673415,
              0.05329245648395701,
              0.06640959139884636,
              0.0822243176363824,
              0.1056920983501124,
              0.14216330550765,
              0.255370437916151
            ],
            "observed": [
              0.0,
              0.035,
              0.04,
              0.035,
              0.05,
              0.075,
              0.07,
              0.125,
              0.165,
              0.29
            ]
          },
          "ci95": {
            "average_precision": [
              0.22858584636800466,
              0.34391998595527856
            ],
            "roc_auc": [
              0.7188662793919334,
              0.7870040082328549
            ],
            "brier": [
              0.0639249330280387,
              0.08346681527862633
            ],
            "log_loss": [
              0.23437027229464333,
              0.2892432187585952
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.2505828707696477,
            "roc_auc": 0.741772579500482,
            "brier": 0.07459529421733936,
            "log_loss": 0.2687357657101013
          },
          "metrics": {
            "average_precision": 0.2505828707696477,
            "roc_auc": 0.741772579500482,
            "brier": 0.07460910542530792,
            "log_loss": 0.2673926132489245
          },
          "calibration_curve": {
            "predicted": [
              0.01325823064200122,
              0.0220414111608289,
              0.032260736708744187,
              0.04317164062189477,
              0.05533024286453496,
              0.06804687613280049,
              0.08660612236218448,
              0.10944251215683455,
              0.1396677604673084,
              0.23303795533128877
            ],
            "observed": [
              0.015,
              0.025,
              0.025,
              0.05,
              0.055,
              0.06,
              0.115,
              0.115,
              0.175,
              0.25
            ]
          },
          "ci95": {
            "average_precision": [
              0.20281115859348756,
              0.3170603329830108
            ],
            "roc_auc": [
              0.7021119998068807,
              0.7761686016498747
            ],
            "brier": [
              0.06587242596642051,
              0.08481377188576644
            ],
            "log_loss": [
              0.2386128571328654,
              0.29631093241298495
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.3150177352397092,
            "roc_auc": 0.7823464147692232,
            "brier": 0.07115789014698456,
            "log_loss": 0.2544999185320879
          },
          "metrics": {
            "average_precision": 0.3150177352397092,
            "roc_auc": 0.7823464147692232,
            "brier": 0.07106185573834935,
            "log_loss": 0.25334085930285666
          },
          "calibration_curve": {
            "predicted": [
              0.00775685307012351,
              0.013413305089425216,
              0.01926126196614028,
              0.02717570444273936,
              0.03718185917134175,
              0.051894069553445214,
              0.07382475420213168,
              0.10658020535195384,
              0.1588490159191225,
              0.31678492631562155
            ],
            "observed": [
              0.005,
              0.02,
              0.045,
              0.02,
              0.04,
              0.07,
              0.08,
              0.1,
              0.195,
              0.31
            ]
          },
          "ci95": {
            "average_precision": [
              0.24626207384616705,
              0.40575627275618736
            ],
            "roc_auc": [
              0.750746358427419,
              0.818609967304196
            ],
            "brier": [
              0.061971338615782454,
              0.08110961163097702
            ],
            "log_loss": [
              0.22724013760479989,
              0.28203760740375694
            ]
          }
        }
      ]
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "seed": 43,
      "intercept": -3.065063500906996,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 442
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 169
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 148
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.074,
            "roc_auc": 0.5,
            "brier": 0.0685241111111111,
            "log_loss": 0.26386573379637457
          },
          "metrics": {
            "average_precision": 0.074,
            "roc_auc": 0.5,
            "brier": 0.06863419521147467,
            "log_loss": 0.2646057541490238
          },
          "calibration_curve": {
            "predicted": [
              0.0844973906983921
            ],
            "observed": [
              0.074
            ]
          },
          "ci95": {
            "average_precision": [
              0.0599375,
              0.0865
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.05694818432486687,
              0.0790217604440149
            ],
            "log_loss": [
              0.23109829627864428,
              0.2943901611449169
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.22721104786232563,
            "roc_auc": 0.7377269277917226,
            "brier": 0.06338944826034265,
            "log_loss": 0.23557816355608382
          },
          "metrics": {
            "average_precision": 0.22721104786232563,
            "roc_auc": 0.7377269277917226,
            "brier": 0.06345809593739454,
            "log_loss": 0.23585824559999705
          },
          "calibration_curve": {
            "predicted": [
              0.012018101564378237,
              0.02100538847048707,
              0.029691261751338162,
              0.039576750782161725,
              0.050853285909515274,
              0.06364462626781518,
              0.0809370248398638,
              0.10808171841287867,
              0.1454570444119973,
              0.25780368395074127
            ],
            "observed": [
              0.0,
              0.04,
              0.045,
              0.035,
              0.04,
              0.05,
              0.07,
              0.085,
              0.115,
              0.26
            ]
          },
          "ci95": {
            "average_precision": [
              0.17871333564020203,
              0.2929521693739085
            ],
            "roc_auc": [
              0.6988947299857365,
              0.7777769201467842
            ],
            "brier": [
              0.05319413222779333,
              0.07254525720705916
            ],
            "log_loss": [
              0.20301356126061937,
              0.2638686234514756
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.19908652837446816,
            "roc_auc": 0.7167434037709417,
            "brier": 0.06473231056575718,
            "log_loss": 0.24288623887860422
          },
          "metrics": {
            "average_precision": 0.19908652837446816,
            "roc_auc": 0.7167434037709417,
            "brier": 0.06463453383231653,
            "log_loss": 0.24167596307429953
          },
          "calibration_curve": {
            "predicted": [
              0.015568807456878005,
              0.02592463613748849,
              0.03607579650738744,
              0.046294949807055084,
              0.05710854724776577,
              0.06975891172283538,
              0.08810120644779268,
              0.1111639073672351,
              0.13935536217366465,
              0.23519221530712323
            ],
            "observed": [
              0.01,
              0.03,
              0.04,
              0.035,
              0.06,
              0.045,
              0.085,
              0.065,
              0.17,
              0.2
            ]
          },
          "ci95": {
            "average_precision": [
              0.1592191886656801,
              0.25220770116834396
            ],
            "roc_auc": [
              0.6753261916945105,
              0.7583356185274354
            ],
            "brier": [
              0.054458753289241775,
              0.07410466074637227
            ],
            "log_loss": [
              0.2114646291107186,
              0.26964307731340226
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.23760241367362228,
            "roc_auc": 0.7739113303368164,
            "brier": 0.06275694564721163,
            "log_loss": 0.22946731811221055
          },
          "metrics": {
            "average_precision": 0.23760241367362228,
            "roc_auc": 0.7739113303368164,
            "brier": 0.062490186586872117,
            "log_loss": 0.22895871669632384
          },
          "calibration_curve": {
            "predicted": [
              0.013489729870488042,
              0.021282976705959557,
              0.02884119434532185,
              0.038133650900131676,
              0.04930498278054847,
              0.06299141528951034,
              0.08002771036725359,
              0.10534525288339953,
              0.14741187957880714,
              0.28010061394873503
            ],
            "observed": [
              0.005,
              0.025,
              0.03,
              0.035,
              0.025,
              0.04,
              0.08,
              0.055,
              0.175,
              0.27
            ]
          },
          "ci95": {
            "average_precision": [
              0.1851668606499612,
              0.30420044820844844
            ],
            "roc_auc": [
              0.7281701968045855,
              0.8087842565386832
            ],
            "brier": [
              0.052609000564442315,
              0.07208926206736042
            ],
            "log_loss": [
              0.1984042111820615,
              0.2588835418840234
            ]
          }
        }
      ]
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "seed": 44,
      "intercept": -3.1165381647934103,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 487
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 163
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 156
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.078,
            "roc_auc": 0.5,
            "brier": 0.07192602777777776,
            "log_loss": 0.27392533707006167
          },
          "metrics": {
            "average_precision": 0.078,
            "roc_auc": 0.5,
            "brier": 0.07192797052860458,
            "log_loss": 0.2739383402093135
          },
          "calibration_curve": {
            "predicted": [
              0.08145984517060754
            ],
            "observed": [
              0.078
            ]
          },
          "ci95": {
            "average_precision": [
              0.0654875,
              0.093
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.061454003153999036,
              0.08448417517348634
            ],
            "log_loss": [
              0.24362461401664007,
              0.3102784715092217
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2461012526363529,
            "roc_auc": 0.7511576005339564,
            "brier": 0.06607477040417073,
            "log_loss": 0.2420132678191758
          },
          "metrics": {
            "average_precision": 0.2461012526363529,
            "roc_auc": 0.7511576005339564,
            "brier": 0.06626859985846259,
            "log_loss": 0.2427745444098396
          },
          "calibration_curve": {
            "predicted": [
              0.00699302321247901,
              0.015054909349975935,
              0.02288792254468146,
              0.03177710648110944,
              0.04242162896355948,
              0.055215643020098376,
              0.07565626277961944,
              0.10403226865504882,
              0.15326410660038442,
              0.29376735082281263
            ],
            "observed": [
              0.01,
              0.02,
              0.03,
              0.03,
              0.07,
              0.045,
              0.06,
              0.115,
              0.17,
              0.23
            ]
          },
          "ci95": {
            "average_precision": [
              0.19793872637997853,
              0.3162675260453307
            ],
            "roc_auc": [
              0.7143299906662277,
              0.7891673964171545
            ],
            "brier": [
              0.056484122821433044,
              0.07779518020659965
            ],
            "log_loss": [
              0.21230178382692272,
              0.27714615670850323
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.22061113559683732,
            "roc_auc": 0.717686258968797,
            "brier": 0.06804710177952979,
            "log_loss": 0.2524241170000208
          },
          "metrics": {
            "average_precision": 0.22061113559683732,
            "roc_auc": 0.717686258968797,
            "brier": 0.06790805278839665,
            "log_loss": 0.2513300347926207
          },
          "calibration_curve": {
            "predicted": [
              0.011609316161888096,
              0.01970837965575552,
              0.027018737114269296,
              0.035436266572378125,
              0.04652412616954673,
              0.05943141517854656,
              0.07613464330948289,
              0.1028135236189409,
              0.15920310667956816,
              0.2836937698746813
            ],
            "observed": [
              0.015,
              0.025,
              0.045,
              0.025,
              0.08,
              0.045,
              0.09,
              0.095,
              0.135,
              0.225
            ]
          },
          "ci95": {
            "average_precision": [
              0.17357645315757952,
              0.28023800477707844
            ],
            "roc_auc": [
              0.6824492996757245,
              0.7610191030930139
            ],
            "brier": [
              0.057970745028130634,
              0.0802021430624553
            ],
            "log_loss": [
              0.22204152246383752,
              0.2872403846086331
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.23974352287129613,
            "roc_auc": 0.76673132543523,
            "brier": 0.06687675998625436,
            "log_loss": 0.24163688996645835
          },
          "metrics": {
            "average_precision": 0.23974352287129613,
            "roc_auc": 0.76673132543523,
            "brier": 0.06708343577835334,
            "log_loss": 0.24176669963157968
          },
          "calibration_curve": {
            "predicted": [
              0.006990672376535972,
              0.012179582125733151,
              0.01820580064130998,
              0.02567351047525305,
              0.034625368647616665,
              0.04778151902493784,
              0.06655204589699987,
              0.0972981093118743,
              0.15170735425454923,
              0.34494029585404173
            ],
            "observed": [
              0.01,
              0.01,
              0.02,
              0.04,
              0.045,
              0.065,
              0.095,
              0.085,
              0.14,
              0.27
            ]
          },
          "ci95": {
            "average_precision": [
              0.18833541238145862,
              0.3135690824556518
            ],
            "roc_auc": [
              0.732776437759491,
              0.8015864188325511
            ],
            "brier": [
              0.05792338842477349,
              0.07862602650173836
            ],
            "log_loss": [
              0.20996635785142465,
              0.2785955288765695
            ]
          }
        }
      ]
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "seed": 45,
      "intercept": -3.0825956770107146,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 495
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 184
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 147
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0735,
            "roc_auc": 0.5,
            "brier": 0.06817875,
            "log_loss": 0.2631534891176364
          },
          "metrics": {
            "average_precision": 0.0735,
            "roc_auc": 0.5,
            "brier": 0.06843993911244092,
            "log_loss": 0.26478553735296645
          },
          "calibration_curve": {
            "predicted": [
              0.09199835431709859
            ],
            "observed": [
              0.0735
            ]
          },
          "ci95": {
            "average_precision": [
              0.0634875,
              0.0845125
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.06026970615764082,
              0.07742617535860682
            ],
            "log_loss": [
              0.24186216388924825,
              0.28999838631867897
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.26348457193105035,
            "roc_auc": 0.8103461568113484,
            "brier": 0.060797705226967404,
            "log_loss": 0.21912844347004046
          },
          "metrics": {
            "average_precision": 0.26348457193105035,
            "roc_auc": 0.8103461568113484,
            "brier": 0.06106685935642462,
            "log_loss": 0.22002194393656277
          },
          "calibration_curve": {
            "predicted": [
              0.009762301987020196,
              0.019381505294564734,
              0.02888882634163801,
              0.039709858785081036,
              0.052382532624576844,
              0.06784784721718654,
              0.08836900231564294,
              0.11984514427107928,
              0.17177258080623597,
              0.31791371070915647
            ],
            "observed": [
              0.0,
              0.0,
              0.015,
              0.025,
              0.05,
              0.035,
              0.09,
              0.065,
              0.185,
              0.27
            ]
          },
          "ci95": {
            "average_precision": [
              0.21400847605613754,
              0.34455706362365485
            ],
            "roc_auc": [
              0.7804828843131729,
              0.8336316896815554
            ],
            "brier": [
              0.05379403413454889,
              0.06902067970042422
            ],
            "log_loss": [
              0.1996505868790621,
              0.2420024498205628
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.2452183385973453,
            "roc_auc": 0.7854646445734257,
            "brier": 0.06192443885398,
            "log_loss": 0.22422960560440755
          },
          "metrics": {
            "average_precision": 0.2452183385973453,
            "roc_auc": 0.7854646445734257,
            "brier": 0.062068370274832155,
            "log_loss": 0.22676985286721998
          },
          "calibration_curve": {
            "predicted": [
              0.012652381565387581,
              0.021752993995737248,
              0.03154244444359304,
              0.04342275831784506,
              0.05842950655641015,
              0.07830543510928167,
              0.09986250964531009,
              0.12373985108119706,
              0.16541480717837703,
              0.28756473855110204
            ],
            "observed": [
              0.0,
              0.01,
              0.02,
              0.03,
              0.05,
              0.055,
              0.07,
              0.085,
              0.135,
              0.28
            ]
          },
          "ci95": {
            "average_precision": [
              0.19194953460248587,
              0.32656438804572585
            ],
            "roc_auc": [
              0.7525904763471492,
              0.8150304522360204
            ],
            "brier": [
              0.054912937251059946,
              0.06954336858968717
            ],
            "log_loss": [
              0.206291744671016,
              0.24904451510497289
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.36488277954594106,
            "roc_auc": 0.8281844848030955,
            "brier": 0.05715538209997966,
            "log_loss": 0.20681578507588708
          },
          "metrics": {
            "average_precision": 0.36488277954594106,
            "roc_auc": 0.8281844848030955,
            "brier": 0.057484528075360156,
            "log_loss": 0.2089166215862239
          },
          "calibration_curve": {
            "predicted": [
              0.008546793809639401,
              0.015058631916233897,
              0.021670447513241306,
              0.030726302968219658,
              0.04262578672095664,
              0.0585510444290469,
              0.08406659134262336,
              0.11864257031179515,
              0.17367649379891753,
              0.3655726938991685
            ],
            "observed": [
              0.0,
              0.0,
              0.015,
              0.035,
              0.03,
              0.035,
              0.075,
              0.095,
              0.12,
              0.33
            ]
          },
          "ci95": {
            "average_precision": [
              0.3000743020016212,
              0.44047004340677515
            ],
            "roc_auc": [
              0.7942194070048388,
              0.8523201692980451
            ],
            "brier": [
              0.05104465008005783,
              0.06593894289599819
            ],
            "log_loss": [
              0.18965085283108957,
              0.23294505650909036
            ]
          }
        }
      ]
    },
    {
      "condition": "moderate",
      "network_strength": 0.75,
      "seed": 46,
      "intercept": -3.125721219313382,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 477
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 149
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 153
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0765,
            "roc_auc": 0.5,
            "brier": 0.07065674999999999,
            "log_loss": 0.2701990167034873
          },
          "metrics": {
            "average_precision": 0.0765,
            "roc_auc": 0.5,
            "brier": 0.07065178810714931,
            "log_loss": 0.2701658513318627
          },
          "calibration_curve": {
            "predicted": [
              0.07449049579514623
            ],
            "observed": [
              0.0765
            ]
          },
          "ci95": {
            "average_precision": [
              0.062975,
              0.0920125
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.05914175601840803,
              0.0838532204751049
            ],
            "log_loss": [
              0.23608727593825865,
              0.30925227652914794
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2330204056857484,
            "roc_auc": 0.7569526276491466,
            "brier": 0.06509940635071933,
            "log_loss": 0.23862395306930897
          },
          "metrics": {
            "average_precision": 0.2330204056857484,
            "roc_auc": 0.7569526276491466,
            "brier": 0.06509505161304553,
            "log_loss": 0.23855213287449123
          },
          "calibration_curve": {
            "predicted": [
              0.009814336019629012,
              0.01882954921676379,
              0.026588255258050548,
              0.03523277258529445,
              0.045069059610846,
              0.05810762207590651,
              0.07324264370538815,
              0.09757537893970313,
              0.13217538381605634,
              0.24917120154416275
            ],
            "observed": [
              0.02,
              0.005,
              0.03,
              0.025,
              0.045,
              0.065,
              0.065,
              0.115,
              0.12,
              0.275
            ]
          },
          "ci95": {
            "average_precision": [
              0.17409114142652427,
              0.2920707624358029
            ],
            "roc_auc": [
              0.7211514997554136,
              0.7943595359093386
            ],
            "brier": [
              0.053711956147154766,
              0.07568464526173055
            ],
            "log_loss": [
              0.20538583510273103,
              0.27077309724467297
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.21016281465164552,
            "roc_auc": 0.7411647929339575,
            "brier": 0.0667482691778063,
            "log_loss": 0.2447422001887448
          },
          "metrics": {
            "average_precision": 0.21016281465164552,
            "roc_auc": 0.7411647929339575,
            "brier": 0.0662480879757616,
            "log_loss": 0.24350318547683633
          },
          "calibration_curve": {
            "predicted": [
              0.012628557646884647,
              0.022621708588275773,
              0.030882136607221753,
              0.039901377503067936,
              0.05001946865419141,
              0.06311278216841623,
              0.07722796530768346,
              0.09554291620391224,
              0.1261789461324831,
              0.23790887619798615
            ],
            "observed": [
              0.02,
              0.01,
              0.04,
              0.05,
              0.03,
              0.06,
              0.06,
              0.105,
              0.155,
              0.235
            ]
          },
          "ci95": {
            "average_precision": [
              0.15878818791106494,
              0.26925885633477054
            ],
            "roc_auc": [
              0.6982315518232289,
              0.7788568336498317
            ],
            "brier": [
              0.05499053659497855,
              0.07711021687462083
            ],
            "log_loss": [
              0.2091688907466685,
              0.2770008527749495
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.3079460672078055,
            "roc_auc": 0.7896075954294368,
            "brier": 0.06255138304663815,
            "log_loss": 0.2273213381342735
          },
          "metrics": {
            "average_precision": 0.3079460672078055,
            "roc_auc": 0.7896075954294368,
            "brier": 0.06242677711359532,
            "log_loss": 0.22693394630205369
          },
          "calibration_curve": {
            "predicted": [
              0.01082955498211945,
              0.016654287005979443,
              0.023266056612118214,
              0.030766245290083715,
              0.03968981923291679,
              0.05174398269813836,
              0.0680244674038142,
              0.09127165326700039,
              0.14157802382807824,
              0.27821642635006805
            ],
            "observed": [
              0.0,
              0.02,
              0.03,
              0.03,
              0.025,
              0.055,
              0.065,
              0.12,
              0.115,
              0.305
            ]
          },
          "ci95": {
            "average_precision": [
              0.2365160794028106,
              0.391592642959846
            ],
            "roc_auc": [
              0.7557179945002329,
              0.8221955896265501
            ],
            "brier": [
              0.052587754700615635,
              0.07290814166152683
            ],
            "log_loss": [
              0.19574039742324842,
              0.2624372530368891
            ]
          }
        }
      ]
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "seed": 42,
      "intercept": -3.491529289861303,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 511
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 175
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 183
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0915,
            "roc_auc": 0.5,
            "brier": 0.0831678611111111,
            "log_loss": 0.30624643737897866
          },
          "metrics": {
            "average_precision": 0.0915,
            "roc_auc": 0.5,
            "brier": 0.08314375261684201,
            "log_loss": 0.30609347013930377
          },
          "calibration_curve": {
            "predicted": [
              0.0874996729081194
            ],
            "observed": [
              0.0915
            ]
          },
          "ci95": {
            "average_precision": [
              0.0805,
              0.104
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.07406874542082073,
              0.09345626079413896
            ],
            "log_loss": [
              0.28030338286305667,
              0.3354003874986754
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.27475728411020206,
            "roc_auc": 0.7572982547945782,
            "brier": 0.0757199853066145,
            "log_loss": 0.2681503591927918
          },
          "metrics": {
            "average_precision": 0.27475728411020206,
            "roc_auc": 0.7572982547945782,
            "brier": 0.07576648918151184,
            "log_loss": 0.26837510246130014
          },
          "calibration_curve": {
            "predicted": [
              0.01500464032700585,
              0.026789776888786188,
              0.03684106501741746,
              0.04781810202527202,
              0.059891765785640656,
              0.07328729821191508,
              0.08932829132446862,
              0.11310444233211366,
              0.14837958123010633,
              0.25640316615193487
            ],
            "observed": [
              0.0,
              0.025,
              0.04,
              0.03,
              0.055,
              0.08,
              0.1,
              0.14,
              0.175,
              0.27
            ]
          },
          "ci95": {
            "average_precision": [
              0.22495319467679964,
              0.3342886128319587
            ],
            "roc_auc": [
              0.7228477649468742,
              0.7887115340133606
            ],
            "brier": [
              0.0667275076809825,
              0.08466595149846828
            ],
            "log_loss": [
              0.24176585563656036,
              0.2956863315352962
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.24262382075440467,
            "roc_auc": 0.7326404239258251,
            "brier": 0.07759316512681004,
            "log_loss": 0.2768465287714024
          },
          "metrics": {
            "average_precision": 0.24262382075440467,
            "roc_auc": 0.7326404239258251,
            "brier": 0.07761937414334977,
            "log_loss": 0.2764237189604729
          },
          "calibration_curve": {
            "predicted": [
              0.018761735253220214,
              0.028674672903671077,
              0.03974438792533885,
              0.05150805744228532,
              0.06389074610998276,
              0.07828229982722981,
              0.093621991364504,
              0.11317045318234531,
              0.14692294237045522,
              0.22980301196445613
            ],
            "observed": [
              0.015,
              0.03,
              0.035,
              0.03,
              0.06,
              0.095,
              0.125,
              0.095,
              0.19,
              0.24
            ]
          },
          "ci95": {
            "average_precision": [
              0.19692933340276303,
              0.30240795070126203
            ],
            "roc_auc": [
              0.6982070347228527,
              0.7673210913657709
            ],
            "brier": [
              0.06840349249142041,
              0.08651530542786832
            ],
            "log_loss": [
              0.24899887099543375,
              0.3034325576988269
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.4490025409480794,
            "roc_auc": 0.8511868780280953,
            "brier": 0.06543610624022034,
            "log_loss": 0.22832269592537763
          },
          "metrics": {
            "average_precision": 0.4490025409480794,
            "roc_auc": 0.8511868780280953,
            "brier": 0.0653597699598347,
            "log_loss": 0.22765068976309
          },
          "calibration_curve": {
            "predicted": [
              0.004789400904959813,
              0.008699382262111515,
              0.014131003389619963,
              0.02087782263257436,
              0.02905921534231215,
              0.042257953329812435,
              0.06212493200963716,
              0.09638197838185693,
              0.17344821197269333,
              0.407122652245959
            ],
            "observed": [
              0.01,
              0.01,
              0.005,
              0.015,
              0.03,
              0.04,
              0.065,
              0.125,
              0.2,
              0.415
            ]
          },
          "ci95": {
            "average_precision": [
              0.37784023617383855,
              0.5273796756460459
            ],
            "roc_auc": [
              0.8210210510241215,
              0.877192923548879
            ],
            "brier": [
              0.057029762769162835,
              0.07252169998274684
            ],
            "log_loss": [
              0.20421566016498713,
              0.24965082877919367
            ]
          }
        }
      ]
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "seed": 43,
      "intercept": -3.4751248271129516,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 444
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 170
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 146
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.073,
            "roc_auc": 0.5,
            "brier": 0.06767200000000002,
            "log_loss": 0.2613381116612244
          },
          "metrics": {
            "average_precision": 0.073,
            "roc_auc": 0.5,
            "brier": 0.06781493598768283,
            "log_loss": 0.2622987172196281
          },
          "calibration_curve": {
            "predicted": [
              0.08499733252364194
            ],
            "observed": [
              0.073
            ]
          },
          "ci95": {
            "average_precision": [
              0.059,
              0.08601249999999999
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.056194861298344806,
              0.07861538040875506
            ],
            "log_loss": [
              0.22903041772690755,
              0.2932204134445585
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.18183414998123765,
            "roc_auc": 0.7288277105407043,
            "brier": 0.06415257513306466,
            "log_loss": 0.23783613238395213
          },
          "metrics": {
            "average_precision": 0.18183414998123765,
            "roc_auc": 0.7288277105407043,
            "brier": 0.06435532297385191,
            "log_loss": 0.23845505537018633
          },
          "calibration_curve": {
            "predicted": [
              0.01381527709513525,
              0.023510880992571016,
              0.03243408853553553,
              0.04238690300421299,
              0.05368686589875381,
              0.06626139190405252,
              0.082953249641992,
              0.10889130133456247,
              0.14459964333631137,
              0.24842998470946953
            ],
            "observed": [
              0.0,
              0.04,
              0.04,
              0.02,
              0.06,
              0.05,
              0.075,
              0.095,
              0.13,
              0.22
            ]
          },
          "ci95": {
            "average_precision": [
              0.14602271639460318,
              0.23588357680850316
            ],
            "roc_auc": [
              0.6898355649848015,
              0.7635561505825166
            ],
            "brier": [
              0.054249777490699425,
              0.07377162828049864
            ],
            "log_loss": [
              0.2087614238301579,
              0.26789096340086194
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.1785991991300209,
            "roc_auc": 0.7200166984380311,
            "brier": 0.0647465770921936,
            "log_loss": 0.24113059191265718
          },
          "metrics": {
            "average_precision": 0.1785991991300209,
            "roc_auc": 0.7200166984380311,
            "brier": 0.06453596658587542,
            "log_loss": 0.24110588584407208
          },
          "calibration_curve": {
            "predicted": [
              0.018766515338792058,
              0.030254227195690597,
              0.04312682194594054,
              0.05430825957566901,
              0.06423117433851491,
              0.07513345503517581,
              0.09050055330393299,
              0.10903622810692229,
              0.13393262654708007,
              0.2142661568186717
            ],
            "observed": [
              0.015,
              0.025,
              0.015,
              0.05,
              0.06,
              0.07,
              0.06,
              0.075,
              0.16,
              0.2
            ]
          },
          "ci95": {
            "average_precision": [
              0.14027082213181918,
              0.22564969477529262
            ],
            "roc_auc": [
              0.6818104146329512,
              0.753571754987697
            ],
            "brier": [
              0.054238496819976306,
              0.07439392561829532
            ],
            "log_loss": [
              0.21190775015671556,
              0.2684313059920729
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.39208704655386356,
            "roc_auc": 0.8446435696236202,
            "brier": 0.054699438737167046,
            "log_loss": 0.19786359319325744
          },
          "metrics": {
            "average_precision": 0.39208704655386356,
            "roc_auc": 0.8446435696236202,
            "brier": 0.05489225172416341,
            "log_loss": 0.19980366723662227
          },
          "calibration_curve": {
            "predicted": [
              0.010164849866042401,
              0.015566255513017128,
              0.02140718465437264,
              0.02855136769179577,
              0.03862838714180081,
              0.05064456885979836,
              0.06815654859849793,
              0.09687335054391907,
              0.15447904483292843,
              0.3500818271610279
            ],
            "observed": [
              0.005,
              0.01,
              0.01,
              0.02,
              0.03,
              0.02,
              0.055,
              0.065,
              0.14,
              0.375
            ]
          },
          "ci95": {
            "average_precision": [
              0.3243759157899537,
              0.4634153071752742
            ],
            "roc_auc": [
              0.8051417494302607,
              0.8773887162745999
            ],
            "brier": [
              0.04622841907727342,
              0.06315362417441443
            ],
            "log_loss": [
              0.17451891591240717,
              0.224383900228406
            ]
          }
        }
      ]
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "seed": 44,
      "intercept": -3.549701676819474,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 466
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 161
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 159
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.0795,
            "roc_auc": 0.5,
            "brier": 0.07318311111111112,
            "log_loss": 0.27756978969790824
          },
          "metrics": {
            "average_precision": 0.0795,
            "roc_auc": 0.5,
            "brier": 0.07318074923673924,
            "log_loss": 0.2775532721217377
          },
          "calibration_curve": {
            "predicted": [
              0.08049961829677334
            ],
            "observed": [
              0.0795
            ]
          },
          "ci95": {
            "average_precision": [
              0.066975,
              0.09452500000000001
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.06267226467507339,
              0.08578673570692125
            ],
            "log_loss": [
              0.2470476574662469,
              0.3141478318182444
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.21795053659347435,
            "roc_auc": 0.7136468763558225,
            "brier": 0.06886454580060525,
            "log_loss": 0.253984307118862
          },
          "metrics": {
            "average_precision": 0.21795053659347435,
            "roc_auc": 0.7136468763558225,
            "brier": 0.06896129741044385,
            "log_loss": 0.2547591095438311
          },
          "calibration_curve": {
            "predicted": [
              0.010153629869772569,
              0.019780471970324006,
              0.028461096700155553,
              0.037674567916085276,
              0.048245371509440416,
              0.06056013327934645,
              0.07908082993405968,
              0.10430944722630471,
              0.14569120924852594,
              0.26027634554716456
            ],
            "observed": [
              0.01,
              0.025,
              0.045,
              0.025,
              0.085,
              0.055,
              0.1,
              0.105,
              0.135,
              0.21
            ]
          },
          "ci95": {
            "average_precision": [
              0.17546838525510025,
              0.2795343985548209
            ],
            "roc_auc": [
              0.678895565765644,
              0.7525581387447646
            ],
            "brier": [
              0.05946787782659795,
              0.08104120874674621
            ],
            "log_loss": [
              0.2259624253113271,
              0.29257019047811944
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.16103313855887003,
            "roc_auc": 0.6724742842111376,
            "brier": 0.07161866038006798,
            "log_loss": 0.2678417508715418
          },
          "metrics": {
            "average_precision": 0.16103313855887003,
            "roc_auc": 0.6724742842111376,
            "brier": 0.07133291181143127,
            "log_loss": 0.2654509858203038
          },
          "calibration_curve": {
            "predicted": [
              0.013105993066718018,
              0.02433943851566837,
              0.03346443812358282,
              0.0423512447956521,
              0.052589935850312734,
              0.06617792866199758,
              0.08316902910346856,
              0.10597111834417178,
              0.1443783484274089,
              0.23558101623673772
            ],
            "observed": [
              0.024875621890547265,
              0.03015075376884422,
              0.045,
              0.045,
              0.055,
              0.08,
              0.12,
              0.115,
              0.125,
              0.155
            ]
          },
          "ci95": {
            "average_precision": [
              0.12139124924107002,
              0.21359473057349887
            ],
            "roc_auc": [
              0.6394787820228213,
              0.7149446179644481
            ],
            "brier": [
              0.061739597355001785,
              0.08297329292096124
            ],
            "log_loss": [
              0.23533891885589137,
              0.3004475297404274
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.3463351770369729,
            "roc_auc": 0.8251941281570381,
            "brier": 0.061726081691574994,
            "log_loss": 0.22192662684912282
          },
          "metrics": {
            "average_precision": 0.3463351770369729,
            "roc_auc": 0.8251941281570381,
            "brier": 0.06152907311596195,
            "log_loss": 0.22035588984303248
          },
          "calibration_curve": {
            "predicted": [
              0.005295303737068844,
              0.00819329704598496,
              0.011274730388547767,
              0.015526658869350245,
              0.02219282207981329,
              0.032232894758416446,
              0.04718380574396574,
              0.07690179127471235,
              0.14134355157890752,
              0.38282770886428447
            ],
            "observed": [
              0.005,
              0.01,
              0.025,
              0.02,
              0.02,
              0.075,
              0.025,
              0.08,
              0.17,
              0.365
            ]
          },
          "ci95": {
            "average_precision": [
              0.2867172720968946,
              0.4357585079643168
            ],
            "roc_auc": [
              0.7928660150008349,
              0.8581892092674142
            ],
            "brier": [
              0.05306424808187415,
              0.07285255317690746
            ],
            "log_loss": [
              0.19226472470469008,
              0.25830529262810786
            ]
          }
        }
      ]
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "seed": 45,
      "intercept": -3.4989531352555696,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 477
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 190
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 144
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.072,
            "roc_auc": 0.5,
            "brier": 0.06687225000000001,
            "log_loss": 0.2591777967979295
          },
          "metrics": {
            "average_precision": 0.072,
            "roc_auc": 0.5,
            "brier": 0.06734478293334288,
            "log_loss": 0.2621112526228822
          },
          "calibration_curve": {
            "predicted": [
              0.09499528067545009
            ],
            "observed": [
              0.072
            ]
          },
          "ci95": {
            "average_precision": [
              0.059,
              0.08452500000000002
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.05681466023090465,
              0.07749015115242279
            ],
            "log_loss": [
              0.23280778433601693,
              0.2903440172608044
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2215717575264626,
            "roc_auc": 0.7861777119252874,
            "brier": 0.06137807207123938,
            "log_loss": 0.22400188764886736
          },
          "metrics": {
            "average_precision": 0.2215717575264626,
            "roc_auc": 0.7861777119252874,
            "brier": 0.0618776475311775,
            "log_loss": 0.22681919962771382
          },
          "calibration_curve": {
            "predicted": [
              0.014457518988123698,
              0.026246512193852104,
              0.03693635455183387,
              0.04842292432337973,
              0.061518663572621056,
              0.07653716817515993,
              0.09609782164328669,
              0.12448929369872691,
              0.17006563237971498,
              0.29194832688582095
            ],
            "observed": [
              0.01,
              0.005,
              0.01,
              0.025,
              0.055,
              0.035,
              0.085,
              0.08,
              0.175,
              0.24
            ]
          },
          "ci95": {
            "average_precision": [
              0.1708196005822323,
              0.2874274986650659
            ],
            "roc_auc": [
              0.7521588428173539,
              0.8140945028603667
            ],
            "brier": [
              0.05393512468860111,
              0.07077771618291334
            ],
            "log_loss": [
              0.20468284346022345,
              0.2516848077483816
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.2104796861950944,
            "roc_auc": 0.7598703903256704,
            "brier": 0.062122976054448366,
            "log_loss": 0.22841459968865466
          },
          "metrics": {
            "average_precision": 0.2104796861950944,
            "roc_auc": 0.7598703903256704,
            "brier": 0.06252181116114472,
            "log_loss": 0.23251765008413053
          },
          "calibration_curve": {
            "predicted": [
              0.017104493337471875,
              0.028498624329571478,
              0.04328802724092824,
              0.05680635957515931,
              0.06983055524157054,
              0.08566288308922151,
              0.10442779445821676,
              0.12565753959053155,
              0.1612452141040236,
              0.2622753915883756
            ],
            "observed": [
              0.005,
              0.01,
              0.04,
              0.015,
              0.055,
              0.05,
              0.1,
              0.08,
              0.13,
              0.235
            ]
          },
          "ci95": {
            "average_precision": [
              0.16029028476134244,
              0.276611076135545
            ],
            "roc_auc": [
              0.7239517407139465,
              0.7874709912608179
            ],
            "brier": [
              0.054553110144726594,
              0.07121380659944025
            ],
            "log_loss": [
              0.21044525797443656,
              0.2566301973925295
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.4521963233437538,
            "roc_auc": 0.8726502634099618,
            "brier": 0.05162223081754028,
            "log_loss": 0.1842787767778937
          },
          "metrics": {
            "average_precision": 0.4521963233437538,
            "roc_auc": 0.8726502634099618,
            "brier": 0.05227467911900038,
            "log_loss": 0.18757714762245883
          },
          "calibration_curve": {
            "predicted": [
              0.005663524644561106,
              0.009777379121622938,
              0.014367871475507086,
              0.020779935885615806,
              0.030702807609202486,
              0.044047432164679254,
              0.06669536887607895,
              0.10611887212865845,
              0.1886077920217265,
              0.45180083962432
            ],
            "observed": [
              0.0,
              0.0,
              0.005,
              0.02,
              0.02,
              0.025,
              0.055,
              0.065,
              0.16,
              0.37
            ]
          },
          "ci95": {
            "average_precision": [
              0.37428167625710196,
              0.5225565421436451
            ],
            "roc_auc": [
              0.8444507135093031,
              0.8937815672962313
            ],
            "brier": [
              0.0452430661314408,
              0.061133563646109806
            ],
            "log_loss": [
              0.16605308564606458,
              0.21233023662334574
            ]
          }
        }
      ]
    },
    {
      "condition": "strong",
      "network_strength": 1.5,
      "seed": 46,
      "intercept": -3.5487352236105814,
      "split_counts": {
        "train": {
          "borrowers": 6000,
          "groups": 600,
          "positives": 476
        },
        "calibration": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 143
        },
        "test": {
          "borrowers": 2000,
          "groups": 200,
          "positives": 158
        }
      },
      "models": [
        {
          "name": "constant",
          "raw_metrics": {
            "average_precision": 0.079,
            "roc_auc": 0.5,
            "brier": 0.0727591111111111,
            "log_loss": 0.27632096684453256
          },
          "metrics": {
            "average_precision": 0.079,
            "roc_auc": 0.5,
            "brier": 0.07281529120657924,
            "log_loss": 0.27673117009897186
          },
          "calibration_curve": {
            "predicted": [
              0.07149725339763785
            ],
            "observed": [
              0.079
            ]
          },
          "ci95": {
            "average_precision": [
              0.066475,
              0.0930125
            ],
            "roc_auc": [
              0.5,
              0.5
            ],
            "brier": [
              0.062081297404190064,
              0.08482408068011046
            ],
            "log_loss": [
              0.24461814344196886,
              0.312658019283104
            ]
          }
        },
        {
          "name": "logistic_borrower",
          "raw_metrics": {
            "average_precision": 0.2115395918842742,
            "roc_auc": 0.7314009263458815,
            "brier": 0.06821476179883607,
            "log_loss": 0.2503010539240042
          },
          "metrics": {
            "average_precision": 0.2115395918842742,
            "roc_auc": 0.7314009263458815,
            "brier": 0.068281639863976,
            "log_loss": 0.2507017441510277
          },
          "calibration_curve": {
            "predicted": [
              0.011845324441766693,
              0.021353550051888645,
              0.02910060394944055,
              0.03751596419282156,
              0.0468221063087772,
              0.058818652273859205,
              0.07259892084701097,
              0.09346716201677102,
              0.12338684384128616,
              0.22088460272185567
            ],
            "observed": [
              0.02,
              0.015,
              0.035,
              0.03,
              0.06,
              0.07,
              0.08,
              0.105,
              0.12,
              0.255
            ]
          },
          "ci95": {
            "average_precision": [
              0.15808978194642417,
              0.2708419812390388
            ],
            "roc_auc": [
              0.6859306052596275,
              0.7698917011114692
            ],
            "brier": [
              0.0579502361711869,
              0.07887426682464627
            ],
            "log_loss": [
              0.2189568219339417,
              0.28349232981222494
            ]
          }
        },
        {
          "name": "lightgbm_borrower",
          "raw_metrics": {
            "average_precision": 0.17877790226028512,
            "roc_auc": 0.712346582553361,
            "brier": 0.07003960807842069,
            "log_loss": 0.25748549396950476
          },
          "metrics": {
            "average_precision": 0.17877790226028512,
            "roc_auc": 0.712346582553361,
            "brier": 0.06964531271951785,
            "log_loss": 0.25640010752302944
          },
          "calibration_curve": {
            "predicted": [
              0.014647140197469316,
              0.023582051830699974,
              0.033792793641665264,
              0.04380313338478861,
              0.055456486068036714,
              0.06762902904179958,
              0.08003772947441547,
              0.09534684177989165,
              0.11642302637326905,
              0.19491358473104192
            ],
            "observed": [
              0.02,
              0.025,
              0.02,
              0.07,
              0.06,
              0.05,
              0.095,
              0.075,
              0.16,
              0.215
            ]
          },
          "ci95": {
            "average_precision": [
              0.13410609864601097,
              0.22626296259585743
            ],
            "roc_auc": [
              0.6627105112353567,
              0.7547954118939262
            ],
            "brier": [
              0.059004057073724796,
              0.080437550327393
            ],
            "log_loss": [
              0.22366527122722465,
              0.2878908184288079
            ]
          }
        },
        {
          "name": "lightgbm_graph",
          "raw_metrics": {
            "average_precision": 0.411868708252359,
            "roc_auc": 0.8458781731469647,
            "brier": 0.05834188366255234,
            "log_loss": 0.2090801198708195
          },
          "metrics": {
            "average_precision": 0.411868708252359,
            "roc_auc": 0.8458781731469647,
            "brier": 0.05834585931326522,
            "log_loss": 0.2083164008339339
          },
          "calibration_curve": {
            "predicted": [
              0.00670565750113013,
              0.009197799591991806,
              0.012538573787142135,
              0.016773512842984027,
              0.023379240011352435,
              0.034093346351440255,
              0.051849593355492274,
              0.08518739078125571,
              0.1540781616713323,
              0.34103490882200427
            ],
            "observed": [
              0.0,
              0.015,
              0.01,
              0.02,
              0.03,
              0.04,
              0.05,
              0.075,
              0.185,
              0.365
            ]
          },
          "ci95": {
            "average_precision": [
              0.32762513223881856,
              0.5015309734056556
            ],
            "roc_auc": [
              0.8126169034423297,
              0.8750358228772757
            ],
            "brier": [
              0.0500316800569834,
              0.06754444820870406
            ],
            "log_loss": [
              0.17976847387132888,
              0.23641372089937931
            ]
          }
        }
      ]
    }
  ]
}
