Treat any store actor like a third party package, pin the version, log actionversion and retrycount on the receipt, and don't let your core tables depend on its DOM. Your classifyrun logic is solid, null rate and minrows catch a lot of junk cheap, just also add a row class like product vs sponsored vs challenge vs interstitial and pin location to an actual enum before you publish anything. On billing, runtime pricing hurts on navigation timeouts but at least it maps to real infra cost, and outcome pricing only actually saves you money if the vendor agrees to not charge for contract invalid or golden failing runs, so go ask them that directly instead of assuming. Also put sticky egress on your identities and log on the receipt whether a 200 was actually a stale session, a verify wall, or revoked creds, because right now a challenge page happily reports back as succeeded whether you're using cookies or a vault