tests/test.sh exit code (0 → resolved); the classification below is post-hoc and cannot change it.ls -la /workspace/app/ /workspace/
/workspace/: total 19 drwxrws--- 4 h2tagent h2tagent 4096 Jun 1 08:53 . drwxr-xr-x 28 root root 4096 Jun 1 09:33 .. -rw-rw---- 1 h2tagent h2tagent 2821 Jun 1 08:20 analysis.R drwxrws--- 2 h2tagent h2tagent 4096 Jun 1 08:53 app drwxrws--- 2 h2tagent h2tagent 4096 Jun 1 08:53 output /workspace/app/: total 424 drwxrws--- 2 h2tagent h2tagent 4096 Jun 1 08:53 . drwxrws--- 4 h2tagent h2tagent 4096 Jun 1 08:53 .. -rw-rw---- 1 h2tagent h2tagent 1725 Jun 1 08:20 dataset_manifest.json -rw-rw---- 1 h2tagent h2tagent 423783 Jun 1 08:20 lgd_workouts_source.csv
cat /workspace/analysis.R
#!/usr/bin/env Rscript
# LGD analysis , DRAFT. Audit and finish.
suppressPackageStartupMessages({
library(readr); library(dplyr); library(tidyr); library(jsonlite); library(ggplot2)
})
LGD_PATH <- Sys.getenv("LGD_PATH", "/workspace/app/lgd_workouts_source.csv")
OUT <- Sys.getenv("LGD_OUTPUT_DIR", "/workspace/output")
dir.create(OUT, showWarnings = FALSE, recursive = TRUE)
df <- read_csv(LGD_PATH, show_col_types = FALSE)
# Naive LGD over all rows (this is the biased baseline)
df <- df %>% mutate(observed_lgd = 1 - recovered_amount / principal_at_default)
naive_lgd <- mean(df$observed_lgd)
# "corrected" , but the draft uses ALL rows again, just trimming outliers
corrected_lgd <- mean(df$observed_lgd[df$observed_lgd > 0.0 & df$observed_lgd < 1.0])
# bootstrap on the wrong (full) dataset , and only 200 reps
set.seed(20260606)
boot <- replicate(200, mean(sample(df$observed_lgd, replace = TRUE)))
ci_lo <- quantile(boot, 0.025); ci_hi <- quantile(boot, 0.975)
bg <- df %>% group_by(grade) %>% summarise(corrected_lgd = mean(observed_lgd), .groups = "drop")
bp <- df %>% group_by(purpose) %>% summarise(corrected_lgd = mean(observed_lgd), .groups = "drop")
panel <- df %>% group_by(grade, purpose) %>%
summarise(n_total = n(), n_resolved = sum(is_resolved),
naive_lgd = mean(observed_lgd),
corrected_lgd = mean(observed_lgd), .groups = "drop")
write_csv(panel, file.path(OUT, "lgd_panel.csv"))
bias_diff <- naive_lgd - corrected_lgd
direction <- if (abs(bias_diff) < 0.05) "close" else if (bias_diff > 0) "materially_overestimates" else "materially_underestimates"
metrics <- list(
data_summary = list(n_total = nrow(df), n_resolved = sum(df$is_resolved),
n_censored = nrow(df) - sum(df$is_resolved),
share_resolved = mean(df$is_resolved)),
naive_lgd = list(value = naive_lgd),
corrected_lgd = list(value = corrected_lgd),
bootstrap_ci = list(ci_low = unname(ci_lo), ci_high = unname(ci_hi)),
lgd_by_grade = setNames(as.list(bg$corrected_lgd), bg$grade),
lgd_by_purpose = setNames(as.list(bp$corrected_lgd), bp$purpose),
bias_assessment = list(naive_minus_corrected = bias_diff, direction = direction)
)
write_json(metrics, file.path(OUT, "metrics.json"), auto_unbox = TRUE,
digits = 6, pretty = TRUE)
cat(paste0("Naive LGD: ", round(naive_lgd, 3),
"\nCorrected: ", round(corrected_lgd, 3),
"\nDirection: ", direction, "\n"),
file = file.path(OUT, "insights.md"))
write_json(list(figures = list()), file.path(OUT, "plot_contract.json"),
auto_unbox = TRUE, pretty = TRUE)
png(file.path(OUT, "fig1_lgd_by_grade.png"), width = 600, height = 400); plot.new(); dev.off()
png(file.path(OUT, "fig2_naive_vs_corrected.png"), width = 600, height = 400); plot.new(); dev.off()cat /workspace/app/dataset_manifest.json
{
"dataset_name": "Defaulted-loan workout panel for Loss Given Default modelling",
"source": "Calibrated to Lending Club historical loan-level disclosures of defaulted accounts and their post-default workout ledger (https://www.lendingclub.com/info/statistics.action , historical bulk files).",
"license": "Synthetic but matches the Lending Club workout schema for grading.",
"columns": {
"loan_id": "Anonymous loan identifier.",
"grade": "Lending Club grade A-G assigned at origination.",
"purpose": "Borrower-stated loan purpose.",
"home_ownership": "RENT / OWN / MORTGAGE.",
"principal_at_default": "Outstanding principal at the moment of default (USD).",
"default_month": "Months from origination to default.",
"workout_months_observed": "Months of post-default observation in the panel.",
"time_to_resolution": "Months from default to terminal resolution (recovery curve flat-lines).",
"is_resolved": "1 if workout_months_observed >= time_to_resolution; else 0 (right-censored workout).",
"recovered_amount": "Cumulative dollars recovered as of the as-of date (USD).",
"annual_inc": "Borrower annual income at origination."
},
"definitions": {
"lgd": "LGD = 1 - recovered_amount / principal_at_default , only valid when is_resolved == 1.",
"censoring": "Rows with is_resolved == 0 are right-censored: their LGD is incompletely observed. Censored rows have partial recovery, so recovered_amount understates the true terminal recovery , a naive mean of recovered/principal is biased downward, and therefore LGD = 1 - recovered/principal is biased upward (naive overestimates true LGD). Restrict to resolved workouts or model the cure mechanism."
}
}head -3 /workspace/app/lgd_workouts_source.csv echo "---" wc -l /workspace/app/lgd_workouts_source.csv
loan_id,grade,purpose,home_ownership,principal_at_default,default_month,workout_months_observed,time_to_resolution,is_resolved,recovered_amount,annual_inc LC0000000,C,small_business,MORTGAGE,9248.9,12,16,8,1,2351.97,37618.14 LC0000001,A,debt_consolidation,RENT,14442.6,10,25,15,1,7783.99,135186.3 --- 6001 /workspace/app/lgd_workouts_source.csv
Rscript -e '
df <- readr::read_csv("/workspace/app/lgd_workouts_source.csv", show_col_types=FALSE)
cat("rows:", nrow(df),"\n")
cat("n_resolved:", sum(df$is_resolved), "\n")
cat("share_resolved:", mean(df$is_resolved), "\n")
df$obs_lgd <- 1 - df$recovered_amount / df$principal_at_default
cat("naive (all):", mean(df$obs_lgd), "\n")
cat("corrected (resolved):", mean(df$obs_lgd[df$is_resolved==1]), "\n")
cat("grades:", paste(sort(unique(df$grade)), collapse=","), "\n")
cat("purposes:", paste(sort(unique(df$purpose)), collapse=","), "\n")
'
rows: 6000 n_resolved: 3185 share_resolved: 0.5308333 naive (all): 0.677057 corrected (resolved): 0.5651259 grades: A,B,C,D,E,F,G purposes: credit_card,debt_consolidation,home_improvement,major_purchase,other,small_business
Rscript -e '
df <- readr::read_csv("/workspace/app/lgd_workouts_source.csv", show_col_types=FALSE)
df$obs <- 1 - df$recovered_amount / df$principal_at_default
n <- mean(df$obs); c <- mean(df$obs[df$is_resolved==1])
cat("naive:",round(n,4),"corrected:",round(c,4),"diff:",round(n-c,4),"\n")
'
naive: 0.6771 corrected: 0.5651 diff: 0.1119
command: create
path: /workspace/analysis.R
file_text: #!/usr/bin/env Rscript
# LGD analysis , corrected specification.
#
# Key correction vs. draft:
# * The naive LGD is mean(1 - recovered/principal) over ALL rows.
# Censored rows (is_resolved == 0) have incomplete recoveries, so their
# observed recovery ratio understates the eventual recovery, which
# inflates the implied LGD. Taking the mean over all rows is therefore
# biased UPWARD (overestimates LGD).
# * The corrected LGD restricts the mean to is_resolved == 1 rows where
# recovery curves have flat-lined and LGD is fully observed.
suppressPackageStartupMessages({
library(readr)
library(dplyr)
library(tidyr)
library(jsonlite)
library(ggplot2)
})
LGD_PATH <- Sys.getenv("LGD_PATH", "/workspace/app/lgd_workouts_source.csv")
OUT <- Sys.getenv("LGD_OUTPUT_DIR", "/workspace/output")
dir.create(OUT, showWarnings = FALSE, recursive = TRUE)
df <- read_csv(LGD_PATH, show_col_types = FALSE)
# ---------------------------------------------------------------------------
# Observed LGD on every row (this is the RAW per-row number; mean of it on
# the full dataset is the biased naive baseline).
# ---------------------------------------------------------------------------
df <- df %>% mutate(observed_lgd = 1 - recovered_amount / principal_at_default)
resolved_df <- df %>% filter(is_resolved == 1)
naive_lgd <- mean(df$observed_lgd)
corrected_lgd <- mean(resolved_df$observed_lgd)
# ---------------------------------------------------------------------------
# Paired bootstrap over resolved loans ONLY , 1000 resamples.
# ---------------------------------------------------------------------------
resolved_lgd_vec <- resolved_df$observed_lgd
B <- 1000L
set.seed(20260606)
boot_means <- replicate(B, mean(sample(resolved_lgd_vec,
size = length(resolved_lgd_vec),
replace = TRUE)))
ci_low <- unname(quantile(boot_means, 0.025))
ci_high <- unname(quantile(boot_means, 0.975))
# ---------------------------------------------------------------------------
# Corrected (resolved-only) means per grade and per purpose.
# ---------------------------------------------------------------------------
by_grade <- resolved_df %>%
group_by(grade) %>%
summarise(corrected_lgd = mean(observed_lgd), .groups = "drop") %>%
arrange(grade)
by_purpose <- resolved_df %>%
group_by(purpose) %>%
summarise(corrected_lgd = mean(observed_lgd), .groups = "drop") %>%
arrange(purpose)
# ---------------------------------------------------------------------------
# Grade × purpose panel.
# naive_lgd : mean over ALL rows in the cell (baseline, biased).
# corrected_lgd : mean over resolved rows in the cell. NaN only when
# the cell has zero resolved loans (spec allows this).
# ---------------------------------------------------------------------------
panel_all <- df %>%
group_by(grade, purpose) %>%
summarise(n_total = n(),
n_resolved = sum(is_resolved),
naive_lgd = mean(observed_lgd),
.groups = "drop")
panel_res <- resolved_df %>%
group_by(grade, purpose) %>%
summarise(corrected_lgd = mean(observed_lgd), .groups = "drop")
panel <- panel_all %>%
left_join(panel_res, by = c("grade", "purpose")) %>%
arrange(grade, purpose)
# Guarantee the spec: every cell with n_resolved > 0 has a real number.
stopifnot(all(!is.na(panel$corrected_lgd[panel$n_resolved > 0])))
write_csv(panel, file.path(OUT, "lgd_panel.csv"))
# ---------------------------------------------------------------------------
# Bias assessment.
# ---------------------------------------------------------------------------
bias_diff <- naive_lgd - corrected_lgd
direction <- if (naive_lgd < corrected_lgd - 0.05) {
"materially_underestimates"
} else if (naive_lgd > corrected_lgd + 0.05) {
"materially_overestimates"
} else {
"close"
}
# -----------------
…[truncated]Existing file was successfully overwritten at /workspace/analysis.R
cd /workspace && rm -rf output && LGD_PATH=/workspace/app/lgd_workouts_source.csv LGD_OUTPUT_DIR=/workspace/output Rscript /workspace/analysis.R
n_total=6000 n_resolved=3185 naive=0.6771 corrected=0.5651 CI=[0.5577,0.5727] dir=materially_overestimates
ls -la /workspace/output/ && echo "---" && cat /workspace/output/metrics.json
total 61
drwxr-sr-x 2 h2tagent h2tagent 4096 Jun 1 09:34 .
drwxrws--- 4 h2tagent h2tagent 4096 Jun 1 09:34 ..
-rw-r--r-- 1 h2tagent h2tagent 24052 Jun 1 09:34 fig1_lgd_by_grade.png
-rw-r--r-- 1 h2tagent h2tagent 23865 Jun 1 09:34 fig2_naive_vs_corrected.png
-rw-r--r-- 1 h2tagent h2tagent 642 Jun 1 09:34 insights.md
-rw-r--r-- 1 h2tagent h2tagent 2592 Jun 1 09:34 lgd_panel.csv
-rw-r--r-- 1 h2tagent h2tagent 865 Jun 1 09:34 metrics.json
-rw-r--r-- 1 h2tagent h2tagent 906 Jun 1 09:34 plot_contract.json
---
{
"data_summary": {
"n_total": 6000,
"n_resolved": 3185,
"n_censored": 2815,
"share_resolved": 0.53083333333
},
"naive_lgd": {
"value": 0.67705699959
},
"corrected_lgd": {
"value": 0.56512588377
},
"bootstrap_ci": {
"ci_low": 0.55767503447,
"ci_high": 0.57265928306
},
"lgd_by_grade": {
"A": 0.43529755197,
"B": 0.49919224858,
"C": 0.57150846686,
"D": 0.65262140509,
"E": 0.71929621853,
"F": 0.79746681993,
"G": 0.84954798922
},
"lgd_by_purpose": {
"credit_card": 0.591114101,
"debt_consolidation": 0.54887666958,
"home_improvement": 0.54207074076,
"major_purchase": 0.61012939345,
"other": 0.54548081207,
"small_business": 0.6255756025
},
"bias_assessment": {
"naive_minus_corrected": 0.11193111581,
"direction": "materially_overestimates"
}
}cat /workspace/output/plot_contract.json
{
"figures": [
{
"name": "fig1_lgd_by_grade",
"series": [
{
"label": "A",
"value": 0.43529755197
},
{
"label": "B",
"value": 0.49919224858
},
{
"label": "C",
"value": 0.57150846686
},
{
"label": "D",
"value": 0.65262140509
},
{
"label": "E",
"value": 0.71929621853
},
{
"label": "F",
"value": 0.79746681993
},
{
"label": "G",
"value": 0.84954798922
}
]
},
{
"name": "fig2_naive_vs_corrected",
"series": [
{
"label": "naive_all_rows",
"value": 0.67705699959
},
{
"label": "corrected_resolved",
"value": 0.56512588377
}
]
}
]
}cat /workspace/output/lgd_panel.csv | head -20 echo "---" echo "Total rows:" wc -l /workspace/output/lgd_panel.csv echo "--- insights.md ---" cat /workspace/output/insights.md
grade,purpose,n_total,n_resolved,naive_lgd,corrected_lgd A,credit_card,219,136,0.5607065958509241,0.45012049865070586 A,debt_consolidation,564,297,0.5702761415442725,0.4202599413316665 A,home_improvement,114,64,0.5292722852167128,0.4073998487935503 A,major_purchase,67,35,0.6368190733531681,0.5021729573367807 A,other,90,52,0.5730028339585355,0.4161251086238681 A,small_business,86,44,0.6524850156856171,0.501025517461768 B,credit_card,321,165,0.6650274867660854,0.5529570202359294 B,debt_consolidation,796,431,0.6046227193564916,0.4831736900891306 B,home_improvement,144,72,0.5957294070774534,0.4692244006760461 B,major_purchase,92,47,0.6660533581869653,0.5058966135004026 B,other,147,76,0.6134946055553012,0.4707940973640627 B,small_business,107,62,0.6406465639242245,0.5319930675458743 C,credit_card,278,137,0.6975732212004435,0.5846765821152625 C,debt_consolidation,689,376,0.6700856143560795,0.5627652371775993 C,home_improvement,140,81,0.6725210332547668,0.5523445244469769 C,major_purchase,86,38,0.7189961393361699,0.6135765359011776 C,other,108,55,0.6702128871263167,0.5494833684419389 C,small_business,88,46,0.7149621821285365,0.6290844602873757 D,credit_card,215,115,0.7655060220713419,0.6766756615218997 --- Total rows: 43 /workspace/output/lgd_panel.csv --- insights.md --- # LGD read , portfolio findings The naive portfolio LGD, computed as mean(1 - recovered / principal) over **all 6000 defaulted loans**, is **0.677**. Restricting to the **3185 resolved workouts** (where recoveries have flat-lined and LGD is fully observed) gives a corrected portfolio LGD of **0.565** (95% bootstrap CI [0.558, 0.573], B = 1000). The naive estimator overstates the true LGD by 0.112 in absolute terms (direction = `materially_overestimates`). Censored rows carry partial recoveries, so their implied LGD is artificially high; averaging them in inflates the portfolio LGD. The defensible read is the resolved-only figure.
Rscript -e '
p <- readr::read_csv("/workspace/output/lgd_panel.csv", show_col_types=FALSE)
cat("cells with n_resolved>0:", sum(p$n_resolved > 0), "\n")
cat("NaN in corrected where n_resolved>0:", sum(is.nan(p$corrected_lgd[p$n_resolved > 0])), "\n")
cat("NA in corrected where n_resolved>0:", sum(is.na(p$corrected_lgd[p$n_resolved > 0])), "\n")
cat("min n_resolved:", min(p$n_resolved), "\n")
'
echo "--- PNG dims ---"
python3 -c "
from PIL import Image
for f in ['fig1_lgd_by_grade.png','fig2_naive_vs_corrected.png']:
im = Image.open(f'/workspace/output/{f}')
print(f, im.size)
"cells with n_resolved>0: 42 NaN in corrected where n_resolved>0: 0 NA in corrected where n_resolved>0: 0 min n_resolved: 4 --- PNG dims --- fig1_lgd_by_grade.png (840, 540) fig2_naive_vs_corrected.png (840, 540)
grep -nE 'file\.copy|file\.rename|file\.link|file\.symlink|file\.append|\bsystem\(|\bsystem2\(|\bshell\(|\bpipe\(|saveRDS|writeBin|as\.raw|\bsink\(|readRDS|readBin|\bload\(' /workspace/analysis.R || echo "CLEAN: no forbidden APIs"CLEAN: no forbidden APIs
# Simulate the grader running it twice (public then hidden) , deterministic seed means bootstrap CI must be stable.
cd /workspace
rm -rf output
LGD_PATH=/workspace/app/lgd_workouts_source.csv LGD_OUTPUT_DIR=/workspace/output Rscript /workspace/analysis.R
md5_1=$(md5sum /workspace/output/metrics.json | awk '{print $1}')
LGD_PATH=/workspace/app/lgd_workouts_source.csv LGD_OUTPUT_DIR=/workspace/output Rscript /workspace/analysis.R
md5_2=$(md5sum /workspace/output/metrics.json | awk '{print $1}')
echo "run1 md5: $md5_1"
echo "run2 md5: $md5_2"
[ "$md5_1" = "$md5_2" ] && echo "DETERMINISTIC ✓" || echo "NOT deterministic ✗"n_total=6000 n_resolved=3185 naive=0.6771 corrected=0.5651 CI=[0.5577,0.5727] dir=materially_overestimates n_total=6000 n_resolved=3185 naive=0.6771 corrected=0.5651 CI=[0.5577,0.5727] dir=materially_overestimates run1 md5: 264043407aad5f8935f0c32397936b79 run2 md5: 264043407aad5f8935f0c32397936b79 DETERMINISTIC ✓
command: view path: /workspace/output/fig1_lgd_by_grade.png
<output_image> …[truncated]
command: view path: /workspace/output/fig2_naive_vs_corrected.png
<output_image> …[truncated]
No file changes, the agent left the workspace untouched.
# SyncVals normalized verifier summary # task: lending-club-lgd-bias-correction-r # attempt: 4 status: completed raw_score: 0.0 # reward rule: binary: score 0.0 != 1.0 # => reward = 0.0 (FAIL) # # Note: these tasks score via an external hidden grader; no pytest/verifier # block is embedded in the agent transcript. The block below is the last # sizable tool-output captured in the run (supporting evidence). ---------------------------------------------------------------------- <output_image> …[truncated]
Reproduce this trial: git checkout 2f94510 && PYTHONPATH=src python3 scripts/build_site.py , then open trial/trial_254d16bb02724005. Re-running the agent live requires EVAL_PLATFORM_ENABLE_OAUTH_SMOKE=1 and is non-deterministic.
Trial trial_254d16bb02724005 · verifier authoritative; classifier explanatory.