Skip to content

Lineage

End-to-end lineage of every dbt object in the fortune project. Click any node to jump to its dedicated page. The diagrams are rendered at native size — scroll horizontally inside the diagram if it overflows the page.

Five raw sources flow into two typed sources, two seeds (seeds__minutes, seeds__time_status) act as static joins, twenty calculations layer on per-event derivations, and two marts fan everything in.

%%{init: {"flowchart": {"nodeSpacing": 70, "rankSpacing": 120, "useMaxWidth": false, "htmlLabels": true}, "themeVariables": {"fontSize": "16px"}}}%%
flowchart LR
raw_ee[(bet365.ended_events)]
raw_o[(bet365.odds)]
raw_l[(bet365.lineups)]
raw_tr[(dbt_test_results_raw)]
raw_tf[(dbt_test_failures_raw)]

seed_min[[seeds__minutes]]
seed_ts[[seeds__time_status]]

s_ee[/sources.ended_events/]
s_o[/sources.odds/]

c_i1[/inplay_1_by_minute/]
c_i2[/inplay_2_score/]

c_m1[/matches_1_odds_prematch/]
c_m2[/matches_2_odds_inplay_home/]
c_m3[/matches_3_odds_inplay_draw/]
c_m4[/matches_4_odds_inplay_away/]
c_m5[/matches_5_score/]
c_m6[/matches_6_team_stats_window/]
c_m7[/matches_7_league_stats_window/]
c_m8[/matches_8_team_strength/]
c_m9[/matches_9_expected_goals/]
c_m10[/matches_10_overperformance/]
c_m11[/matches_11_probability/]
c_m12[/matches_12_prob_win/]
c_m13[/matches_13_prob_goal_diff/]
c_m14[/matches_14_prob_goals_total/]
c_m15[/matches_15_strat_expected_value/]
c_m16[/matches_16_strat_kelly_criterion/]
c_m17[/matches_17_strat_predicted/]
c_m18[/matches_18_strat_bet/]

mart_i[/mart.inplay/]
mart_m[/mart.matches/]

raw_ee --> s_ee
raw_o --> s_o

s_ee --> c_i1
s_o --> c_i1
seed_min --> c_i1

s_o --> c_m1
s_ee --> c_m5

c_i1 --> c_i2
c_i1 --> c_m2
c_i1 --> c_m3
c_i1 --> c_m4

c_m5 --> c_m6
c_m6 --> c_m7
c_m7 --> c_m8
c_m8 --> c_m9

c_m5 --> c_m10
c_m9 --> c_m10
c_m1 --> c_m11
c_m9 --> c_m12
c_m9 --> c_m13
c_m9 --> c_m14

c_m12 --> c_m15
c_m1 --> c_m15

c_m15 --> c_m16
c_m1 --> c_m16

c_m16 --> c_m17
c_m15 --> c_m17
c_m12 --> c_m17
c_m1 --> c_m17
c_m5 --> c_m17

c_m17 --> c_m18
c_m16 --> c_m18
c_m1 --> c_m18

c_i1 --> mart_i
c_i2 --> mart_i

s_ee --> mart_m
seed_ts --> mart_m
c_m1 --> mart_m
c_m2 --> mart_m
c_m3 --> mart_m
c_m4 --> mart_m
c_m5 --> mart_m
c_m6 --> mart_m
c_m7 --> mart_m
c_m8 --> mart_m
c_m9 --> mart_m
c_m10 --> mart_m
c_m11 --> mart_m
c_m12 --> mart_m
c_m13 --> mart_m
c_m14 --> mart_m
c_m15 --> mart_m
c_m16 --> mart_m
c_m17 --> mart_m
c_m18 --> mart_m

click raw_ee "/raw/ended_events/" "Open raw.bet365.ended_events"
click raw_o "/raw/odds/" "Open raw.bet365.odds"
click raw_l "/raw/lineups/" "Open raw.bet365.lineups"
click raw_tr "/raw/dbt_test_results/" "Open raw.dbt_test_results"
click raw_tf "/raw/dbt_test_failures/" "Open raw.dbt_test_failures"
click s_ee "/sources/ended_events/" "Open sources.ended_events"
click s_o "/sources/odds/" "Open sources.odds"
click c_i1 "/calculations/inplay_1_by_minute/" "Open"
click c_i2 "/calculations/inplay_2_score/" "Open"
click c_m1 "/calculations/matches_1_odds_prematch/" "Open"
click c_m2 "/calculations/matches_2_odds_inplay_home/" "Open"
click c_m3 "/calculations/matches_3_odds_inplay_draw/" "Open"
click c_m4 "/calculations/matches_4_odds_inplay_away/" "Open"
click c_m5 "/calculations/matches_5_score/" "Open"
click c_m6 "/calculations/matches_6_team_stats_window/" "Open"
click c_m7 "/calculations/matches_7_league_stats_window/" "Open"
click c_m8 "/calculations/matches_8_team_strength/" "Open"
click c_m9 "/calculations/matches_9_expected_goals/" "Open"
click c_m10 "/calculations/matches_10_overperformance/" "Open"
click c_m11 "/calculations/matches_11_probability/" "Open"
click c_m12 "/calculations/matches_12_prob_win/" "Open"
click c_m13 "/calculations/matches_13_prob_goal_diff/" "Open"
click c_m14 "/calculations/matches_14_prob_goals_total/" "Open"
click c_m15 "/calculations/matches_15_strat_expected_value/" "Open"
click c_m16 "/calculations/matches_16_strat_kelly_criterion/" "Open"
click c_m17 "/calculations/matches_17_strat_predicted/" "Open"
click c_m18 "/calculations/matches_18_strat_bet/" "Open"
click mart_i "/mart/inplay/" "Open mart.inplay"
click mart_m "/mart/matches/" "Open mart.matches"

The two raw tables dbt_test_results_raw and dbt_test_failures_raw and the raw bet365.lineups capture are not consumed by any fortune model today; they’re omitted from the edges above and shown only as standalone landing tables.

The elementary views are built on top of the Elementary package’s own internal tables (elementary_test_results, dbt_run_results, dbt_invocations), so they don’t share lineage with the main pipeline.

%%{init: {"flowchart": {"nodeSpacing": 60, "rankSpacing": 90, "useMaxWidth": false, "htmlLabels": true}, "themeVariables": {"fontSize": "16px"}}}%%
flowchart LR
el_etr[(elementary.elementary_test_results)]
el_drr[(elementary.dbt_run_results)]
el_inv[(elementary.dbt_invocations)]

e_tr[/elementary.test_results_by_date/]
e_rr[/elementary.run_results_by_date/]
e_dts[/elementary.daily_test_summary/]

el_etr --> e_tr
el_inv --> e_tr
el_drr --> e_rr
el_inv --> e_rr
el_etr --> e_dts
el_inv --> e_dts

click e_tr "/elementary/test_results_by_date/" "Open"
click e_rr "/elementary/run_results_by_date/" "Open"
click e_dts "/elementary/daily_test_summary/" "Open"