Class: MLB::ContextMetrics

Inherits:
Shale::Mapper
  • Object
show all
Defined in:
lib/mlb/context_metrics.rb

Overview

Provides real-time context metrics for a game including win probability and sacrifice fly probabilities by field zone

Context metrics are useful for understanding game state and making predictions about likely outcomes.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#away_win_probabilityFloat

Returns the away team’s probability of winning

Examples:

metrics.away_win_probability #=> 0.48

Returns:

  • (Float)

    probability value between 0 and 1



41
# File 'lib/mlb/context_metrics.rb', line 41

attribute :away_win_probability, Shale::Type::Float

#center_field_sac_fly_probabilitySacFlyProbability

Returns sacrifice fly probability for center field

Examples:

metrics.center_field_sac_fly_probability.probability #=> 0.30

Returns:



57
# File 'lib/mlb/context_metrics.rb', line 57

attribute :center_field_sac_fly_probability, SacFlyProbability

#home_win_probabilityFloat

Returns the home team’s probability of winning

Examples:

metrics.home_win_probability #=> 0.52

Returns:

  • (Float)

    probability value between 0 and 1



33
# File 'lib/mlb/context_metrics.rb', line 33

attribute :home_win_probability, Shale::Type::Float

#left_field_sac_fly_probabilitySacFlyProbability

Returns sacrifice fly probability for left field

Examples:

metrics.left_field_sac_fly_probability.probability #=> 0.25

Returns:



49
# File 'lib/mlb/context_metrics.rb', line 49

attribute :left_field_sac_fly_probability, SacFlyProbability

#right_field_sac_fly_probabilitySacFlyProbability

Returns sacrifice fly probability for right field

Examples:

metrics.right_field_sac_fly_probability.probability #=> 0.35

Returns:



65
# File 'lib/mlb/context_metrics.rb', line 65

attribute :right_field_sac_fly_probability, SacFlyProbability

Class Method Details

.find(game:) ⇒ ContextMetrics

Retrieves context metrics for a specific game

Examples:

Using a game primary key

MLB::ContextMetrics.find(game: 745571)

Using a ScheduledGame object

MLB::ContextMetrics.find(game: scheduled_game)

Parameters:

  • game (Integer, #game_pk)

    game ID or object responding to #game_pk

Returns:



84
85
86
87
88
# File 'lib/mlb/context_metrics.rb', line 84

def self.find(game:)
  game_pk = game.respond_to?(:game_pk) ? game.game_pk : game
  response = CLIENT.get("game/#{game_pk}/contextMetrics")
  from_json(response)
end