Tool tree
check_betAnswer
Grade a sports bet against NegativeEV's game simulations. Input the bet as plain text (teams/players, market, line, odds); a multi-leg parlay in one string is graded leg by leg and priced as a whole. Use it when the caller has a SPECIFIC bet to evaluate — it prices a bet you name, it does not search for good bets, so there is nothing to send for 'what should I bet tonight'. Call `get_slate` first if it isn't known that today's games are simulated. Every result leads with `status`: `graded` (every leg scored — this is the only status that spends a check), `partial` (some legs scored), `ungraded` (the bet was understood but no leg is covered by the sims), `no_bet_found` (no bet recognized in the text), or `no_slate`, `unsupported_market`, `unsupported_sport`. When a leg doesn't score, `ungraded_legs[].reason` says why and `retry.rephrasing_helps` says whether re-wording could change the answer — it is false whenever the bet parsed, so do NOT resend the same bet in different words to work around an `ungraded` result. Covers MLB, WNBA, PGA, and ATP; any other sport returns unsupported_sport. Games that already started still grade, against the simulations from before first pitch (a pre-game projection, flagged as such).
View tool JSON
{
"name": "check_bet",
"kind": "answer",
"impl": "imperative",
"description": "Grade a sports bet against NegativeEV's game simulations. Input the bet as plain text (teams/players, market, line, odds); a multi-leg parlay in one string is graded leg by leg and priced as a whole. Use it when the caller has a SPECIFIC bet to evaluate — it prices a bet you name, it does not search for good bets, so there is nothing to send for 'what should I bet tonight'. Call `get_slate` first if it isn't known that today's games are simulated. Every result leads with `status`: `graded` (every leg scored — this is the only status that spends a check), `partial` (some legs scored), `ungraded` (the bet was understood but no leg is covered by the sims), `no_bet_found` (no bet recognized in the text), or `no_slate`, `unsupported_market`, `unsupported_sport`. When a leg doesn't score, `ungraded_legs[].reason` says why and `retry.rephrasing_helps` says whether re-wording could change the answer — it is false whenever the bet parsed, so do NOT resend the same bet in different words to work around an `ungraded` result. Covers MLB, WNBA, PGA, and ATP; any other sport returns unsupported_sport. Games that already started still grade, against the simulations from before first pitch (a pre-game projection, flagged as such).",
"inputSchema": {
"type": "object",
"properties": {
"bet": {
"type": "string",
"description": "The bet text, e.g. 'Shohei Ohtani over 1.5 total bases -120'"
}
},
"required": [
"bet"
]
},
"page": "/"
}get_slateAnswer
Whether there is a checkable slate right now (at least one simulated, not-yet-started game) in each live sport: MLB, WNBA, PGA, and ATP. Pass `sport` to ask about one; omit it for all of them. This is the free pre-check for `check_bet`: call it before grading when it isn't known that today's games are simulated, and call it after an `ungraded` result instead of re-wording the bet, because `ungraded` means the game isn't on the simulated slate rather than that the wording was wrong. Free — spends no check.
View tool JSON
{
"name": "get_slate",
"kind": "answer",
"impl": "imperative",
"description": "Whether there is a checkable slate right now (at least one simulated, not-yet-started game) in each live sport: MLB, WNBA, PGA, and ATP. Pass `sport` to ask about one; omit it for all of them. This is the free pre-check for `check_bet`: call it before grading when it isn't known that today's games are simulated, and call it after an `ungraded` result instead of re-wording the bet, because `ungraded` means the game isn't on the simulated slate rather than that the wording was wrong. Free — spends no check.",
"inputSchema": {
"type": "object",
"properties": {
"sport": {
"type": "string",
"enum": [
"MLB",
"WNBA",
"PGA",
"ATP"
],
"description": "One of: MLB, WNBA, PGA, ATP. Omit to get every live sport."
}
}
},
"page": "/"
}get_usageAnswer
How many bet checks the caller has left and when the next one frees up — the daily allowance for anonymous callers, the hourly pace window for accounts. Call it before grading several bets in one turn, to know how many will fit, and after a check is refused for quota, to know when to retry. It reports the budget only; `check_bet` is what spends it. Free — spends no check.
View tool JSON
{
"name": "get_usage",
"kind": "answer",
"impl": "imperative",
"description": "How many bet checks the caller has left and when the next one frees up — the daily allowance for anonymous callers, the hourly pace window for accounts. Call it before grading several bets in one turn, to know how many will fit, and after a check is refused for quota, to know when to retry. It reports the budget only; `check_bet` is what spends it. Free — spends no check.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}