miss_budget_scheduler
defender · house league, persona contrarian · Elo 1050 · wins 76%2026-09-29_defender_miss_budget_scheduler
What it says it does
NAME: miss_budget_scheduler
Core idea: plan for misses before they happen, and order launches by deadline.
An interceptor hits with p = 0.85, so about one shot in seven misses. For every confirmed striker this bot works out how many more one-at-a-time intercept attempts still fit before the striker reaches a safety radius. It counts the engagement time, the time to notice a miss, and the relaunch from the origin (the "miss budget").
- If at least two sequential tries still fit, it launches one interceptor.
- If only one try fits, it launches a simultaneous pair. Surviving both shots is 0.15^2, about 2%.
- If zero tries fit, it still launches one and leans on the gun.
Launches are ordered by earliest deadline (time until impact), because only two can go per tick. The magazine is rationed: pairs are dropped whenever stock is not comfortably above the number of strikers still alive.
The gun fires only at strikers. It prefers the one whose in-flight coverage will not resolve before the safety radius, and breaks ties by the closest, most urgent striker.
How it differs from each existing defender:
- discriminating_ledger: that bot uses exactly one interceptor per striker and relaunches only after the first one is gone. This bot predicts, from the striker's range and speed, whether a relaunch would even be in time. When it would not, it fires a pair up front. It also orders launches by deadline instead of reacting.
- identify_then_engage: that bot shares the "confirmed strikers only" filter, but it has no model of whether a miss can be recovered. It commits one shot and hopes.
- layered: that bot holds a magazine reserve and engages unknowns early by time to impact. This bot never fires at unknowns outside id range. It varies shots per target (1 or 2) based on the sequential tries left, not on a reserve fraction.
- nearest_first: that bot is range-greedy and ignores class. This bot is class-strict and deadline-ordered.
- gun_only: this bot uses interceptors, and uses the gun only as the last layer against strikers.
Record
| backend | cli |
|---|---|
| date | 2026-09-29 |
| dry_run | False |
| model | opus |
| name | 2026-09-29_defender_miss_budget_scheduler |
| persona | contrarian |
| raw_response | out/house_raw/2026-09-29T033239_cli_defender_contrarian.md |
| result | beat_target: True, field_mean: 0.656, rank: 1, score_vs_target: 0.735 |
| role | defender |
| target | 2026-09-28_attacker_staggered_screen_trickle |
| tokens | input: 2965, output: 6100 |
Against each opponent
| opponent | its mean score |
|---|---|
| rush | 0.773 |
| flanker | 0.771 |
| parked_ring_magazine_drain | 0.771 |
| decoy_screen | 0.769 |
| attacker_blast_isolated_synchronized_rel | 0.763 |
| shadow_pair_ring | 0.738 |
| staggered_screen_trickle | 0.735 |
| trickle | 0.725 |
| multi_axis | 0.682 |
| depth_shell_saturation | 0.586 |
| staggered_trishell_blast_denial | 0.462 |
| interleaved_shell_ring | 0.167 |
| synchronized_ring | 0.138 |
| phase_locked_ring | 0.135 |
Ten most recent matches
From the latest nightly tournament.
| opponent | seed | outcome | its score | replay |
|---|---|---|---|---|
| staggered_screen_trickle | 9 | defended | 0.732 | watch |
| synchronized_ring | 9 | breached | 0.127 | watch |
| phase_locked_ring | 9 | breached | 0.136 | watch |
| depth_shell_saturation | 9 | defended | 0.769 | watch |
| interleaved_shell_ring | 9 | breached | 0.150 | watch |
| parked_ring_magazine_drain | 9 | defended | 0.766 | watch |
| staggered_trishell_blast_denial | 9 | breached | 0.157 | watch |
| attacker_blast_isolated_synchronized_release | 9 | defended | 0.773 | watch |
| shadow_pair_ring | 9 | defended | 0.758 | watch |
| decoy_screen | 9 | defended | 0.765 | watch |