Lesson 81: Borrow Renewal Dispute Scorecard for Revenue and Safety Exposure Before the Executive Readout in RPG Live-Ops
Direct answer: A borrow renewal dispute scorecard takes every borrow_row_id from Lesson 80 whose return_status is open, disputed, or past borrow_due_utc without a renewal row, ranks them by revenue at risk and safety exposure, and requires a merge-or-return decision (or an approved renewal with new approvers) before the Lesson 78 readout. You ship a short policy, one CSV, and a one-page decision agenda.
Cross-lane borrows are legitimate when spare cap exists, but they create inter-lane dependency. When borrow_due_utc passes or parties disagree, the org needs a single ordered list so producers do not negotiate in silos while release posture drifts.
This lesson gives you a scorecard that is explicit, lightweight, and tied to IDs you already maintain.

What this lesson solves
You need:
- A policy defining which borrows appear on the scorecard and how ranks tie-break
- A
waiver_borrow_renewal_dispute_scorecard.csvthat is regenerated from the borrow ledger, not hand-edited for truth - A readout gate that blocks “all clear” on the Lesson 78 deck if the top N rows are still unresolved
Prerequisites: Lesson 80 borrow ledger columns and dispute routing, plus Lesson 79 portfolio cap context.
Expected time: about 100 minutes including one scored tabletop dry run.
What you will build
waiver_borrow_renewal_dispute_scorecard_policy.mdwaiver_borrow_renewal_dispute_scorecard.csv(derived snapshot; replace rows each run)- A merge-or-return agenda template your release captain can paste into the readout doc
Step 1 - Define inclusion rules on the scorecard
Include a borrow row when any is true:
return_status = openand now is afterborrow_due_utcreturn_status = disputedreturn_status = openand now is within 72 hours ofborrow_due_utc(early-warning band)
Exclude rows already returned or cleanly renewed with a renewal row that satisfies Lesson 80 renewal rules.
Optional exclude (policy flag): borrows under micro unit weight when revenue and safety multipliers are both below policy floors, so the scorecard stays executive-sized.
Step 2 - Author the scorecard policy
In waiver_borrow_renewal_dispute_scorecard_policy.md, document:
- Primary sort key:
composite_risk_score(see Step 3) descending - Tie-breakers in order: days past
borrow_due_utcdescending, thenrevenue_at_risk_usddescending, thenborrower_lanename (stable lexicographic) if you need deterministic ordering across tools - Cap on surfaced rows: example top 15 each cycle unless incident expands the window
- Decision outcomes allowed:
merge_factors,return_capacity_now,renew_with_new_approvers,early_recall_to_donor,escalate_to_lesson_73_owner - Evidence hooks: every surfaced row must cite
borrow_row_idand the latest portfolio ledger generation ID used for cap math
Step 3 - Compute ranking fields
For each included borrow row, derive:
| Field | Meaning |
|---|---|
borrow_row_id |
From Lesson 80 ledger |
borrower_lane, donor_lane |
Lane labels |
days_past_due |
max(0, floor hours(now - borrow_due_utc) / 24) |
revenue_at_risk_usd |
Revenue tied to features gated by the borrower lane until borrow resolves; use your forecasting slice from commerce analytics |
safety_exposure_score |
0-100 from incident-ready posture (crash rate proxy, cert risk, or regulatory lane pressure); reuse Lesson 72 reliability bands if you already map numeric scores |
composite_risk_score |
Policy-defined blend, example: 0.55 * normalized(revenue_at_risk_usd) + 0.35 * safety_exposure_score + 0.10 * min(days_past_due * 5, 100) |
Normalize revenue using your quarterly forecast denominator so one blockbuster SKU does not swamp the chart without review.
Step 4 - Author waiver_borrow_renewal_dispute_scorecard.csv
Snapshot schema (one row per surfaced borrow):
| column | purpose |
|---|---|
scorecard_cycle_id |
monotonic id for this generation |
borrow_row_id |
foreign key to borrow ledger |
borrow_reason_ref |
factor or ticket pointer |
revenue_at_risk_usd |
numeric |
safety_exposure_score |
0-100 |
days_past_due |
integer |
composite_risk_score |
final sort key |
decision_due_utc |
must be before next Lesson 78 readout start |
proposed_outcome |
empty until the decision meeting; then merge_factors, return_capacity_now, etc. |
decision_owner |
named captain |
Treat this CSV as generated output. Source of truth stays the append-only borrow ledger from Lesson 80.
Step 5 - Run the merge-or-return agenda before the readout
Agenda for each top row (max seven minutes each):
- Read
borrow_reason_refand confirm linked factor still belongs inactiveposture versus merge-ready - Show donor spare snapshot after simulated return versus merge using Lesson 79 units
- Pick exactly one outcome; if
escalate_to_lesson_73_owner, attach playbook matrix row references - Log decision back into borrow ledger as new rows (
renewed,returned, or dispute closure) per Lesson 80
If no decisions complete before readout, the Lesson 78 deck carries an explicit yellow banner on divergence governance until the next cycle.
Common mistakes
- Mistake: Scorecard replaces ledger. Fix: scorecard is derived; ledger stays canonical.
- Mistake: Revenue guessed from anecdotes. Fix: tie
revenue_at_risk_usdto a named forecast row your finance partner acknowledges. - Mistake: Ignoring donor recall. Fix: if donor lane hits recall triggers from Lesson 80, route through early-recall path instead of dragging renewal debates.
Mini challenge
- Take three sample
borrow_row_idvalues from your tabletop notes (one disputed, one overdue, one near due). - Assign plausible revenue and safety numbers and compute
composite_risk_score. - Write which Lesson 78 slide picks up the unresolved banner if the middle row stalls through readout.
FAQ
How does this relate to Lesson 77 replay divergence triage?
Replay rows explain telemetry disagreements. Borrow rows explain capacity disagreements. If both exist for the same factor_id, triage borrow first when borrow_due_utc is past, because cap debt can block releases even when telemetry is calm.
Can we run the scorecard weekly instead of monthly?
Yes if generate cost is low. Keep the same schema so tooling stays stable.
What if legal demands anonymity on revenue figures?
Use letter grades (A-F) instead of USD in stored CSV while keeping sort keys in a restricted workbook.
Lesson recap
You now have a borrow renewal dispute scorecard that turns messy cross-lane favors into an ordered, evidence-backed queue so merge-or-return decisions land before the executive readout instead of after players feel the drift.
Next lesson teaser
Continue with Lesson 82: Borrow Outcome Patch Comms Packet for Controlled Player-Facing Notes to turn borrow resolutions into store-safe patch copy, in-game banners, and social stubs without leaking lane politics.
Related learning
- Lesson 80: Waiver Renewal Divergence Factor Cross-Lane Capacity Borrowing Protocol in RPG Live-Ops
- Lesson 79: Waiver Renewal Divergence Factor Portfolio Cap per Owner Lane and Mitigation Budget in RPG Live-Ops
- Lesson 72: Waiver Renewal Intervention Closure Reliability Scorecard
- 18 Free Debt Retirement Forecast Calibration Resources for Indie Live-Ops (2026 Q4)
Bookmark this lesson if your studio crosses LiveOps capacity between lanes. Share it when borrow tension shows up right before leadership reviews.