Skip to content
Kelly

Coming from SDQL

Kelly reads SDQL systems from pasted text. Of the 44 SDQL terms, 33 map exactly, 11 can't map yet, each with the reason. Import is free: you confirm every line, then Kelly tests the rule on its own data from June 2020.

Updated · the importer’s own table

Get it out of SDQL. Copy the query, or the whole link from your address bar on the results page. Several queries? One per line.

or drop them anywhere on the pageScreenshots, PDF, CSV, Excel, text or a zip · up to 20 files, 32 MB each
Kelly reads only what you add here and sends nothing to SDQL.

Example · paste your own system to replace it

(6) of (6) conditions carry over

Every condition maps exactly. Import it and Kelly tests it on its own data.

  1. ExactAD=AND(NOT(home), NOT(neutral))
  2. ExactAD=spread_close > 0
  3. Exactp:L=LAG(result = "L")
  4. Exactrest>=7=rest_days >= 7
  5. Exactline>=3=spread_close >= 3
  6. ExacttA(points)>=20=SEASON_AVG(points_for) >= 20
=AND(AND(NOT(home), NOT(neutral)), spread_close > 0, LAG(result = "L"), rest_days >= 7, spread_close >= 3, SEASON_AVG(points_for) >= 20)

Free to import, and nothing is saved until you confirm. You’ll sign in on the next step if you aren’t already, and your system comes with you.

Many systems? Add them all at once: exports, screenshots, workbooks, zips. Kelly reads every file, maps each system it finds and lists them on one screen for you to confirm.

SDQL is a one-line query language: conditions joined by and and or, each a parameter, an operator and a value, with prefixes for earlier games (p:, pp:) and the opponent (o:).

Grammar from the KillerSports Getting Started, Advanced and NFL query manuals, read Nov 7, 2026. Statuses against the rule tester; the same table the importer reads.

What does a SDQL system look like in Kelly?

In SDQL
AD and p:L and rest>=7 and line>=3 and tA(points)>=20
In Kelly
=AND(NOT(home), NOT(neutral), spread_close > 0, LAG(result) = "L", rest_days >= 7, spread_close >= 3, SEASON_AVG(points_for) >= 20)

Every term exact. SDQL's season averages leave out the current game, as Kelly's do. SDQL's history goes back decades and Kelly's lines start June 2020, so the two records cover different seasons.

Which SDQL terms carry over? (44)

One line of text, such as AD and p:L and rest>=7. A query link carries the same text after sdql= (Kelly reads it from the link and never opens the page).

Showing (44) of (44) · Terms

Their termKelly formulaStatusNote
Grammar
and, or, ( )=AND(…), =OR(…)Exact
=, !=, <, <=, >, >=The same comparisonsExact
None (empty)=ISBLANK(…)ExactSDQL's None is Kelly's blank.
Site and line
site=home, H=AND(home, NOT(neutral))Exact
site=away, A=AND(NOT(home), NOT(neutral))Exact
team=team_id = …ExactTeam names resolve to Kelly's team ids.
site=neutral=neutralExact
F, D (favourite, dog)F: =spread_close < 0 · D: =spread_close > 0Exact
HF, HD, AF, ADe.g. AD: =AND(NOT(home), NOT(neutral), spread_close > 0)Exact
line=spread_closeExactThe team's line; negative is the favourite, as in SDQL.
total=total_closeExact
Rest and schedule
rest=rest_daysExact
o:rest=opponent.rest_daysExact
season=seasonExactKelly's lines start June 2020.
playoffs, REGplayoffs: =season_type = "postseason" · REG: =season_type = "regular"Exact
week=weekCan't mapWeek is an attribute; the rule tester's read doesn't select it yet.
day, month, dateCan't mapKick-off dates and times are held; the rule tester doesn't read them yet.
DIV, NDIV, C (division, conference)=divisionalCan't mapDivisional is an attribute; the rule tester's read doesn't select it yet.
This game
W, L (this game's result)Can't mapThe game's own result is known only after the bet. On earlier games use p:W.
Earlier games
p:W, p:L=LAG(result) = "W"Exact
pp:, ppp: (two, three games back)=LAG(x, 2), =LAG(x, 3)Exact
p:margin=LAG(margin)Exact
p:ats margin=LAG(margin + spread_close)Exact
p:ou margin=LAG(points_for + points_against - total_close)Exact
p:line=LAG(spread_close)Exact
po: (previous opponent)=LAG(opponent.x)Exact
op: (opponent's previous game)Can't mapThe opponent's own earlier games aren't in Kelly's rules yet.
P:, PP: (previous meeting)=PREV_MEETING(x), =PREV_MEETING(x, 2)ExactReads the last meeting within the seasons tested.
Streaks
streak=STREAK(result = "W") or =STREAK(result = "L")ExactSDQL's streak is signed (wins positive, losses negative); Kelly writes the matching direction. On the game itself only, not with a prefix.
ats streak=STREAK(ats_result = "cover")ExactAs streak.
ou streak=STREAK(ou_result = "over")ExactAs streak.
Aggregates
tA(x) season average=SEASON_AVG(x)ExactBoth leave out the current game.
tS(x) season sum=SEASON_SUM(x)ExactBoth leave out the current game.
tS(condition, N=4)=ROLLING_SUM(IF(condition, 1, 0), 4)Exact
tA(x, N=3)=ROLLING_AVG(x, 3)Exact
oA(x) opponent season averageCan't mapThe opponent's own games aren't in Kelly's rules yet.
tpA, tppA (earlier seasons)Can't mapPrior-season totals aren't an attribute yet.
Box score
points=points_forExactOn earlier games or in an aggregate.
first downs, passing yards, rushing yards, turnovers, sacks, penaltiesCan't mapKelly holds team box scores; the rule tester's read doesn't carry them yet.
Site ratings
dpa, dps and other site ratingsCan't mapSite-specific ratings with no published definition.
Next games
n:, nn: on what's known before (n:H, n:line)=NEXT_GAME(x), =NEXT_GAME(x, 2)ExactOnly what the schedule shows before the bet.
n:W, n:points (a later game's result)Can't mapA later game's result, which a bet couldn't see.
Players
Player prefixes (LeBron James:p:points)Can't mapPlayer conditions wait for the player rule grain.
Output
@ (columns to show)Not a condition: Kelly shows its own columnsExactLeft out of the rule; nothing is lost.

Source: Grammar from the KillerSports Getting Started, Advanced and NFL query manuals, read Nov 7, 2026. Statuses are the importer’s own, against the rule tester.

How do you move your SDQL systems to Kelly? (3)

  1. Copy the query, or the whole link from your address bar on the results page. Several queries? One per line.
  2. Paste or drop it in the box above, on Import in the rule tester, or in chat: "import this SDQL system". Kelly lists every condition with its status.
  3. Answer any question, choose keep or leave out for each line that can't map, and confirm. Kelly saves the rule labelled "tuned elsewhere" and tests it on its own data from June 2020; the record SDQL showed you is kept as reported beside it.

What other ways can you bring systems in? (5)

ScreenshotsDrop one or several. Kelly reads the labels and values, then shows the same checklist.
Paste text or a query linkPaste the query as text or the link. A link is kept as where the system came from; Kelly never opens it.
Describe it in chatSay the system in words. Kelly drafts the formula from its attributes and asks about anything vague.
The games it pickedCopy the list of games a SDQL system picked into the bet import (CSV). Kelly grades each at its own lines, which proves the record but doesn't make a rule for new games.
For developersimport_rule (MCP) or POST /v1/rules:import with tool "sdql". The same draft, statuses and confirm step.

What do people ask about moving from SDQL? (6)

Can I import my SDQL systems into Kelly?

Yes. Of the 44 SDQL terms in Kelly's table, 33 map exactly, 11 can't map yet, each listed with the reason.

Can I bring every system at once?

Yes. Drop every export, screenshot, workbook or zip in the box at once, or send the reply to your data request. Kelly reads every file when you import, maps each system it finds and lists them on one screen for you to confirm.

Will Kelly show the same record as SDQL?

Not always. Kelly grades on its own consensus closing lines, which start in June 2020, so a record covers the seasons Kelly holds. The record SDQL showed you is kept as reported beside Kelly's.

Do SDQL season averages include the current game?

No, and neither do Kelly's. tA(points) is the average of the team's earlier games this season, so the two match.

Does Kelly log in to SDQL or open my links?

No. Kelly reads only what you paste or upload. A link is kept as where the system came from and is never opened.

What happens to the conditions Kelly can't map?

They stay on the list with the reason. For each one you choose: keep it for new games once Kelly holds the data, or leave it out. The saved rule says which.

Coming from another tool? (8)

Information is the edge.

Odds are information, not advice · 21+ · Get help

Privacy