Goal Englize
Match Hub
Match-day order
  1. Collect screenshots from the Data & Links tab (must-haves first). Include the FotMob Events/timeline β€” it has the goal minutes.
  2. Extract: run Prompt 1 on table screenshots and Prompt 2 on visuals. Paste both outputs together as your raw extraction.
  3. Build STATS.txt: run Prompt 3 on that raw extraction. Keep it ≀ 10,000 characters. Check it with the Character Checker below.
  4. Build NOTES.txt: write your rough notes, run Prompt 4, delete its pre-send block. Keep it ≀ 5,000 characters.
  5. Telegram: /restart β†’ /generate [match] β†’ send STATS.txt (wait βœ…) β†’ send NOTES.txt (wait βœ…) β†’ /go
πŸ“ Character Checker
Paste your finished file here before you send it. If it's too big, the pipeline cuts off the end and data goes missing. Green = safe to send.
βœ… Empty β€” you have 10,000 characters to fill 0 / 10,000
Prompt 1 β€” Extract TABLES / STATS
For stat panels, rating lists, lineups, cards, subs, and the Events/timeline.
Extract
You are extracting raw match statistics from football screenshots for a professional Tier-One tactical report. Accuracy is the only priority.

RULES:
1. Extract every visible number exactly as shown. Never round, estimate, or guess. If a digit is unreadable, write "NOT VISIBLE".
2. State the source platform for each image (FotMob, Sofascore, WhoScored, FBref, xGScore, Sporting Life, or "unknown").
3. Extract names exactly as spelled. If the same player is spelled differently across images, flag it under NAME CONFLICTS.
4. Output raw structured data only β€” no prose, no analysis.
5. If a category is absent from all images, write "NOT PROVIDED".

EXTRACT UNDER THESE EXACT HEADERS:

MATCH FACTS
- Final score, halftime score, competition/stage, venue, date, referee
- Managers (both teams)

GOALS (read from the EVENTS / TIMELINE screen β€” the vertical list of match events)
- For EVERY goal: scoring team, scorer, EXACT minute (include added time, e.g. 90+3), assist provider (or "no assist"), goal type (open play / header / penalty / free kick / own goal)
- Take minutes ONLY from the Events/timeline. A goal icon on a lineup graphic has NO minute β€” never use it for timing.
- If no Events/timeline screen is provided, write exactly: GOALS: EVENTS SCREEN NOT PROVIDED

LINEUPS & FORMATION
- Starting XI for both teams, each team's formation, and the captain (mark with C)

TEAM STATS (per team)
- Possession %
- Total passes / accurate / pass accuracy %
- Passes own half / opposition half
- Long balls attempted / accurate / %
- Crosses attempted / accurate / %
- Total shots / on target / off target / blocked
- xG (total, open play, set play, penalty if shown)
- Big chances created / missed
- Duels won total / ground won-attempted-% / aerial won-attempted-%
- Successful dribbles / attempted
- Touches in opposition box / total touches
- Final-third entries
- Corners / throw-ins / offsides
- Tackles / interceptions / blocks / clearances / recoveries
- Fouls committed
- Keeper saves (name + exact count) / claims / punches
- Errors leading to a shot or goal

CARDS
- Player, colour, exact minute

SUBSTITUTIONS
- Player out, player in, exact minute

PLAYER RATINGS (every player, starters + subs)
- Player, position if shown, rating, source platform, and note any goal (G), assist (A), captain (C), card, or sub

At the end list NAME CONFLICTS, and everything marked NOT PROVIDED / NOT VISIBLE so the gaps are explicit. No commentary β€” data extraction only.
Prompt 2 β€” Extract VISUALS
For heat maps, shot maps, xG timelines, pass networks, attack zones, lineup graphics.
Extract
You are extracting spatial and visual data from football analytics graphics for a Tier-One tactical report. These are harder to read β€” examine the legend, axis, and colour scale of each image BEFORE describing anything. Do not rush.

RULES:
1. Before extracting, state the visual TYPE (heat map / shot map / xG flow / pass network / touch map / attack zone / events-timeline / lineup graphic) and its legend/scale.
2. Never invent a number a visual does not show. Describe intensity in relative zone terms.
3. If anything is ambiguous, write "UNCLEAR β€” visual read, low confidence" beside that point.
4. Use this zone system everywhere: Defensive Third / Middle Third / Attacking Third, combined with Left Channel / Central Channel / Right Channel.

EXTRACT PER TYPE:

EVENTS / TIMELINE (if present β€” priority source for goal minutes)
- Every goal: scorer, EXACT minute (with added time), assist, goal type.

LINEUP / FORMATION GRAPHIC (if present)
- Each team's formation and shape, the captain (C), and any goal or assist icons next to players.

HEAT MAPS
- Team/player, primary concentration zone(s), secondary zones, notably empty zones.

SHOT MAPS
- Per marker: zone, outcome (goal / saved / blocked / off target / post), xG if numerically labelled.
- Total shot count visible; footedness/header indicator if shown.

xG FLOW / TIMELINE CHART
- xG for each team at each goal minute; final xG for each team; the minute of the single largest xG jump and the event behind it.

PASS NETWORKS
- Most-connected nodes, any isolated player, general shape suggested by node positions.

ATTACK ZONE / TOUCH DIAGRAMS
- Percentage or relative weight per zone if labelled; dominant flank.

At the end, list every point marked "UNCLEAR β€” visual read, low confidence". No tactical interpretation β€” extraction only.
Prompt 3 β€” Build STATS.txt
Feed your combined raw extraction to Grok/Claude. Reconciles all sources. ≀ 10,000 chars.
Feed AI
You are an elite football data reconciliation engine for a Tier-One publishing pipeline. Below is a RAW, HEAVILY DUPLICATED extraction of ONE match from multiple tools. The same stats and player ratings appear several times from different sources (FotMob, WhoScored, xGScore, pitch-views) and sometimes disagree, and some names are in Arabic script. Turn it into ONE clean, complete, English, Tier-One-ready stats file. Neglect NOTHING a top-tier report needs.

CROSS-CHECK & RECONCILE (core job β€” never just delete a source):
- Every stat and rating may appear multiple times. Cross-check across all sources: if they agree, use that value; if they differ, use the value appearing in the most sources (tie β†’ FotMob). Output ONE clean final number per player.
- Guarantee EVERY player (starters + subs, both teams) has one reconciled rating AND a position (GK, RB, CB, LB, DM, CM, AM, RW, LW, ST).

NORMALIZE NAMES: convert every name to standard English spelling (e.g. رودريجو β†’ Rodri). One consistent spelling everywhere. Never output Arabic script.

DERIVE (never leave blank if derivable):
- FINAL SCORE and HALFTIME from the events/goal data.
- GOALS: scorer, EXACT minute, assist, type β€” from the events/timeline.
- FORMATIONS from average-position / lineup layouts.

HARD RULES: never invent a number; never drop a player; keep every genuine NOT VISIBLE / NOT PROVIDED; OUTPUT MUST NOT EXCEED 10,000 CHARACTERS (count before sending β€” if over, trim only the KEY ZONES lines).

OUTPUT β€” use these exact headers:
=MATCH FACTS= (final score | halftime | competition/stage | venue | date | referee | managers both teams)
=GOALS & ASSISTS= (Team β€” Scorer minute' β€” assist β€” type)
=LINEUPS & FORMATION= (both teams; formation; captain)
=TEAM STATS= (Team A / Team B, one metric per line β€” full list)
=ATTACK SIDES & PASS DISTRIBUTION=
=SHOT MAP= (goal zones + xG if labelled; team totals xG, xG/shot)
=CARDS=
=SUBSTITUTIONS=
=PLAYER RATINGS= [Name | Team | Pos | Rating | note: goal/assist/captain/sub]
=KEY ZONES= (one line per team)
=DATA GAPS= (only what is genuinely missing)

CRITICAL: reconcile across ALL sources, normalize to English, derive score/goals/formations, 10,000 characters max.

[PASTE YOUR RAW EXTRACTION HERE]
Prompt 4 β€” Build NOTES.txt
Feed your rough notes to Grok/Claude. Full English rewrite, no flags in the body. ≀ 5,000 chars.
Feed AI
You are an elite football editor for The Athletic. Turn my rough, informal match notes below into polished, Tier-One, professional analyst English. Inside my automated pipeline these notes are cross-checked and combined with stats, Perplexity web data, and scraped data to build one report β€” so they must be clean, complete, and precise.

WHAT YOU DO:
- Fully elevate my language into clean, professional, Athletic-standard English. Fix all grammar and phrasing.
- Preserve 100% of my tactical meaning and every specific detail I gave (shapes, mechanisms, player actions, verdicts). Change the wording, never the substance.
- ALWAYS keep every goalscorer and assister I named, spelled correctly β€” they must always appear.

HARD RULES:
- Invent NOTHING I did not say β€” no added names, formations, minutes, or facts.
- The body must be 100% publication-ready: NO flags, brackets, placeholders, "unknown", or process markers anywhere. If I did not give something, simply write around it naturally.
- OUTPUT BODY MUST NOT EXCEED 5,000 CHARACTERS (count before sending). If over, tighten wording β€” never cut a goal account or a verdict.
- Flowing analytical prose under clear headers, not choppy bullet points.

OUTPUT β€” the clean notes body, in this order:
GOAL ACCOUNTS β€” one tight paragraph per goal I described: buildup, assist, finish, and the defensive cause. Keep my scorer/assist names.
TACTICAL SHAPE β€” both teams, in and out of possession, and transitions.
KEY MECHANISMS β€” pressing, overloads, wide play, whatever I described.
PLAYER VERDICTS β€” my takes on individuals, elevated but keeping my judgment and any criticism.
OVERALL TACTICAL VERDICT β€” one strong closing paragraph.

THEN add one clearly separated final block titled EXACTLY:
=== PRE-SEND CHECK (DELETE THIS BLOCK β€” it is NOT part of your notes) ===
In it, list ONLY genuinely useful things I did not mention that would strengthen the report (a formation, a goal minute, an assister). I delete this block before sending, so nothing in it reaches the report.

CRITICAL: fully elevate my English, invent nothing, always keep my scorer/assist names, zero flags in the body, 5,000 characters max for the body.

[PASTE YOUR ROUGH NOTES HERE]