Guff AI ta ho ni Project Turtle

Project Turtle / operating method

Turtle Operating Manual

This page is the public reference that future Turtle runs should reopen before a match starts. It explains how data is collected, which sources are trusted, how the score cloud is built, how the proof selects exactly four public scores plus one score 4, and how the postgame analysis is written after full time.

Non-negotiables

The rules that keep Turtle honest.

These are not styling preferences. They are the guardrails that make a public score lab possible. If any item fails, the output is an exploratory note, not a locked prediction.

01 No leakage

Kickoff state, final score, postgame reports, final xG, and settled odds cannot influence the pre-match model.

02 Data before intuition

Intuition can propose a branch, but a branch is selected only when the ledger, rule, and inequality can be shown.

03 Market after lock

Kalshi or sportsbook prices may be compared only after the score cloud already exists. They cannot create the prediction or publish allocation guidance without formal EV/risk tables.

04 Proof before card

Every disclosed score must survive deterministic selection rules. Every excluded S10 score needs a named removal rule.

05 Postgame analysis after full time

The postgame analysis records hit, miss, score-card settlement, support-market settlement, and the exact rule that needs correction.

Portugal-Spain repair gates.

After Portugal 0-1 Spain, Turtle added three mandatory proof gates: Clean-Sheet Override, Human Signal Preservation, and Recursive Attack. If a team has an extreme verified non-concession streak, C4 must include a clean-sheet score unless the proof defeats it numerically. If Neohm names a score branch before lock, the branch must be included or rejected by a numeric rule. Every candidate score must be attacked by its strongest opposing fact before it enters C4.

Belgium-USA ladder repair.

After Belgium 4-1 USA, Turtle added the favorite-cushion ladder rule. If a favorite-cushion BTTS score such as 3-1 survives and the total thread gives P(over 3.5) at or above 0.40, Turtle must evaluate the adjacent ladder before lock: 4-1, 3-2, and 4-2. At least one adjacent score must enter C4 or be rejected by an inequality stronger than the selected branch evidence.

Aster run order

When a match starts, do not improvise the workflow.

Turtle works best when the analyst follows the same order every time. The first job is not to guess the score. The first job is to define the file, protect the cutoff, and make the evidence visible enough that later postgame analysis can tell whether the model was wrong or the data was weak.

Before mining Declare the match file

Write team names, team codes, date, kickoff time, competition stage, venue, and whether the file is pregame, live, or postgame analysis only.

During mining Keep proof beside data

Every row needs a source URL and visible row text. A row without proof can be a note, but it cannot quietly enter the model.

Before proof Compute facts, then argue

Calculate rates, modes, lambdas, branch masses, and S10 first. Only after that may Turtle write inclusion and exclusion lemmas.

Before market Lock the four-score card

The exact-score cloud must exist before any price is consulted. Market comparison can change deployment, not the model's memory.

After full time Publish the postgame analysis

Grade four-score accuracy, support markets, and miss class. Then write the smallest rule correction without pretending it was known before.

Source hierarchy

Reliable data starts with knowing what each source is allowed to prove.

No single public source is perfect for international football. Turtle therefore stores the source URL and visible row text beside every row, then grades each source by what it can reliably support.

Tier 0 Official competition and federation sources

Use for fixture identity, kickoff date, venue, squads, lineups, official final score, cards, and tournament context.

Tier 1 Reviewable result ledgers

Use for fast last-50 mining when the table is rendered, inspectable, and each row can be checked by date, opponent, and score.

Tier 2 Match reports and stat providers

Use for settlement cross-checks, shots, corners, xG, cards, substitutions, and in-match texture. Coverage must be explicit.

Tier 3 Strength and player proxies

Use as bounded modifiers, never as truth. Rankings, Elo, and EA FC style ratings help classify mismatch, not predict alone.

  • FIFA ranking and Elo-style ratings for opponent class.
  • Current squad minutes, lineup continuity, injury/news notes.
  • EA FC ratings are a proxy for broad roster quality, not a factual match source.
Tier 4 Market prices

Use after prediction lock to test edge and choose support markets. Prices cannot create the score cloud.

  • Kalshi markets or API snapshots after the exact-score proof is locked.
  • Executable price, side, time, and ticker must be recorded if a market comparison is made.

Collection protocol

How a match file is mined before the model is allowed to speak.

Turtle should be able to regenerate a match file from scratch and explain every row. The goal is not maximum scraped data. The goal is a small, reliable, reviewable ledger that makes the later mathematics accountable.

01
Fixture intake

Record teams, team codes, competition, stage, venue, kickoff time, timezone, and whether the prediction is pregame, live, or postgame analysis only.

02
No-leak cutoff

Define the cutoff before the target match starts. Future rows, the target match itself, postgame reports, and final-score summaries are excluded from prediction inputs.

03
Last-50 ledgers

Mine the latest 50 valid pre-cutoff matches for each team. Keep incomplete rows only when flagged for manual review; models consume only rows with parse_status = ok.

04
Last-10 and current-tournament rows

Extract recent form and World Cup rows separately. A team can look average across 50 matches but behave differently under current tournament pressure.

05
Squad and lineup continuity

Estimate how much of the current XI plus likely substitutes appeared in the mined rows. Older rows with low overlap are down-weighted.

06
Opponent class and context

Classify opponent strength, venue, rest, travel, knockout pressure, injuries, suspensions, and motivational context. These are modifiers, not scorelines by themselves.

07
Manual review flags

Flag rows with missing date, score, opponent, venue, scorer ambiguity, or source conflict. A missing-data flag is better than false confidence.

08
Analysis artifacts

Write CSVs, model summary, candidate table, proof ledger, lock note, and postgame analysis shell before publishing the card.

Required ledger fields

The spreadsheet exists so the proof has something to cite.

The ledger is the first object Turtle should physically inspect. A beautiful model built on a vague ledger is not analysis; it is decoration.

Identity

row_id, team_code, team, date, competition, stage, home_away_neutral, opponent.

Score facts

goals_for, goals_against, scoreline, result, total_goals, goal_difference.

Binary events

team_scored, team_failed_to_score, team_conceded, team_clean_sheet, btts, over_1_5, over_2_5, over_3_5.

Goal detail

scorers_for_text, scorers_against_text, goal_minutes_for_text, goal_minutes_against_text.

Location and proof

venue, city_country, source_url, source_page_title, source_row_text.

Quality gates

parse_status, data_quality_score, needs_manual_review, notes.

Advanced optional fields

Shots, shots on target, xG, corners, squad overlap, starting-XI overlap, opponent strength class, injury load, rest days, and emotional or momentum index.

Statistical layer

The first pass is descriptive, not predictive.

Before Turtle estimates any score, it writes the descriptive facts. This is where we catch traps such as a high scoring rate built against weak opponents, or a clean-sheet pattern hidden by average goals.

Team summaries

  • GF50, GA50: average goals for and against over the last 50 valid rows.
  • GF10, GA10: same over the latest 10 rows.
  • GF_WC, GA_WC: same over current World Cup rows.
  • Scoring rate, conceded rate, failed-to-score rate, clean-sheet rate, BTTS rate.
  • Over 1.5, over 2.5, over 3.5 rates and two-plus scoring rate.

Mode summaries

  • Win-mode scorelines: how the team usually wins.
  • Draw-mode scorelines: whether draws are 0-0, 1-1, 2-2, or chaos.
  • Loss-mode scorelines: whether losses are narrow, clean-sheet losses, or blowouts.
  • Goal timing when available: early pressure, late collapses, penalty dependency.

Interpretation rule

A mean is not a theorem. If a team averages 1.8 goals but most wins are 1-0 and one 7-0 inflates the sample, the candidate cloud must see the mode, not only the average.

Opponent-threshold model

The last 50 is not one flat pool.

For match A vs B, Turtle asks how A performs against opponents in B's strength realm, and how B performs against opponents in A's strength realm. This is the correction after Algeria-Switzerland and Canada-Morocco.

Strength scale r_A, r_B in [0,10]

Ratings can come from FIFA rank, Elo-style proxies, squad quality, and public scout notes. The source and confidence are stored.

Realm filter realm_A_vs_B = { rows of A : |opponent_rating - r_B| <= epsilon }

Default epsilon = 0.75. If fewer than five usable rows survive, widen once to 1.25.

Row weight w(row) = recency * competition * squad_overlap * exp(-d^2/(2 sigma^2))

Default sigma = 0.75. Sparse realms are shrunk toward the last-50 prior and marked weak.

Required outputs team_strength_ratings.csv, opponent_threshold_ledger.csv, realm_summaries.csv

The proof must state raw rows, effective rows, readiness, GF/M, GA/M, scored rate, clean-sheet rate, and shrinkage state.

Mathematical model

Expected goals are built from the ledger, then the score grid is computed.

Turtle currently uses a transparent independent Poisson score grid. That is a baseline, not a claim that football is truly independent or memoryless. The value is that every later adjustment is visible.

Attack A_i = w50 GF50_i + w10 GF10_i + wWC GFWC_i

Build a blended attack component for team i.

Defensive weakness D_i = w50 GA50_i + w10 GA10_i + wWC GAWC_i

Build a blended concession component for team i.

Raw rates λ_home_raw = (A_home + D_away) / 2 λ_away_raw = (A_away + D_home) / 2

Pair one team's attack with the opponent's defensive weakness.

Modifiers λ_i = λ_i_raw · m_strength · m_pace · m_lineup · m_block · m_emotion

Each modifier is bounded, recorded, and must have a source or a stated reason. Emotional or momentum adjustments are intentionally small.

Score probability P(a,c) = Pois(a; λ_home) Pois(c; λ_away) Pois(k; λ) = e^(-λ) λ^k / k!

The grid probability for exact score (a,c).

Modifier discipline.

A modifier cannot rescue a bad thesis. It can only adjust the rate inside a narrow range: knockout caution, favorite pressure, underdog block, lineup continuity, current-tournament seriousness, and emotional state must be named before the candidate scores are selected.

Candidate universe

The score cloud starts as a finite mathematical object.

Turtle does not scan every imaginable scoreline. It defines a finite grid, ranks it, and then proves why the disclosed scores are the ones that survive.

Definition Grid

G = {0,...,7} x {0,...,7}. Scores outside this grid are ignored pre-match unless a dedicated live-state rule opens a tail branch.

Definition S10

S10 is the set of the ten scores in G with largest P(a,c), breaking exact ties lexicographically by (a,c).

Definition Branch mass

For a branch B, M(B) = ∑ P(s) over all grid scores s in that branch.

Definition Turtle index

I(s) is a recorded selection index combining probability, branch mass, data support, and risk penalty. Its components must be in the model summary.

Branch system

Exact scores carry football meaning, not only probability mass.

The Argentina-Cape Verde lesson is that a pressure branch should not delete a strong draw or low-block branch just because the favorite is famous. Branches are therefore defined before selection.

Branch Predicate for score (h,a) Football meaning
B_home_winh = a + 1Favorite or home side wins narrowly.
B_home_cushionh ≥ a + 2Favorite control turns into a two-plus margin.
B_draw_low(h,a) in {(0,0),(1,1)}Block, caution, or mutual containment.
B_draw_highh = a and h ≥ 2Open game where neither team separates.
B_away_wina > hUnderdog or away upset path.
B_cleanh = 0 or a = 0At least one side is held scoreless.
B_bttsh ≥ 1 and a ≥ 1Both teams score.
B_tailNamed before disclosureLow-probability but thesis-compatible score kept as the score 4.

Spread thread

Result direction must become a margin family before exact scores.

The Canada-Morocco miss created this rule. Turtle had Morocco as the strongest regulation bucket and Under 3.5 as coherent support, but it jumped directly to exact scores and forced Canada scoring. The missing object was the spread thread: a ranked family of margins that says how the stronger side can win.

Thread 1 Result

Compute the result buckets first: home win, draw, away win. The strongest bucket gets a named representative family.

Thread 2 Spread

Convert the result bucket into margins: win by 1, win by 2+, clean-sheet win, or chase-state extension.

Thread 3 Total

Ask whether the margin family lives under 2.5, exactly 3, under 3.5, or in an open-game tail.

Thread 4 BTTS / clean sheet

Only now decide whether both teams scoring is required. A scoring-rate gate cannot erase a full clean-sheet family by itself.

Deterministic spread rule.

If the strongest result bucket is an away win and the support total is below four, Turtle must test 0-1, 0-2, 0-3 as one spread family before selecting any BTTS score. If 0-2 is in S10 and 0-3 is the next same-family extension, the family needs a named inclusion or a named double-veto. Silence is not a proof.

Proof system

The public prediction must read like a small theorem.

The proof is where Turtle stops saying "cloud" and starts showing why the card follows mechanically from definitions, data, rules, and inequalities. The theorem is not allowed to introduce a fresh opinion.

Definitions

Define G, S10, P(s), branches, thresholds, modifiers, support gates, and the exact meaning of C4 and score 4.

Data facts

State the ledger facts used: scoring rates, clean sheets, modes, opponent class, lineup continuity, current tournament rows, and missing-data penalties.

Candidate table

For every s in S10, show P(s), branch, branch mass, Turtle index, data support, rule status, and final status.

Rules

Write deterministic rules R1...Rn. Examples: no-score gate, branch representative rule, draw preservation rule, and disclosure cap.

Inclusion lemmas

Each disclosed score survives by inequality: its probability, index, branch, and comparison must be visible.

Exclusion lemmas

Every non-disclosed score in S10 is removed by a named rule, not by prose. Exhaustion matters.

Theorem

Under the stated definitions, data, and rules, the unique disclosed set is C4 = {s1, s2, s3, s4}.

Template theorem.

Under Definitions 1-N, Data 1-N, and Rules R1-RN, the unique disclosed main set is C4 = {s1, s2, s3, s4} in declared order. This follows from the inclusion lemmas for s1,s2,s3,s4 and the exclusion-by-exhaustion lemma over S10.

four-score card standard

Four equal score predictions.

The public score prediction is not a parlay fantasy. It is a compact score-card claim: four exact-score predictions Turtle is willing to grade together, with score 4 preserving the best danger branch instead of hiding it.

C4 Score card

Exactly four exact scores. Four-score accuracy asks whether the final regulation score is in this set.

score 4 Normal fourth score

The fourth score is selected by branch evidence and graded inside C4, not as a lesser side bucket.

Support Totals or BTTS

Over/under or BTTS can be used only if it protects the exact-score thesis. It is not a shortcut around score prediction.

Market After lock

If a market is checked, record side, executable price, model fair probability, and why it supports or conflicts with the score cloud. Do not publish allocation guidance until EV, bankroll, risk, and correlation tables exist.

Support-market rule.

Support markets are analysis-only alignment checks until Turtle has formal EV, bankroll, risk, and correlation tables. A support row may say aligned, partial, or contradictory relative to C4; it may not recommend allocation size. Scorer props, corners, and assists require separate models.

Postgame analysis

Postgame analysis is where the lab improves.

A hit is evidence, not proof. A miss is not humiliation; it is a named rule correction. The postgame analysis exists so Turtle cannot quietly rewrite history.

Settlement

Record official regulation score, source, final status, and whether the match went to extra time or penalties.

Accuracy

Grade four-score accuracy against C4 and four-score accuracy against C4.

Support market

Grade support separately. A correct support market does not turn a wrong exact-score cloud into a hit.

Miss class

Name the failure: strength gate, clean-sheet gate, draw branch, pace error, lineup shock, finishing variance, or data-quality failure.

Rule correction

Write the smallest rule change that would have made the model treat the game correctly without cheating backward.

File contract

Every match should leave a recoverable trail.

The website is the polished public layer. The project folder is the source of truth. If the local artifacts cannot explain the page, the page is not ready.

Artifact Purpose
TEAM_match_ledger.csvReviewable last-50 rows for each team, with source proof and quality flags.
team_strength_ratings.csvThe 0-10 team and opponent strength ratings used by the realm filter.
opponent_threshold_ledger.csvEvery ledger row joined to opponent rating, distance from the target realm, and row weight.
realm_summaries.csvOpponent-threshold GF/GA, scoring, clean-sheet, BTTS, total, result, and spread rates.
spread_thread.csvResult, spread, total, BTTS, and clean-sheet thread probabilities before exact-score disclosure.
model_summary.csvComputed descriptive stats, lambdas, modifiers, and readiness score.
score_candidates.csvThe full S10 candidate table with probabilities, branches, indices, and statuses.
final_3_plus_1_card.csvThe locked four locked predictions plus one score 4.
support_market_card.csvOptional market support, separated from exact-score prediction.
proof_ledger.csvDefinitions, rules, inclusion lemmas, exclusion lemmas, and theorem statements.
DATA_AUDIT.mdSources, fetch time, row counts, rejected rows, manual-review rows, and assumptions.
PREDICTION_LOCK.mdTimestamped lock containing the final card before kickoff or before the specified live state.

Current lessons encoded into the method

The rules are written from scars, not slogans.

Portugal 2-1 Croatia

The cloud landed, but one hit is only evidence. The lesson was to preserve a compact exact-score branch and review the sample honestly.

Switzerland 2-0 Algeria

Raw scoring rates over-weighted Algeria and under-weighted opponent strength, control, and clean-sheet pressure. This created the strength gate.

Australia 1-1 Egypt

The draw branch was real. Turtle must compare 0-0, 1-1, and 2-2 modes instead of treating all draws as one bucket.

Argentina 1-1 Cape Verde

Score 4 landed and exposed the display problem. This created the four-score standard: four equal public score predictions.

Colombia 1-0 Ghana

The exact-cell leader landed and Under 3.5 support matched the low-total cloud. This is a clean hit, but still only part of the ledger.

Portugal 0-1 Spain

Protocol failure, not variance. Turtle overstacked BTTS, ignored Spain's elite clean-sheet streak, and failed to preserve Neohm's 0-1 Spain signal. This created the Clean-Sheet Override, Human Signal Preservation, and Recursive Attack gates.

Belgium 4-1 USA

Protocol failure, not variance. Turtle read the Belgium/BTTS/high-total state but capped the favorite-cushion branch at 3-1. This created the favorite-cushion ladder rule: 4-1, 3-2, and 4-2 must be tested when 3-1 survives with a high over-3.5 thread.

What Turtle must not do

Fast mistakes that make the lab useless.

Reference links

Sources Turtle opens first.

These links are starting points. The match page must still record the exact URL used for that match and the fetch or review time.