feat(seats): a pass's share of the windows by the run's effort, the weekly cutoff at 99 %
The 5-hour share of a running pass was a flat 0.25 points; it follows the run's effort now, as the weekly share already did: 0.5 at max and any other effort, 0.125 at xhigh - the pooled means of 5438 Opus 5.5 passes on 141 seat-runs (2026-10-12..15), rounded up. The weekly cutoff moves from 95 % to 99 %: the weekly window is the budget the lenses run out of, and with the running passes projected against the cutoff the last percent is spent a pass at a time, not in a burst. REVIEW_GATES_LENS_COST_PCT and REVIEW_GATES_LENS_COST_7D_PCT still override every effort.
This commit is contained in:
parent
51bdd6298a
commit
ea4d362a10
8 changed files with 44 additions and 31 deletions
|
|
@ -169,14 +169,14 @@ namespace {
|
|||
const Json f1 = At(sa, "1").at("foreign");
|
||||
const Json fa = At(sa, "api1").at("foreign");
|
||||
Check("three passes of B on seat 1 and two on api1 fold into A as foreign, at B's own per-pass figures",
|
||||
f1.at("count") == 3 && Dyn::Equal(f1.at("cost5h"), 0.75) && Dyn::Equal(f1.at("costUsd"), 0) && fa.at("count") == 2 && Dyn::Equal(fa.at("costUsd"), 2.0)
|
||||
f1.at("count") == 3 && Dyn::Equal(f1.at("cost5h"), 1.5) && Dyn::Equal(f1.at("costUsd"), 0) && fa.at("count") == 2 && Dyn::Equal(fa.at("costUsd"), 2.0)
|
||||
&& Dyn::Equal(f1.at("drivers"), {{B.Me(), 3}}),
|
||||
std::format("{} {}", DumpSpaced(f1), DumpSpaced(fa)));
|
||||
Json s84 = mk("x", "oauth", "tx", 84, 50);
|
||||
s84["foreign"] = {{"count", 3}, {"cost5h", 1.5}, {"costUsd", 0}};
|
||||
const bool over = !SeatPool::Eligible(s84, now, cfg, acfg);
|
||||
Json s84Bare = With(s84, {{"foreign", {{"count", 0}, {"cost5h", 0.0}, {"costUsd", 0.0}}}});
|
||||
Check("the 5-hour projection counts the foreign passes: 84 + 1.5 + 0.25 is over 85, without them under", over && SeatPool::Eligible(s84Bare, now, cfg, acfg));
|
||||
Check("the 5-hour projection counts the foreign passes: 84 + 1.5 + 0.5 is over 85, without them under", over && SeatPool::Eligible(s84Bare, now, cfg, acfg));
|
||||
Json a8 = mk("api9", "api", "k9");
|
||||
a8["foreign"] = {{"count", 6}, {"cost5h", 0}, {"costUsd", 6.0}};
|
||||
a8["running"] = 2;
|
||||
|
|
@ -338,7 +338,7 @@ namespace {
|
|||
// The board's reading of the account (40, B's) folded in before the
|
||||
// projection.
|
||||
const Json base = sm["windows"]["five_hour"]["utilization"];
|
||||
Check("a driver's passes fold at its own projection (2 % each) into another driver's (0.25 %)",
|
||||
Check("a driver's passes fold at its own projection (2 % each) into another driver's (0.5 %)",
|
||||
Dyn::Equal(sm["foreign"], {{"count", 2}, {"cost5h", 4.0}, {"cost7d", 0.25}, {"costUsd", 0}, {"drivers", {{D.Me(), 2}}}}) && base == 40
|
||||
&& SeatPool::OauthProjected(sm, cfg) == base.get<double>() + 4.0,
|
||||
std::format("{} {}", DumpSpaced(sm["foreign"]), base.dump()));
|
||||
|
|
|
|||
Loading…
Reference in a new issue