The published Goti (2018) and Carreno (2017) two-compartment vancomycin population models were each derived from their own small, specific study cohorts (Goti: general adult inpatients; Carreno: 12 severely obese, BMI≥40 patients). This page documents the step-by-step process used to test whether each model's total clearance (CL) relationship to creatinine clearance (CrCl) could be re-calibrated to better fit this institution's own patient population, using the app's Model Building & Improvement tool — and the statistical and clinical checks performed before adding the results as selectable Goti Optimized and Carreno Optimized options on the PK Fitting and Initial Dosing pages.
Nothing about the original, published Goti and Carreno models was changed. Both remain available exactly as before; the optimized variants are additional, separately selectable options.
As explained on the Two Compartment vs One Compartment With Trough Only Data and Two Compartment Modeling with Sparse Data pages, most of this institution's vancomycin levels are troughs. Trough-dominant data reliably identifies total clearance (CL) — since Css,avg = Dose / (CL × τ) — but cannot reliably separate the central volume (Vc), peripheral volume (Vp), and inter-compartmental clearance (Q) from one another.
Decision: hold Vc, Vp, and Q fixed at each model's published population values, and let only the CL-vs-CrCl relationship (slope and intercept) be re-estimated from local data.
The Model Building & Improvement optimizer enforces a min/max bound on every parameter. The first exploratory runs (peripheral parameters pinned, CL slope/intercept free) converged with the CL slope sitting exactly at the upper bound of its allowed range — a classic sign that the true, unconstrained optimum lies even higher, and the reported value is an artifact of the bound rather than a genuine answer.
Fix: the CL slope upper bound was widened substantially and the optimization re-run. Once the result converged to an interior value (not pinned against either bound), it was treated as trustworthy.
As a sensitivity check, Vc was also freed (instead of pinned) in a separate run. For both models this immediately produced the same identifiability problem described in Step 1: Vc and CL (or Vc and Q, when Q was freed too) traded off against each other, with one parameter pegged at its lower bound while another pegged at its upper bound — the signature of collinear, non-identifiable parameters rather than a genuine population difference.
Decision: keep Vc (and Vp, Q) at each model's published value. Only the CL slope/intercept are updated. This is the more conservative, minimal-change choice, and avoids adopting a Vc estimate that the data cannot actually support.
All tables on this page were generated using only each patient's first drug level (the "Only First Level" option on the Model Building & Improvement page), rather than requiring 2 or more levels per patient. This produces a substantially larger, less-selected validation cohort (383 patients for each model, versus roughly 107 when requiring 2+ levels) and serves as an independent robustness check on the smaller, richer-data cohort used during the exploratory bound-widening in Steps 2–3 — confirming the direction and approximate magnitude of the CL-slope change were not an artifact of a smaller, hand-picked subset of patients.
A unit error was subsequently found in how the published Goti clearance equation had
been implemented: CL = 4.5 × (CrCl / 120)0.8 is a
power-law relationship (exponent 0.8), but the code computed it as a plain linear multiple
of CrCl (exponent 1, i.e. CL = 0.0375 × CrCl). This was corrected in
twocompartmentcalculations.py (used by PK Fitting, Initial Dosing, and batch
fitting) and in the Model Building & Improvement optimizer itself, which now fits a
coefficient on CrCl0.8 rather than on raw CrCl.
This changes the Goti-related numbers on this page. Every Goti table below was regenerated after the fix, using the same methodology as before (Vc/Vp/Q pinned at Goti's published values, "Only First Level" cohort, CL slope bounded to [0, 0.4] and CL intercept to [0, 1]). The published Carreno equation was already linear in CrCl and is unaffected — Carreno's tables below are unchanged.
| Model | Parameter | Published Value | Optimized Value (First-Level-Only Cohort) | Change |
|---|---|---|---|---|
| Goti | Vc coefficient (L/kg) | 0.8343 | 0.8343 (fixed) | — |
| Vp (L) | 38.4 | 38.4 (fixed) | — | |
| Q (L/hr) | 6.5 | 6.5 (fixed) | — | |
| CL coefficient (× CrCl0.8) | 0.0978 | 0.1835 | +87.8% | |
| CL intercept (L/hr) | 0.0 | ≈0.0 | — | |
| Carreno | Vc (L, fixed) | 25.76 | 25.76 (fixed) | — |
| Vp (L) | 40.96 | 40.96 (fixed) | — | |
| Q (L/hr) | 58.99 | 58.99 (fixed) | — | |
| CL slope (per mL/min CrCl) | 0.0360 | 0.0708 | +96.7% | |
| CL intercept (L/hr) | 0.18 | 0.1948 | +0.0148 |
Note: the GotiOptimized option implemented in the app
uses CL = 0.17733 × CrCl0.8 (intercept fixed at 0)
— derived from a dedicated run with Vc/Vp/Q pinned at Goti's
published means and CL slope/intercept bounded to [0, 0.4] / [0, 1]. The
first-level-only validation rerun on this page (383 patients, same bounds) converged to
a very similar coefficient (0.1835, ≈3% higher) — a modest run-to-run
difference typical of Nelder-Mead optimization on a large cohort, and itself a useful
corroboration rather than a discrepancy to resolve. The CarrenoOptimized
option (CL = 0.074 × CrCl, intercept fixed at 0) is unaffected by the Goti
exponent correction, since Carreno's published equation was already linear in CrCl.
| Metric | Goti → Goti Optimized | Carreno → Carreno Optimized |
|---|---|---|
| Mean per-patient RMSE (published → optimized) | 6.41 → 4.52 mg/L | 10.14 → 4.21 mg/L |
| Paired t-test | t=5.59, df=382, p<0.001 | t=14.82, df=382, p<0.001 |
| Wilcoxon signed-rank test | p<0.001 | p<0.001 |
| Cohen's d (effect size) | 0.45 (Small) | 1.22 (Large) |
| Patients improved / worsened / unchanged | 225 / 158 / 0 (58.7% improved) | 293 / 90 / 0 (76.5% improved) |
| Category | Goti (published → optimized) | Carreno (published → optimized) |
|---|---|---|
| Therapeutic (400–600) | 83.0% → 97.4% | 78.3% → 94.3% |
| Sub-therapeutic (<400) | 8.6% → 1.6% | 8.9% → 2.9% |
| Supra-therapeutic (>600) | 8.4% → 1.0% | 12.8% → 2.9% |
| Mean AUC24 (mg·hr/L) | 507.1 → 501.1 | 514.0 → 501.3 |
Computed by having each model (published vs. optimized) recommend its own AUC-targeted dose (rounded to the nearest 250 mg vial size) and checking the resulting AUC — this isolates the effect of the CL formula itself and is not a comparison against historically-prescribed doses.
Because the optimized CL formulas predict substantially higher clearance at a given CrCl, the AUC-targeted dose recommended by each optimized model is correspondingly larger — roughly double, on average, under the published Goti/Carreno formulas.
| Metric | Goti → Goti Optimized | Carreno → Carreno Optimized |
|---|---|---|
| Mean recommended dose | 632.5 → 1182.8 mg (+91.2%) | 587.5 → 1108.4 mg (+89.8%) |
| Patients with >30% dose change | 96.9% | 93.5% |
| Direction of change | 371 increase / 0 decrease / 12 unchanged | 358 increase / 0 decrease / 25 unchanged |
This is the single most important caveat on this page. A change of this magnitude, affecting nearly every patient in the same direction, should be corroborated against real, recently-prescribed doses at this institution before being treated as a universal recommendation — see Step 4 and the Limitations card below.
RMSE improvement (published → optimized model) stratified by renal function (KDIGO CKD stage), body-mass index category, and age group.
Carreno Optimized improves every subgroup in this larger, independent first-level-only cohort, including Normal BMI — this finding is unchanged by Step 5 (Carreno's equation was already linear) and supports the earlier conclusion that Carreno's one negative subgroup result in the smaller (2+ level) exploratory cohort was most likely a small-sample artifact (n=27), not a persistent weakness.
Goti Optimized, after the CrCl0.8 correction in Step 5, no longer improves every subgroup uniformly: CKD 4, Underweight, and Normal BMI patients show a small RMSE worsening (−1% to −18%), while every other subgroup still improves substantially (up to +61%). This is a genuinely new finding from the corrected formula, not a reproduction artifact — worth keeping in mind if Goti Optimized is used for underweight or normal-weight patients with advanced CKD.
| Subgroup | N | RMSE (published) | RMSE (optimized) | Improvement |
|---|---|---|---|---|
| By CKD Stage | ||||
| CKD 1-2 (≥60 mL/min) | 135 | 7.51 | 4.67 | +37.8% |
| CKD 3a (45–59) | 70 | 7.30 | 4.80 | +34.3% |
| CKD 3b (30–44) | 83 | 5.89 | 3.73 | +36.7% |
| CKD 4 (15–29) | 78 | 4.68 | 4.90 | −4.7% |
| CKD 5 (<15) | 17 | 4.36 | 4.30 | +1.4% |
| By BMI Category | ||||
| Underweight (<18.5) | 28 | 3.24 | 3.83 | −18.0% |
| Normal (18.5–24.9) | 109 | 4.76 | 4.89 | −2.8% |
| Overweight (25–29.9) | 109 | 5.69 | 4.76 | +16.2% |
| Obese I (30–34.9) | 62 | 8.35 | 3.22 | +61.4% |
| Obese II (35–39.9) | 39 | 8.32 | 4.38 | +47.3% |
| Obese III (≥40) | 36 | 10.61 | 5.57 | +47.5% |
| By Age Group | ||||
| 18–39 years | 28 | 9.92 | 4.98 | +49.8% |
| 40–59 years | 97 | 8.05 | 4.44 | +44.8% |
| 60–79 years | 171 | 6.01 | 4.78 | +20.4% |
| ≥80 years | 87 | 4.24 | 3.93 | +7.1% |
| Subgroup | N | RMSE (published) | RMSE (optimized) | Improvement |
|---|---|---|---|---|
| By CKD Stage | ||||
| CKD 1-2 (≥60 mL/min) | 135 | 9.77 | 4.96 | +49.2% |
| CKD 3a (45–59) | 70 | 11.26 | 4.47 | +60.3% |
| CKD 3b (30–44) | 83 | 10.45 | 3.42 | +67.2% |
| CKD 4 (15–29) | 78 | 9.43 | 3.88 | +58.9% |
| CKD 5 (<15) | 17 | 10.23 | 2.49 | +75.7% |
| By BMI Category | ||||
| Underweight (<18.5) | 28 | 6.06 | 2.89 | +52.3% |
| Normal (18.5–24.9) | 109 | 7.38 | 4.58 | +38.0% |
| Overweight (25–29.9) | 109 | 9.17 | 4.40 | +52.0% |
| Obese I (30–34.9) | 62 | 12.41 | 3.05 | +75.4% |
| Obese II (35–39.9) | 39 | 12.87 | 4.09 | +68.3% |
| Obese III (≥40) | 36 | 17.73 | 5.68 | +68.0% |
| By Age Group | ||||
| 18–39 years | 28 | 12.67 | 5.23 | +58.7% |
| 40–59 years | 97 | 11.06 | 4.28 | +61.3% |
| 60–79 years | 171 | 10.10 | 4.58 | +54.7% |
| ≥80 years | 87 | 8.37 | 3.08 | +63.2% |
GotiOptimized and CarrenoOptimized options are
additive, selectable choices on the PK Fitting and Initial Dosing pages — the
original published Goti and Carreno models remain fully available and unchanged.