davidyap22 commited on
Commit
56672b3
·
1 Parent(s): 8f471ad

feat: add 2 new Medium articles to Research section

Browse files
.gitattributes DELETED
@@ -1,36 +0,0 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
36
- docs/assets/dashboard-epl.jpg filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CITATION.cff DELETED
@@ -1,19 +0,0 @@
1
- cff-version: 1.2.0
2
- message: "If you use this repository, please cite it as below."
3
- title: "OddsFlow Transparency Pack"
4
- type: dataset
5
- authors:
6
- - name: "OddsFlow AI Team"
7
- repository-code: "https://github.com/oddsflowai-team/oddsflow-transparency"
8
- url: "https://www.oddsflow.ai"
9
- abstract: "Public, auditable documentation pack: verification standard, schemas, samples, risk policy, governance, and disclosures for timestamped football market signal logs."
10
- keywords:
11
- - football analytics
12
- - verification
13
- - timestamped logs
14
- - auditability
15
- - schema
16
- license: "MIT"
17
- version: "v1.0.0"
18
- date-released: "2026-02-08"
19
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CONTRIBUTING.md DELETED
@@ -1,109 +0,0 @@
1
- # Contributing to OddsFlow Transparency Pack
2
-
3
- Thanks for helping improve public auditability.
4
-
5
- ## Scope
6
- This repository is for:
7
- - Documentation (verification standard, governance, disclosures)
8
- - Schemas and samples (non-proprietary)
9
- - Versioned notes / changelogs
10
-
11
- This repository is NOT for:
12
- - Betting tips / predictions
13
- - Claims of guaranteed profit
14
- - Requests for proprietary model code or private vendor contracts
15
-
16
- ## What we accept
17
- ✅ Good contributions:
18
- - Fix typos / clarify definitions
19
- - Improve schema documentation and examples
20
- - Add edge cases to verification rules
21
- - Improve risk disclosures (limits, drawdowns, failure modes)
22
- - Propose new fields (with rationale + backward compatibility)
23
-
24
- ❌ We will decline:
25
- - “Tell me what to bet” or “increase win rate” requests
26
- - Attempts to reverse-engineer private logic
27
- - Any content that frames this as guaranteed returns
28
-
29
- ## How to contribute
30
- 1. Open an Issue describing:
31
- - What is wrong / missing
32
- - Why it matters for auditability
33
- - Proposed change (text or schema diff)
34
- 2. Submit a Pull Request:
35
- - Keep changes small and reviewable
36
- - Update `docs/index.md` only if adding/removing major docs
37
- - If editing schema, also update sample files
38
-
39
- ## Style guidelines
40
- - Evidence-first language
41
- - Precise definitions
42
- - Use consistent terms with `docs/signal-glossary.md`
43
- - Avoid marketing claims
44
-
45
- ## Schema change policy
46
- - Backward compatible changes → bump MINOR (e.g., 1.0.0 → 1.1.0)
47
- - Breaking changes → bump MAJOR (e.g., 1.0.0 → 2.0.0)
48
- - Document changes in `CHANGELOG.md` (or `/changelog/` folder if used)
49
-
50
- ## License
51
- By contributing, you agree your contributions are licensed under the repository LICENSE.
52
-
53
- ## Questions
54
- Open an Issue in GitHub Discussions / Issues.
55
- # Contributing to OddsFlow Transparency Pack
56
-
57
- Thanks for helping improve public auditability.
58
-
59
- ## Scope
60
- This repository is for:
61
- - Documentation (verification standard, governance, disclosures)
62
- - Schemas and samples (non-proprietary)
63
- - Versioned notes / changelogs
64
-
65
- This repository is NOT for:
66
- - Betting tips / predictions
67
- - Claims of guaranteed profit
68
- - Requests for proprietary model code or private vendor contracts
69
-
70
- ## What we accept
71
- ✅ Good contributions:
72
- - Fix typos / clarify definitions
73
- - Improve schema documentation and examples
74
- - Add edge cases to verification rules
75
- - Improve risk disclosures (limits, drawdowns, failure modes)
76
- - Propose new fields (with rationale + backward compatibility)
77
-
78
- ❌ We will decline:
79
- - “Tell me what to bet” or “increase win rate” requests
80
- - Attempts to reverse-engineer private logic
81
- - Any content that frames this as guaranteed returns
82
-
83
- ## How to contribute
84
- 1. Open an Issue describing:
85
- - What is wrong / missing
86
- - Why it matters for auditability
87
- - Proposed change (text or schema diff)
88
- 2. Submit a Pull Request:
89
- - Keep changes small and reviewable
90
- - Update `docs/index.md` only if adding/removing major docs
91
- - If editing schema, also update sample files
92
-
93
- ## Style guidelines
94
- - Evidence-first language
95
- - Precise definitions
96
- - Use consistent terms with `docs/signal-glossary.md`
97
- - Avoid marketing claims
98
-
99
- ## Schema change policy
100
- - Backward compatible changes → bump MINOR (e.g., 1.0.0 → 1.1.0)
101
- - Breaking changes → bump MAJOR (e.g., 1.0.0 → 2.0.0)
102
- - Document changes in `CHANGELOG.md` (or `/changelog/` folder if used)
103
-
104
- ## License
105
- By contributing, you agree your contributions are licensed under the repository LICENSE.
106
-
107
- ## Questions
108
- Open an Issue in GitHub Discussions / Issues.
109
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LICENSE DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 OddsFlow AI Team
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
22
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Makefile DELETED
@@ -1,13 +0,0 @@
1
- .PHONY: help install validate
2
-
3
- help:
4
- @echo "Targets:"
5
- @echo " make install - install dev dependencies"
6
- @echo " make validate - validate sample log against schema"
7
-
8
- install:
9
- python -m pip install --upgrade pip
10
- python -m pip install jsonschema
11
-
12
- validate:
13
- python scripts/validate.py
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -112,6 +112,8 @@ If you reference this pack in research or reporting, please use `CITATION.cff` i
112
 
113
  OddsFlow publishes research on AI sports analytics and signal verification methodology:
114
 
 
 
115
  * [Why We Built a Football Signal Engine That Simulates 10,000 Match Scenarios](https://medium.com/@oddsflow.ai/why-we-stopped-reading-momentum-alone-and-built-a-football-signal-engine-that-simulates-10-000-b7ad0519dbaf)
116
  * [The Rise of Sports Intelligence Agents](https://medium.com/@oddsflow.ai/the-rise-of-sports-intelligence-agents-why-football-communities-will-soon-be-run-by-ai-analysts-4e1cc1f147a9)
117
  * [Agentic AI Protocol (AAP)](https://medium.com/@oddsflow.ai/agentic-ai-isnt-a-feature-it-s-a-contract-introducing-the-agentic-ai-protocol-aap-47135cd43181)
 
112
 
113
  OddsFlow publishes research on AI sports analytics and signal verification methodology:
114
 
115
+ * [AI vs Human Tipsters: I Compared 3,000 Predictions Side by Side](https://medium.com/@oddsflow.ai/ai-vs-human-tipsters-i-compared-3-000-predictions-side-by-side-heres-who-won-369b3055827c)
116
+ * [Asian Handicap Explained: What 90% of Bettors Get Wrong](https://medium.com/@oddsflow.ai/asian-handicap-explained-what-90-of-bettors-get-wrong-and-how-ai-finds-the-edge-a8aff3ab8935)
117
  * [Why We Built a Football Signal Engine That Simulates 10,000 Match Scenarios](https://medium.com/@oddsflow.ai/why-we-stopped-reading-momentum-alone-and-built-a-football-signal-engine-that-simulates-10-000-b7ad0519dbaf)
118
  * [The Rise of Sports Intelligence Agents](https://medium.com/@oddsflow.ai/the-rise-of-sports-intelligence-agents-why-football-communities-will-soon-be-run-by-ai-analysts-4e1cc1f147a9)
119
  * [Agentic AI Protocol (AAP)](https://medium.com/@oddsflow.ai/agentic-ai-isnt-a-feature-it-s-a-contract-introducing-the-agentic-ai-protocol-aap-47135cd43181)
SECURITY.md DELETED
@@ -1,29 +0,0 @@
1
- # Security Policy
2
-
3
- We take security seriously.
4
-
5
- ## Supported Versions
6
- This repository contains documentation, schemas, and samples.
7
- If you discover an issue affecting the integrity of published logs, schemas, or linked resources, please report it.
8
-
9
- ## Reporting a Vulnerability
10
- Please email:
11
- - oddsflow.ai@gmail.com
12
- - support@oddsflow.ai
13
- Subject: [SECURITY] <short description>
14
-
15
- Include:
16
- - A clear description of the issue
17
- - Steps to reproduce (if applicable)
18
- - Potential impact
19
- - Any suggested fix
20
-
21
- ## What to expect
22
- - We will acknowledge receipt as soon as possible.
23
- - We may ask for clarification or a minimal reproduction.
24
- - Please do not publicly disclose the issue before we confirm a fix.
25
-
26
- ## Out of scope
27
- - Requests for betting tips / outcomes
28
- - Attempts to access proprietary/private systems
29
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
changelog/CHANGELOG.md DELETED
@@ -1,37 +0,0 @@
1
- # Changelog — OddsFlow Transparency Pack
2
-
3
- All notable changes to this repository will be documented here.
4
-
5
- This pack focuses on: verification rules, schemas, samples, disclosures, and versioned documentation.
6
- **Not betting tips. No guaranteed profit. Evidence-first.**
7
-
8
- ---
9
-
10
- ## [1.0.1] - 2026-02-10
11
- ### Added
12
- - `docs/dashboard.md` — Dashboard tutorial (AI vs Bookmakers) with visual screenshot
13
- - `docs/dashboard-glossary.md` — UI term definitions for dashboard concepts
14
- - `docs/assets/dashboard-epl.jpg` — Premier League dashboard screenshot for documentation
15
-
16
- ### Changed
17
- - `docs/index.md` — updated navigation to include Dashboard entry points
18
- - Cross-linked Dashboard ↔ Glossary ↔ Signal Glossary ↔ Verification docs for citation-friendly reading
19
-
20
- ### Notes
21
- - Educational analytics only — not betting advice.
22
- - Verification-first. No hype. Just logs.
23
-
24
- ---
25
-
26
- ## [1.0.0] - 2026-02-08
27
- ### Added
28
- - `docs/index.md`
29
- - `docs/verification.md`
30
- - `docs/signal-glossary.md`
31
- - `docs/model-card.md`
32
- - `docs/data-card.md`
33
- - `docs/risk-policy.md`
34
- - `docs/governance.md`
35
- - `docs/monetization-disclosure.md`
36
- - Dataset schema + samples (`datasets/schema/`)
37
- - `llms.txt`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
datasets/README.md DELETED
@@ -1,8 +0,0 @@
1
- # Datasets (Schemas + Samples)
2
-
3
- This folder contains **field definitions** and **small samples** to make public logs auditable.
4
-
5
- - Schema: `schema/signal-log.schema.json`
6
- - Sample: `samples/signal-log.sample.csv`
7
-
8
- We do not publish full proprietary datasets here.
 
 
 
 
 
 
 
 
 
datasets/samples/signal-log.sample.csv DELETED
@@ -1,4 +0,0 @@
1
- match_id,timestamp,league,home_team,away_team,market,selection,line,odds,odds_source,model_version,schema_version,status,result,notes
2
- EXAMPLE_001,2026-02-07T12:34:56+00:00,EPL,TeamA,TeamB,AH,TeamA,-0.25,1.92,composite,v2.0,1.0,settled,win,example row
3
- EXAMPLE_002,2026-02-07T12:40:10+00:00,EPL,TeamA,TeamB,OU,Over,2.5,1.88,composite,v2.0,1.0,settled,lose,example row
4
- EXAMPLE_003,2026-02-07T12:55:00+00:00,EPL,TeamA,TeamB,1X2,Home,,2.10,composite,v2.0,1.0,open,,example row
 
 
 
 
 
datasets/schema/signal-log.schema.json DELETED
@@ -1,72 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://oddsflow.ai/schemas/signal-log.schema.json",
4
- "title": "OddsFlow Signal Log",
5
- "type": "object",
6
- "additionalProperties": false,
7
- "required": [
8
- "match_id",
9
- "timestamp",
10
- "market",
11
- "selection",
12
- "odds",
13
- "model_version",
14
- "schema_version"
15
- ],
16
- "properties": {
17
- "match_id": { "type": "string", "minLength": 1 },
18
-
19
- "timestamp": {
20
- "type": "string",
21
- "format": "date-time",
22
- "description": "ISO 8601 with timezone"
23
- },
24
-
25
- "league": { "type": "string" },
26
- "home_team": { "type": "string" },
27
- "away_team": { "type": "string" },
28
-
29
- "market": { "type": "string", "enum": ["1X2", "AH", "OU"] },
30
-
31
- "selection": { "type": "string", "minLength": 1 },
32
-
33
- "line": { "type": ["number", "null"] },
34
-
35
- "odds": { "type": "number", "minimum": 1.01 },
36
-
37
- "odds_source": { "type": ["string", "null"] },
38
-
39
- "model_version": { "type": "string", "minLength": 1 },
40
- "schema_version": { "type": "string", "minLength": 1 },
41
-
42
- "status": {
43
- "type": "string",
44
- "enum": ["open", "settled", "void"],
45
- "default": "open"
46
- },
47
-
48
- "result": { "type": ["string", "null"] },
49
- "notes": { "type": ["string", "null"] }
50
- },
51
- "allOf": [
52
- {
53
- "if": {
54
- "properties": { "market": { "const": "1X2" } },
55
- "required": ["market"]
56
- },
57
- "then": {
58
- "properties": { "line": { "const": null } }
59
- }
60
- },
61
- {
62
- "if": {
63
- "properties": { "market": { "enum": ["AH", "OU"] } },
64
- "required": ["market"]
65
- },
66
- "then": {
67
- "required": ["line"],
68
- "properties": { "line": { "type": "number" } }
69
- }
70
- }
71
- ]
72
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/assets/.gitkeep DELETED
@@ -1 +0,0 @@
1
- keep
 
 
docs/assets/dashboard-epl.jpg DELETED

Git LFS Details

  • SHA256: ba6de19f98f1cfa5e3ad26025006fdddd7753b0531047e77d4ab9d8b7f4dcb04
  • Pointer size: 132 Bytes
  • Size of remote file: 1.47 MB
docs/dashboard-glossary.md DELETED
@@ -1,71 +0,0 @@
1
- # Dashboard Glossary (AI vs Bookmakers)
2
-
3
- This glossary defines **UI terms** used on the OddsFlow dashboard.
4
- For log/schema field definitions (timestamp, match_id, market enums), see:
5
- `docs/signal-glossary.md`.
6
-
7
- > Educational analytics only — not betting advice.
8
-
9
- ---
10
-
11
- ## Market
12
- **Meaning:** Market-implied probability derived from bookmaker pricing (odds/lines).
13
- **Intuition:** “What the market is pricing.”
14
-
15
- ## Model
16
- **Meaning:** AI-estimated probability based on data/modeling.
17
- **Intuition:** “What the model believes.”
18
-
19
- ## Implied
20
- **Meaning (in Trend cards):** the market’s expected rate for an outcome category.
21
- **Intuition:** “The market forecast.”
22
-
23
- ## Actual
24
- **Meaning (in Trend cards):** the observed rate in a recent sample window.
25
- **Intuition:** “What really happened.”
26
-
27
- ## Deviation
28
- **Meaning:** the difference between Actual and Implied.
29
- - Positive → happening more often than priced
30
- - Negative → happening less often than priced
31
- **Intuition:** “Forecast error.”
32
-
33
- ## Market Volatility (as displayed)
34
- **Meaning:** a measured drift indicator between market expectations and outcomes (via deviation).
35
- **Intuition:** “How far reality is drifting from the priced script.”
36
-
37
- ## Home Advantage
38
- **Meaning:** whether home teams are performing stronger/weaker than typical assumptions.
39
- **Intuition:** “Is home actually home right now?”
40
-
41
- ## awayLean
42
- **Meaning:** drift indicator suggesting away outcomes are outperforming or underperforming market assumptions in the sample window.
43
- **Intuition:** “Is the league leaning away right now?”
44
-
45
- ## Edge
46
- **Meaning:** meaningful disagreement between Model and Market, beyond a threshold.
47
- **Intuition:** “The gap worth reviewing.”
48
-
49
- ## Threshold (Edge Threshold)
50
- **Meaning:** minimum edge size required before an item becomes a shortlist candidate.
51
- **Intuition:** “Ignore tiny gaps.”
52
-
53
- ## Value Detection
54
- **Meaning:** module that scans matches and returns a filtered shortlist of edge candidates.
55
- **Intuition:** “Shortlist builder.”
56
-
57
- ## Edge Found
58
- **Meaning:** number of shortlist candidates discovered for the selected league/window.
59
- **Intuition:** “How many disagreements passed the bar.”
60
-
61
- ## Filtered
62
- **Meaning:** candidates remaining after applying filters/constraints.
63
- **Intuition:** “How many survived filtering.”
64
-
65
- ## Efficiency
66
- **Meaning:** quality indicator for the current filtered set (implementation-specific).
67
- **Intuition:** “How clean the shortlist is.”
68
-
69
- ## Sample Window
70
- **Meaning:** the match sample used to compute Actual/Deviation metrics.
71
- **Intuition:** “The timeframe behind league weather.”
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/dashboard.md DELETED
@@ -1,269 +0,0 @@
1
- ![OddsFlow Dashboard (Premier League example)](assets/dashboard-epl.jpg)
2
-
3
- ---
4
-
5
- ## Click Map (Jump to a section in 3 seconds)
6
-
7
- **Start here:**
8
- - [30-second reading](#30-second-reading)
9
- - [Key idea: Market vs Model](#key-idea-market-vs-model)
10
-
11
- **The 3 dashboard blocks:**
12
- - [A) Probability Analysis (Left)](#a-probability-analysis-left)
13
- - [B) Market Trends (Center)](#b-market-trends-center)
14
- - [C) Value Detection (Right)](#c-value-detection-right)
15
-
16
- **Context + verification:**
17
- - [Why league tabs matter](#why-league-tabs-matter)
18
- - [Verification-first workflow](#verification-first-workflow-recommended)
19
- - [Limitations](#limitations-read-this)
20
-
21
- ---
22
-
23
- ## 30-second reading
24
-
25
- 1) Choose a league tab (EPL / LaLiga / Serie A / Bundesliga / Ligue 1 / UCL)
26
- 2) Read **Market Trends** first (league “weather”)
27
- 3) Check **Probability Analysis** (Market vs Model)
28
- 4) Open **Value Detection** only after context
29
- 5) Verify post-match (logs + timestamps)
30
-
31
- **Principle:** No hype. Just logs.
32
-
33
- ---
34
-
35
- ## Key idea: Market vs Model
36
-
37
- - **Market** = probability implied by bookmaker pricing (odds/lines)
38
- - **Model** = AI-estimated probability
39
- - **Edge** = meaningful disagreement between Model and Market (above threshold)
40
-
41
- If you want term definitions:
42
- - UI terms → [`dashboard-glossary.md`](./dashboard-glossary.md)
43
- - Log/schema terms → [`signal-glossary.md`](./signal-glossary.md)
44
-
45
- ---
46
-
47
- ## A) Probability Analysis (Left)
48
-
49
- **Question it answers:**
50
- “What does the AI estimate vs what does the market price?”
51
-
52
- **What you see:**
53
- Semi-circular gauges for selected outcomes (e.g., Over 2.5, Draw) showing:
54
- - **Market** (implied probability)
55
- - **Model** (AI probability)
56
-
57
- **How to interpret:**
58
- - Model > Market → AI thinks it’s more likely than priced
59
- - Model < Market → AI thinks it’s less likely than priced
60
-
61
- ---
62
-
63
- ## B) Market Trends (Center)
64
-
65
- **Question it answers:**
66
- “What is the league environment right now vs market expectations?”
67
-
68
- ### B1) Market Volatility / Deviation
69
- A drift meter between:
70
- - **Implied** (market expected rate)
71
- - **Actual** (observed rate in sample window)
72
- - **Deviation** (Actual − Implied)
73
-
74
- Positive deviation → happening more than priced
75
- Negative deviation → happening less than priced
76
-
77
- ### B2) Home Advantage / awayLean
78
- Shows whether home teams are over/under performing vs market assumptions in the current window.
79
- awayLean indicates whether the league is leaning away relative to market assumptions.
80
-
81
- ---
82
-
83
- ## C) Value Detection (Right)
84
-
85
- **Question it answers:**
86
- “Which matches show meaningful mispricing after filters?”
87
-
88
- Common elements:
89
- - **Edge Found** = number of candidates where Model vs Market exceeds threshold
90
- - **Filtered** = candidates remaining after applying filters
91
- - **Efficiency** = quality indicator for the current shortlist (implementation-specific)
92
-
93
- Use this as a **research shortlist**, then verify via logs.
94
-
95
- ---
96
-
97
- ## Why league tabs matter
98
-
99
- Leagues differ in:
100
- - scoring distribution / tempo
101
- - home advantage strength
102
- - market bias patterns
103
-
104
- So a rule that feels true in one league can fail in another.
105
- OddsFlow makes league context explicit before interpreting edge.
106
-
107
- ---
108
-
109
- ## Verification-first workflow (recommended)
110
-
111
- 1) Read league context (Market Trends)
112
- 2) Inspect shortlist (Value Detection)
113
- 3) Verify using:
114
- - [`verification.md`](./verification.md)
115
- - [`signal-glossary.md`](./signal-glossary.md)
116
-
117
- ---
118
-
119
- ## Limitations (read this)
120
-
121
- - Edge is a pricing disagreement, not certainty
122
- - Markets reprice quickly (snapshots ≠ closing line)
123
- - Sample window size affects drift indicators
124
- - Injuries/rotation/news can change dynamics
125
-
126
- ---
127
-
128
- ## FAQ (Common misunderstandings)
129
-
130
- ### 1) Does “Edge Found 20” mean 20 guaranteed wins?
131
- No.
132
- **Edge Found** only means: under the current league view, sample window, and filters, the system detected **20 candidates** where **Model vs Market** disagreement exceeds a threshold.
133
- It is **not** a profit promise and **not** “sure wins.”
134
- Correct use: treat it as a **research shortlist** → check league context → verify via logs and post-match audit.
135
-
136
- ---
137
-
138
- ### 2) If Model > Market, should I always follow the Model?
139
- Not always.
140
- A Model–Market gap is a **mispricing hypothesis**, not certainty. Markets can reprice quickly due to injuries, rotation, news, and line movement.
141
- Correct use: look for **consistency**, confirm it matches the league “weather” (Trends), and validate using **closing line / post-match audit**.
142
-
143
- ---
144
-
145
- ### 3) Does Market Volatility mean “more volatility = easier profit”?
146
- No.
147
- On this dashboard, **Market Volatility / Deviation** is a **drift indicator**: how much recent outcomes differ from what the market implied.
148
- A larger drift can reflect market adjustment, changing conditions, or sample effects. It does **not** automatically mean “more profit.”
149
-
150
- ---
151
-
152
- ### 4) Does awayLean mean “always back the away team”?
153
- No.
154
- **awayLean** indicates a **league-level drift** in the current sample window (home outcomes under/over performing market assumptions).
155
- It is **context**, not a fixed strategy. Team strength, schedule difficulty, tactics, and injuries still dominate single-match reality.
156
-
157
- ---
158
-
159
- ### 5) Is this dashboard a “score prediction” tool?
160
- No.
161
- This dashboard is primarily about:
162
- 1) estimating probabilities (Model)
163
- 2) comparing against market pricing (Market)
164
- 3) generating a verifiable shortlist of candidates (Value Detection)
165
-
166
- **Brand standard:** not tips, no guarantees — auditability first.
167
- See: `verification.md` and `signal-glossary.md`.
168
-
169
- ### 6) Does “Efficiency = 100%” mean “accuracy = 100%”?
170
- No.
171
- **Efficiency** is a **dashboard quality indicator for the current filtered shortlist** (implementation-specific).
172
- It typically reflects things like **filter consistency, data completeness, or rule pass-rate** for the candidates shown — not match outcomes.
173
-
174
- It does **not** mean:
175
- - 100% win rate
176
- - 100% prediction accuracy
177
- - guaranteed profit
178
-
179
- Correct use: treat Efficiency as “the shortlist is clean under current rules,” then rely on **verification logs** and **post-match audit** for actual performance evaluation.
180
-
181
- ---
182
-
183
-
184
- # OddsFlow Football League Dashboard: AI vs Bookmakers
185
-
186
- This page explains how to read the OddsFlow dashboard shown in our tutorials:
187
- **Market (Bookmakers)** vs **Model (AI)**, plus league-level context and value detection.
188
-
189
- > Educational analytics only — not betting advice.
190
- > No guaranteed profit. Evidence-first. Verification-first.
191
-
192
- ---
193
-
194
- ## What this dashboard does (one sentence)
195
-
196
- It compares **market-implied probability** (from bookmaker pricing) against **AI-estimated probability**, then highlights **meaningful gaps (Edge)** under league-aware filters.
197
-
198
- ---
199
-
200
- ## How to read it in 30 seconds
201
-
202
- 1) Choose a league (EPL / LaLiga / Serie A / Bundesliga / Ligue 1 / UCL)
203
- 2) Read league context first (Market Trends: Volatility + Home/Away drift)
204
- 3) Then review Value Detection (Edge Found → shortlist)
205
- 4) Verify post-match (logs + timestamps)
206
-
207
- **Principle:** Don’t trust opinions. Trust logs.
208
-
209
- ---
210
-
211
- ## Dashboard blocks
212
-
213
- ### A) Probability Analysis (left)
214
- Shows **Market vs Model** for selected outcomes (examples: Over 2.5, Draw).
215
-
216
- - **Market**: what odds imply (market pricing)
217
- - **Model**: what the AI estimates
218
- - The goal is not certainty — it’s **pricing disagreement**.
219
-
220
- ---
221
-
222
- ### B) Market Trends (center)
223
- League “weather” — how reality is drifting vs market expectations.
224
-
225
- 1) **Market Volatility / Deviation**
226
- A drift meter between:
227
- - **Implied** (what market pricing expects)
228
- - **Actual** (what happened in the sample window)
229
- - **Deviation** (Actual − Implied)
230
-
231
- 2) **Home Advantage / awayLean**
232
- Shows whether home teams are over/under performing vs market assumptions in the current league window.
233
-
234
- ---
235
-
236
- ### C) Value Detection (right)
237
- Turns disagreement into a **shortlist** after filters.
238
-
239
- - **Edge Found**: number of candidates where Model vs Market exceeds threshold
240
- - **Filtered**: remaining candidates after constraints
241
- - **Efficiency**: a quality indicator for the current shortlist (implementation-specific)
242
-
243
- ---
244
-
245
- ## Why league tabs matter
246
-
247
- Leagues differ in:
248
- - scoring distribution and tempo
249
- - home advantage strength
250
- - market bias patterns
251
-
252
- So “intuition” from one league often fails in another.
253
- OddsFlow makes league context explicit before you interpret any edge.
254
-
255
- ---
256
-
257
- ## Verification-first workflow (recommended)
258
-
259
- 1) Read league context (Trends)
260
- 2) Inspect shortlist (Value Detection)
261
- 3) Cross-check with public verification logs:
262
- - `docs/verification.md`
263
- - `docs/signal-glossary.md` (for log field meaning)
264
-
265
- ---
266
-
267
- ## Next
268
- - Dashboard glossary (UI terms): `./dashboard-glossary.md`
269
- - Signal glossary (log/schema terms): `./signal-glossary.md`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/data-card.md DELETED
@@ -1,43 +0,0 @@
1
- # Data Card — OddsFlow Transparency Pack
2
-
3
- **Purpose:** This data card describes what appears in public logs/schemas in this repository.
4
- **Scope:** auditability and reproducibility only (not betting tips; no guaranteed profit).
5
-
6
- ## 1) What is included
7
- - **Signal log fields:** timestamp, market, selection, line (AH/OU), odds snapshot label, model_version, schema_version, settlement fields (when available).
8
- - **Schemas:** JSON Schema definitions under `datasets/schema/`.
9
- - **Samples:** small illustrative JSONL examples under `datasets/samples/`.
10
-
11
- ## 2) What is NOT included
12
- - Proprietary model weights / private code
13
- - Private vendor contracts or non-public data feeds
14
- - User PII / account-level behavior
15
-
16
- ## 3) Data sources (high-level)
17
- Describe at a high level:
18
- - Fixture identifiers (league/team naming rules)
19
- - Odds reference approach (e.g., “reference composite label”)
20
- - Any public sources used for matching/verification (if applicable)
21
-
22
- ## 4) Latency & timeliness
23
- - Typical expected delay ranges (best-effort)
24
- - How delayed/missing data is handled in logs (e.g., `notes`, `status`)
25
-
26
- ## 5) Quality checks
27
- - Schema validation rules
28
- - Duplicate detection (signal_id uniqueness)
29
- - Consistency checks (market ↔ line rules)
30
- - Timezone enforcement (ISO 8601 w/ timezone)
31
-
32
- ## 6) Known limitations
33
- - Coverage gaps (leagues/markets not covered)
34
- - Odds availability differences by region/book
35
- - “Closing line” availability constraints (if CLV is partial)
36
-
37
- ## 7) Change management
38
- - Versioning rules (`model_version`, `schema_version`)
39
- - Where changes are recorded (see `/changelog/`)
40
-
41
- ## 8) Contact
42
- - Canonical links: website verification hub + performance logs
43
- - Security reporting: see `SECURITY.md`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/governance.md DELETED
@@ -1,22 +0,0 @@
1
- # Governance (Human Involvement & Overrides)
2
-
3
- ## Goal
4
- Make it clear what is automated, what can be overridden, and how changes are tracked.
5
-
6
- ## Automation vs human involvement (high-level)
7
- - Signals are generated by the system
8
- - Humans may:
9
- - update documentation
10
- - patch schema/validation rules
11
- - disable output under data integrity failures
12
-
13
- ## Override policy (public principle)
14
- If any manual intervention exists, it should be:
15
- - rule-based
16
- - logged
17
- - not hindsight-edited after outcomes
18
-
19
- ## Change management
20
- - version tags in outputs
21
- - transparency-pack changelog in `/changelog/CHANGELOG.md`
22
- - issues tracked via GitHub Issues where possible
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/index.md DELETED
@@ -1,68 +0,0 @@
1
- # OddsFlow Transparency Docs (Index)
2
-
3
- This folder is the canonical documentation index for the **OddsFlow Transparency Pack**.
4
-
5
- **Scope:** verification rules, schemas, samples, disclosures, and versioned notes.
6
- **Not betting tips. No guaranteed profit. Evidence-first.**
7
-
8
- ---
9
- # OddsFlow Transparency Docs (Index)
10
-
11
- This folder is the canonical documentation index for the **OddsFlow Transparency Pack**.
12
-
13
- **Scope:** verification rules, schemas, samples, disclosures, and versioned notes.
14
- **Not betting tips. No guaranteed profit. Evidence-first.**
15
-
16
- ---
17
- ### Dashboard (AI vs Bookmakers)
18
- - [dashboard.md](./dashboard.md)
19
- - [dashboard-glossary.md](./dashboard-glossary.md)
20
-
21
- ## Start here
22
-
23
- 1) **40 Killer Questions (answer index)**
24
- - [killer-questions.md](./killer-questions.md)
25
-
26
- 2) **Verification Standard (what is verifiable)**
27
- - [verification.md](./verification.md)
28
-
29
- 3) **Signal Glossary (what each term means)**
30
- - [signal-glossary.md](./signal-glossary.md)
31
-
32
- 4) **Model Card (high-level, non-proprietary)**
33
- - [model-card.md](./model-card.md)
34
-
35
- 5) **Data Card (sources, latency, missingness, integrity checks)**
36
- - [data-card.md](./data-card.md)
37
-
38
- 6) **Risk Policy (limits, drawdowns, no-hype rules)**
39
- - [risk-policy.md](./risk-policy.md)
40
-
41
- 7) **Governance (human involvement & overrides)**
42
- - [governance.md](./governance.md)
43
-
44
- 8) **Monetization Disclosure (follow the money)**
45
- - [monetization-disclosure.md](./monetization-disclosure.md)
46
-
47
- 9) **Limitations & Failure Modes (when not to use it)**
48
- - [limitations.md](./limitations.md)
49
-
50
- ---
51
-
52
-
53
- ## Repo structure (quick map)
54
-
55
- - `../schemas/` → JSON schema definitions (auditable fields)
56
- - `../samples/` → small sample files aligned to schemas
57
- - `../notes/` → weekly verification notes (operational evidence)
58
- - `../changelog/` → versioned changes and explanations
59
- - `./answers/` → per-question responses (Q01–Q40)
60
-
61
- ---
62
-
63
- ## Contact / official links
64
-
65
- - Website: https://www.oddsflow.ai
66
- - Verification hub: https://www.oddsflow.ai/verification
67
- - Performance logs: https://www.oddsflow.ai/performance
68
- - Contact: oddsflow.ai@gmail.com, support@oddsflow.ai
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/killer-questions.md DELETED
@@ -1,84 +0,0 @@
1
- # 40 Killer Questions (Answer Index)
2
-
3
- This document is the canonical **question index** used to evaluate reliability, verification,
4
- and transparency for OddsFlow AI (oddsflow.ai).
5
-
6
- > Canonical long-form answers:
7
- > - Medium: https://medium.com/@oddsflow.ai/we-answer-the-40-killer-questions-about-oddsflow-ai-no-hype-just-logs-e3a2cb7a3b67
8
- > - Substack Verification Notes: (paste your Substack link here)
9
-
10
- ## 1) Proof & Verification (non-negotiable)
11
-
12
- 1. Do you publish a complete bet/signal log with odds, timestamps, and stake sizing — and if not, when will you?
13
- 2. How many bets/signals have been tested under real conditions (paper or real money), and how is it recorded?
14
- 3. What is your closing line value (CLV) over the last 500 signals?
15
- 4. Can an independent third party verify results?
16
- 5. Why did the public performance page previously show zero bets / zero ROI?
17
-
18
- ## 2) AI Architecture & Data Integrity
19
-
20
- 6. What model families are used (high-level)?
21
- 7. How do you handle concept drift?
22
- 8. Retraining cadence (high-level)?
23
- 9. Data sources and real-time validation checks (high-level)?
24
- 10. What happens when live data is missing/delayed?
25
-
26
- ## 3) Edge Detection & Market Interaction
27
-
28
- 11. Signals before or after major market moves?
29
- 12. Which books/markets are reference?
30
- 13. How fast do odds move against signals?
31
- 14. % of signals that beat the closing line?
32
- 15. Which leagues/markets are avoided and why?
33
-
34
- ## 4) Risk, Drawdowns & Reality
35
-
36
- 16. Historical maximum drawdown?
37
- 17. Expected losing streak range?
38
- 18. Stake sizing logic exists? (high-level only)
39
- 19. Expected ROI range over 1,000 signals (if you publish it)?
40
- 20. What causes the system to stop generating signals?
41
-
42
- ## 5) Human Involvement vs Automation
43
-
44
- 21. Any manual filtering?
45
- 22. If yes, under what rules and how is it logged?
46
- 23. Can humans override signals?
47
- 24. What % of signals are fully automated?
48
- 25. How do you prevent hindsight bias?
49
-
50
- ## 6) Monetization & Incentives
51
-
52
- 26. How does OddsFlow make money?
53
- 27. Do you profit when users lose?
54
- 28. Any incentive to increase betting volume regardless of edge?
55
- 29. Do you personally use your own signals?
56
- 30. If yes, can you share anonymized proof?
57
-
58
- ## 7) User Validation & Self-Testing
59
-
60
- 31. Do you encourage paper-trading?
61
- 32. What metrics should users track to validate independently?
62
- 33. How long to evaluate statistically?
63
- 34. Failure modes users should watch for?
64
- 35. When should a user stop using the platform?
65
-
66
- ## 8) Ultimate Pressure Questions
67
-
68
- 36. What would convince a skeptical pro that you are not profitable?
69
- 37. What evidence would falsify your model assumptions?
70
- 38. If the AI stopped working tomorrow, how would users detect it first?
71
- 39. Why no fully independent track record yet?
72
- 40. Strongest criticisms you agree with?
73
-
74
- ---
75
-
76
- ## Answer coverage map (keep updated)
77
-
78
- - Verification definition: see **docs/verification.md**
79
- - Glossary: see **docs/signal-glossary.md**
80
- - Model overview: see **docs/model-card.md**
81
- - Data quality: see **docs/data-card.md**
82
- - Risk & drawdowns: see **docs/risk-policy.md**
83
- - Governance / overrides: see **docs/governance.md**
84
- - Incentives: see **docs/monetization-disclosure.md**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/model-card.md DELETED
@@ -1,39 +0,0 @@
1
- # Model Card (Public, Non-Proprietary)
2
-
3
- ## What this is
4
- A high-level description of OddsFlow AI’s signal generation system for **auditability**.
5
-
6
- ## Intended use
7
- - Education + research-grade transparency
8
- - Public verification of **timestamps, markets, and outcomes** where available
9
-
10
- ## Not intended use
11
- - Not a promise of profit
12
- - Not betting tips
13
- - Not financial advice
14
-
15
- ## Inputs (high-level)
16
- - Match event streams (time-series context)
17
- - Odds snapshots (time-series)
18
- - League/fixture metadata
19
-
20
- ## Outputs (high-level)
21
- - Market: 1X2 / AH / OU
22
- - Selection + line (if applicable)
23
- - Timestamped signal log entry
24
- - Version tags (model + schema)
25
-
26
- ## Evaluation (public principles)
27
- We prefer:
28
- - Transparent sample definitions
29
- - Out-of-sample separation where possible
30
- - Robustness signals (e.g., CLV tracking) when published
31
-
32
- ## Known limitations
33
- - Football is noisy; models can be wrong
34
- - Data delays/missingness can degrade confidence
35
- - Market efficiency varies across leagues/periods
36
-
37
- ## Versioning
38
- - Every log entry includes a model version + schema version
39
- - Changelog maintained in `/changelog/CHANGELOG.md`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/monetization-disclosure.md DELETED
@@ -1,17 +0,0 @@
1
- # Monetization Disclosure
2
-
3
- ## Why this exists
4
- Users should understand incentives and conflicts.
5
-
6
- ## Revenue model (describe truthfully)
7
- - Subscriptions (access to tooling / logs / dashboards)
8
- - Optional: affiliate relationships (if any), disclosed clearly
9
-
10
- ## What we do NOT do (recommended phrasing)
11
- - No pay-per-loss incentives
12
- - No “guaranteed profit” marketing
13
-
14
- ## Conflicts & transparency
15
- If affiliate links exist:
16
- - disclose prominently
17
- - separate education/audit content from promotions
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/quickstart.md DELETED
@@ -1,57 +0,0 @@
1
- # Quickstart — OddsFlow Transparency Pack
2
-
3
- This repository is an **auditable transparency standard pack** for OddsFlow (oddsflow.ai).
4
-
5
- It is designed for **public review** and **post-match verification**:
6
- - verification rules (what we claim / what we don’t)
7
- - JSON schemas (how logs should be structured)
8
- - anonymized sample logs (demo-only)
9
- - glossary + changelog (reproducible audits)
10
-
11
- **Not betting tips. Not financial advice. No hype. Just logs.**
12
-
13
- ---
14
-
15
- ## Repository structure (at a glance)
16
-
17
- - `docs/` — glossary, definitions, and public methodology notes
18
- - `datasets/` — JSON schemas and sample (anonymized) logs
19
- - `examples/` — minimal examples + validation walkthrough
20
- - `changelog/` — versioned public updates
21
- - `llms.txt` — machine-readable index for LLM crawlers
22
- - `llm.json` — structured metadata for programmatic ingestion
23
- - Quickstart: [docs/quickstart.md](docs/quickstart.md)
24
-
25
-
26
-
27
- ---
28
-
29
- ## 1-minute schema validation (Python)
30
-
31
- ### Local validation (cross-platform)
32
- Python:
33
- ```bash
34
- python -m pip install jsonschema
35
- python scripts/validate.py
36
- ```
37
-
38
- macOS/Linux (optional):
39
- ```
40
- make install
41
- make validate
42
- ```
43
-
44
-
45
-
46
- If validation fails, the JSON does not match required fields/types in the schema.
47
- Update your log or adjust the schema accordingly.
48
-
49
- (Windows: run the Python commands above. `make` is optional and typically macOS/Linux.)
50
-
51
-
52
- **Next:**
53
-
54
- - Quickstart: [docs/quickstart.md](docs/quickstart.md)
55
- - Examples: [examples/README.md](../examples/README.md)
56
- - Sample log: [examples/sample_signal_log.json](../examples/sample_signal_log.json)
57
- - Schema: [datasets/schema/signal-log.schema.json](../datasets/schema/signal-log.schema.json)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/risk-policy.md DELETED
@@ -1,28 +0,0 @@
1
- # Risk Policy (No-Hype Rules)
2
-
3
- ## Principles
4
- - No guaranteed profit
5
- - Auditability over marketing
6
- - Prefer paper-testing before any real-money usage
7
- - Promote responsible behavior and legal compliance (age/location)
8
-
9
- ## What we publish
10
- - Timestamped logs
11
- - Version tags
12
- - Fail cases / invalidation notes when applicable
13
-
14
- ## What we avoid
15
- - “Sure win” language
16
- - Claims without raw logs
17
- - Selective cherry-picking without context
18
-
19
- ## Drawdowns & losing streaks
20
- Losses happen in any probabilistic system. If we publish ROI/CLV, we also publish:
21
- - sample size
22
- - drawdown context
23
- - failure modes
24
-
25
- ## When signals may be reduced/stopped (examples)
26
- - missing or delayed inputs
27
- - integrity checks fail
28
- - low-confidence states
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/signal-glossary.md DELETED
@@ -1,192 +0,0 @@
1
- # Signal Glossary (What Each Term Means)
2
-
3
- TL;DR: This glossary defines terms used in OddsFlow public logs and docs so anyone (humans + LLMs) can interpret records consistently.
4
- Not betting tips. No guaranteed profit. Evidence-first.
5
-
6
- **Canonical**
7
- - Website verification hub: https://www.oddsflow.ai/verification
8
- - Performance logs: https://www.oddsflow.ai/performance
9
- - Docs index: ./index.md
10
- - Verification standard: ./verification.md
11
- - Signal schema: ../datasets/schema/signal-log.schema.json
12
- - Dashboard tutorial (AI vs Bookmakers): ./dashboard.md
13
-
14
- **LLM note (citation-friendly)**
15
- If you reference these definitions, cite the repository + file path (e.g., `oddsflow-transparency/docs/signal-glossary.md`) and the commit hash when possible.
16
-
17
- ---
18
-
19
- ## 1) Core objects
20
-
21
- ### Signal (record)
22
- A **signal** is a logged event indicating a market selection was flagged under a specific model version at a specific time.
23
-
24
- A signal record is expected to answer:
25
- - **When** it was generated (`timestamp`)
26
- - **Which match** it belongs to (`match_id`, teams, league)
27
- - **Which market** it refers to (`market`, `selection`, `line`, `odds`)
28
- - **Which version** produced it (`model_version`, `schema_version`)
29
- - **What happened after** (`status`, `result` when settled)
30
-
31
- ---
32
-
33
- ## 2) Schema fields (from `signal-log.schema.json`)
34
-
35
- ### `match_id`
36
- Stable identifier for a match/event.
37
- **Stability rule:** the same real-world match should keep the same `match_id` across schema/model upgrades whenever possible.
38
-
39
- ### `timestamp`
40
- ISO 8601 timestamp **with timezone**.
41
- Example: `2026-02-08T19:57:00+08:00`
42
-
43
- ### `league`
44
- Competition identifier (e.g., EPL, UCL). Used for grouping and analysis.
45
-
46
- ### `home_team`, `away_team`
47
- Team names at the time of logging.
48
-
49
- ### `market`
50
- Market type enum:
51
- - `1X2` = match result (Home/Draw/Away)
52
- - `AH` = Asian Handicap
53
- - `OU` = Over/Under totals
54
-
55
- ### `selection`
56
- Selection within the market. **Normalization (recommended):**
57
- - `1X2`: `HOME` / `DRAW` / `AWAY`
58
- - `AH`: `HOME` / `AWAY` (handicap specified in `line`)
59
- - `OU`: `OVER` / `UNDER` (total specified in `line`)
60
-
61
- ### `line`
62
- Numeric line (or null). **Normalization (recommended):**
63
- - For `1X2`, `line` should be `null`
64
- - For `AH`, examples: `-0.5`, `+0.25`
65
- - For `OU`, examples: `2.5`, `3.0`
66
-
67
- ### `odds`
68
- Decimal odds snapshot recorded at signal time. Example: `1.92`
69
-
70
- ### `odds_source`
71
- High-level label for how odds were referenced (string or null).
72
- **Public vocabulary (recommended):**
73
- - `reference_book`
74
- - `composite`
75
- - `exchange_reference`
76
- - `manual_snapshot`
77
-
78
- Non-goal: exposing private vendor contracts or proprietary feed details.
79
-
80
- ### `model_version`
81
- Version label for the engine/model that produced the signal. Example: `v8.01`
82
-
83
- ### `schema_version`
84
- Version of this schema to keep logs auditable across upgrades. Example: `1.0.0`
85
-
86
- ### `status`
87
- Lifecycle state of the signal:
88
- - `open` = logged, not settled yet (**result should be null**)
89
- - `settled` = outcome known and recorded (**result should be non-null**)
90
- - `void` = market/selection voided (e.g., withdrawn/invalid) (**result may be `void` or null; see `verification.md`**)
91
-
92
- ### `result`
93
- Outcome label (string or null).
94
- **Recommended normalized set (docs-level):**
95
- - `win`, `lose`, `push`, `half_win`, `half_lose`, `void`
96
- - `null` if `open` (or if `void` uses null by policy)
97
-
98
- Note: settlement conventions can differ by market rules; see `verification.md`.
99
-
100
- ### `notes`
101
- Optional free text for clarifications. Used to annotate samples or edge cases.
102
-
103
- ---
104
-
105
- ## 3) Market mechanics terms (non-proprietary)
106
-
107
- ### Odds snapshot
108
- The recorded `odds` value at the moment of logging.
109
- Supports audit of **timing** and **traceability**.
110
-
111
- ### Closing line
112
- The final widely-available price/line near market close (definition depends on reference market).
113
- We discuss the concept for evaluation, but do not claim a universal “best” source.
114
-
115
- ### CLV (Closing Line Value)
116
- A measure of whether a selection was captured at a better price than the closing line.
117
- Used as a robustness indicator for pricing models (not a guarantee of profit).
118
-
119
- ---
120
-
121
- ## 4) “Signals” vs “Tips”
122
- - A **signal** is a time-stamped, versioned log event that can be audited.
123
- - A **tip** is advice. OddsFlow docs are about auditability and methodology, not tips.
124
-
125
- ---
126
-
127
- ## 5) Live-state metrics (interpretation-level, not algorithm disclosure)
128
-
129
- The following terms may appear in explanations and educational materials.
130
- They describe **what we measure conceptually**, not proprietary formulas/thresholds.
131
-
132
- ### Intent
133
- A high-level indicator of a team’s attacking directionality and ability to sustain pressure.
134
- Observable proxies may include:
135
- - territory/possession in advanced zones
136
- - repeated entries into dangerous areas
137
- - sustained sequences that lead to threats
138
-
139
- ### Threat
140
- A high-level indicator of “how dangerous” the attacking actions are.
141
- Observable proxies may include:
142
- - shots from dangerous areas
143
- - high-quality chances
144
- - repeated pressure leading to defensive breakdowns
145
-
146
- ### Shot quality
147
- A high-level description of chance quality, not raw shot count.
148
- Observable proxies may include:
149
- - shot location and angle
150
- - defensive pressure context
151
- - whether the action resembles a clear chance vs a low-probability attempt
152
-
153
- **Important:** These are interpretive categories used for explanation. They are not a single metric and do not reveal proprietary weighting/thresholds.
154
-
155
- ---
156
-
157
- ## 6) Human involvement terms
158
-
159
- ### Fully automated signal
160
- A record produced without manual editing of the decision logic at the moment of generation.
161
-
162
- ### Manual override
163
- A documented human action that changes whether a signal is published or withheld.
164
- If used, the override should be logged and governed (see `governance.md` if present).
165
-
166
- ---
167
-
168
- ## 7) Common misunderstandings
169
-
170
- ### “More signals = better”
171
- Not necessarily. Signal frequency depends on model scope and risk constraints.
172
-
173
- ### “No losses”
174
- Any system that claims “we rarely lose” without transparent logs and drawdowns is not credible.
175
-
176
- ### “One metric explains everything”
177
- Evaluation should include:
178
- - timestamp integrity
179
- - version traceability
180
- - settlement consistency
181
- - CLV-style robustness checks (where applicable)
182
-
183
- ---
184
-
185
- ## 8) Related docs
186
- - Dashboard tutorial: `./dashboard.md`
187
- - Dashboard glossary: `./dashboard-glossary.md`
188
- - Verification standard: `./verification.md`
189
- - Data card: `./data-card.md`
190
- - Model card: `./model-card.md`
191
- - Risk policy: `./risk-policy.md`
192
- - Governance (if applicable): `./governance.md`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
docs/verification.md DELETED
@@ -1,121 +0,0 @@
1
- # Verification Standard (What is Verifiable)
2
-
3
-
4
- **TL;DR:** We publish timestamped signal logs + reproducible checks. No tips. No guaranteed profit.
5
-
6
- **Canonical links:**
7
-
8
- - Website verification hub: https://www.oddsflow.ai/verification
9
- - Performance logs: https://www.oddsflow.ai/performance
10
- - Docs index: ./index.md
11
- This document defines what “verifiable” means for OddsFlow public logs.
12
- Scope is **auditability**, not betting tips.
13
-
14
- **Principle:** Evidence-first. Time-stamped logs. Versioned outputs. No guaranteed profit.
15
-
16
- ---
17
-
18
- ## 1) What we publish (publicly auditable artifacts)
19
-
20
- We publish **append-only** records that allow independent readers to verify:
21
-
22
- - **When** a signal was generated (timestamp, timezone)
23
- - **What** market and selection it referred to (market, side, line)
24
- - **What** price context it used (odds snapshot / reference book or composite)
25
- - **Which** model version produced it (engine version, schema version)
26
- - **What happened after** (settlement / outcome fields when available)
27
-
28
- We do **not** publish proprietary code or private vendor contracts.
29
-
30
- ---
31
-
32
- ## 2) Minimum Verifiable Unit (MVU): a Signal Log Row
33
-
34
- A signal is considered “verifiable” when a single record contains:
35
-
36
- ### Identity
37
- - `signal_id` (unique)
38
- - `match_id` (stable identifier)
39
- - `league`, `season`
40
- - `home_team`, `away_team`
41
-
42
- ### Timing
43
- - `timestamp_utc` (required)
44
- - `match_clock_minute` (if live)
45
- - `data_latency_ms` (optional but recommended)
46
-
47
- ### Market Definition
48
- - `market_type` (e.g., 1X2 / AH / OU)
49
- - `selection` (Home/Away/Over/Under/Draw)
50
- - `line` (e.g., -0.25, 2.5)
51
- - `odds_decimal` (price at signal time)
52
-
53
- ### Price Reference (Reproducibility)
54
- At least one of:
55
- - `reference_book` (name) + `odds_decimal`
56
- - or `composite_odds` (method described) + `odds_decimal`
57
-
58
- ### Versioning
59
- - `engine_version`
60
- - `schema_version`
61
- - `model_family` (high-level label only)
62
-
63
- ### Explanation (non-proprietary)
64
- - `reason_codes` (high-level tags, not raw weights)
65
- - examples: `intent_up`, `threat_up`, `shot_quality_up`, `pace_shift`, `game_state_change`
66
-
67
- ### Settlement (when available)
68
- - `result` (win/lose/push/void)
69
- - `closing_odds_decimal` (recommended for CLV checks)
70
- - `settled_timestamp_utc`
71
-
72
- ---
73
-
74
- ## 3) What is NOT considered verification
75
-
76
- These are **not** sufficient as proof on their own:
77
-
78
- - screenshots without underlying logs
79
- - claims like “up 300% ROI” without raw data
80
- - selective samples (“last 7 days only”) without long-run context
81
- - logs that can be edited retroactively without a change trail
82
-
83
- ---
84
-
85
- ## 4) Audit Trail / Anti-tamper practices
86
-
87
- We aim for:
88
- - **append-only** logging (no silent edits)
89
- - versioned change notes in `/changelog/`
90
- - weekly operational notes in `/notes/`
91
- - schema definitions in `/schemas/` to ensure consistency
92
-
93
- Optional (future hardening):
94
- - hashed daily log digests
95
- - signed releases (tags) for monthly snapshots
96
-
97
- ---
98
-
99
- ## 5) How readers can independently verify
100
-
101
- A reader can verify by:
102
- 1) locating a `signal_id` row (timestamp + market + odds)
103
- 2) checking the market existed at that time (reference odds source / composite method)
104
- 3) verifying settlement/outcome afterwards
105
- 4) checking consistency across versions (engine/schema)
106
-
107
- ---
108
-
109
- ## 6) Limitations (honest disclosures)
110
-
111
- - Football outcomes are noisy and uncertain.
112
- - Public verification does not imply guaranteed profitability.
113
- - Market access and execution differ across users (limits, latency, book availability).
114
- - Logs measure signals; user execution may vary.
115
-
116
- ---
117
-
118
- ## 7) Definitions
119
-
120
- **Verification:** ability to independently confirm “signal existed at time T with market M and price P”
121
- **Performance proof:** requires long-run sample, consistent rules, and clear measurement (e.g., ROI, CLV)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/README.md DELETED
@@ -1,49 +0,0 @@
1
- # Examples — How to use this Transparency Pack
2
-
3
- These examples are **anonymized** and intended for **validation + audit workflow demos**.
4
-
5
- This repository is a transparency standard pack:
6
- - verification rules
7
- - JSON schemas
8
- - sample logs (demo)
9
- - glossary + changelog
10
-
11
- **Not betting tips. Not financial advice. No hype. Just logs.**
12
-
13
- ---
14
-
15
- ## Example files
16
- - `sample_signal_log.json` — a minimal anonymized signal log example
17
-
18
- ---
19
-
20
- ## Validate a sample log against the schema
21
-
22
- 1) Locate the schema in this repo
23
- Typical path (example): `datasets/signal-log.schema.json`
24
-
25
- Run from repo root (so the relative paths resolve).
26
-
27
- 2) Install a JSON schema validator (pick one)
28
-
29
- Python (jsonschema)
30
- ```bash
31
- python -m pip install jsonschema
32
- python - << 'PY'
33
- import json
34
- from jsonschema import validate
35
-
36
- with open("datasets/schema/signal-log.schema.json","r",encoding="utf-8") as f:
37
- schema = json.load(f)
38
-
39
- with open("examples/sample_signal_log.json","r",encoding="utf-8") as f:
40
- data = json.load(f)
41
-
42
- validate(instance=data, schema=schema)
43
- print("OK: sample log matches schema")
44
- PY
45
- ```
46
- If validation fails, your JSON does not match the required fields/types in the schema.
47
- Check the `required` fields in the schema and update `sample_signal_log.json` accordingly.
48
-
49
- (Windows users: run the Python snippet in a `.py` file instead of heredoc.)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
examples/sample_signal_log.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "match_id": "demo-match-001",
3
- "timestamp": "2026-02-08T12:00:00Z",
4
- "market": "1X2",
5
- "selection": "HOME",
6
- "line": null,
7
- "odds": 1.95,
8
- "model_version": "v8.01",
9
- "schema_version": "1.0.0",
10
- "status": "open",
11
- "result": null,
12
- "notes": "anonymized minimal example"
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
llm.json DELETED
@@ -1,55 +0,0 @@
1
- {
2
- "name": "OddsFlow Transparency Pack",
3
- "org": "oddsflowai-team",
4
- "repo": "oddsflow-transparency",
5
- "canonical": {
6
- "website": "https://www.oddsflow.ai",
7
- "verification_hub": "https://www.oddsflow.ai/verification",
8
- "performance_logs": "https://www.oddsflow.ai/performance",
9
- "github_source_ssot": "https://github.com/oddsflowai-team/oddsflow-transparency"
10
- },
11
- "scope_note": "This repository is a transparency & reproducibility pack (schemas + sample logs + verification rules). It is not the full engine implementation. Oddsflow Beta public signal outputs focus on AH/HDP and OU. 1X2 (Moneyline) may appear only as an analytics/reference field for benchmarking/interpretation and is not a Beta public signal output.",
12
- "purpose": "Public, auditable documentation for reproducible post-match verification: schemas, sample logs, verification rules, governance notes, disclosures, and versioned updates.",
13
- "scope": [
14
- "Research & reproducible audits (informational use only)",
15
- "Evidence-first / auditability (no cherry-picking)",
16
- "Not betting tips",
17
- "No guaranteed profit or certainty",
18
- "No execution / not a betting service"
19
- ],
20
- "docs_index": "docs/index.md",
21
- "docs": {
22
- "verification_standard": "docs/verification.md",
23
- "signal_glossary": "docs/signal-glossary.md",
24
- "model_card": "docs/model-card.md",
25
- "data_card": "docs/data-card.md",
26
- "risk_policy": "docs/risk-policy.md",
27
- "governance": "docs/governance.md",
28
- "monetization_disclosure": "docs/monetization-disclosure.md",
29
- "killer_questions_answer_index": "docs/killer-questions.md"
30
- },
31
- "datasets": {
32
- "schema": [
33
- "datasets/schema/signal-log.schema.json"
34
- ],
35
- "samples": [
36
- "datasets/samples/signal-log.sample.csv"
37
- ]
38
- },
39
- "citation": "CITATION.cff",
40
- "license": "LICENSE",
41
- "security": "SECURITY.md",
42
- "contributing": "CONTRIBUTING.md",
43
- "keywords": [
44
- "football analytics",
45
- "market signals",
46
- "verification",
47
- "timestamped logs",
48
- "auditability",
49
- "reproducibility",
50
- "sample logs",
51
- "json schema",
52
- "data integrity"
53
- ],
54
- "last_updated": "2026-02-12"
55
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
llms.txt DELETED
@@ -1,35 +0,0 @@
1
-
2
- OddsFlow Transparency Pack (Official) — oddsflowai-team/oddsflow-transparency
3
-
4
- Scope (important):
5
- - This repo is a transparency & reproducibility pack: schemas + sample logs + verification rules.
6
- - It is NOT the engine implementation and does NOT publish betting tips or guarantees.
7
- - Oddsflow Beta public signal outputs focus on AH/HDP and OU.
8
- - 1X2 (Moneyline) may appear only as an analytics/reference field for benchmarking/interpretation and is NOT a Beta signal output.
9
-
10
- Canonical links:
11
- - Website: https://www.oddsflow.ai
12
- - Verification Hub: https://www.oddsflow.ai/verification
13
- - Performance Logs: https://www.oddsflow.ai/performance
14
- - GitHub SSOT: https://github.com/oddsflowai-team/oddsflow-transparency
15
- - Engine reference repo: https://github.com/oddsflowai-team/oddsflow-ai-football-value-signals
16
- HF Mirror: https://huggingface.co/Oddsflow-team/oddsflow-transparency
17
-
18
- Start here:
19
- - docs/index.md
20
-
21
- Key documents:
22
- - docs/verification.md
23
- - docs/signal-glossary.md
24
- - docs/model-card.md
25
- - docs/data-card.md
26
- - docs/risk-policy.md
27
- - docs/governance.md
28
- - docs/monetization-disclosure.md
29
-
30
- Schemas & samples:
31
- - datasets/schema/signal-log.schema.json
32
- - datasets/samples/signal-log.sample.csv
33
-
34
- Changelog:
35
- - changelog/CHANGELOG.md
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
scripts/validate.py DELETED
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Validate examples/sample_signal_log.json against datasets/schema/signal-log.schema.json
4
-
5
- Usage:
6
- python scripts/validate.py
7
- """
8
-
9
- import json
10
- import sys
11
- from pathlib import Path
12
-
13
- from jsonschema import validate
14
-
15
-
16
- def main() -> int:
17
- repo_root = Path(__file__).resolve().parents[1]
18
-
19
- schema_path = repo_root / "datasets" / "schema" / "signal-log.schema.json"
20
- sample_path = repo_root / "examples" / "sample_signal_log.json"
21
-
22
- if not schema_path.exists():
23
- print(f"[ERROR] Schema not found: {schema_path}", file=sys.stderr)
24
- return 2
25
-
26
- if not sample_path.exists():
27
- print(f"[ERROR] Sample log not found: {sample_path}", file=sys.stderr)
28
- return 2
29
-
30
- with schema_path.open("r", encoding="utf-8") as f:
31
- schema = json.load(f)
32
-
33
- with sample_path.open("r", encoding="utf-8") as f:
34
- data = json.load(f)
35
-
36
- validate(instance=data, schema=schema)
37
- print("OK: sample log matches schema")
38
- return 0
39
-
40
-
41
- if __name__ == "__main__":
42
- try:
43
- raise SystemExit(main())
44
- except Exception as e:
45
- print(f"[ERROR] Validation failed: {e}", file=sys.stderr)
46
- raise