Class: SkillBench::TrendTracker::TrendCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/skill_bench/trend_tracker/trend_calculator.rb

Overview

Calculates performance trends between evaluation results

Class Method Summary collapse

Class Method Details

.compute_trend(entries, current_entry) ⇒ Hash?

Computes trend comparison between current result and historical entries

Parameters:

  • entries (Array<Hash>)

    Historical entries

  • current_entry (Hash)

    Current evaluation entry

Returns:

  • (Hash, nil)

    Trend data or nil if no matching history exists



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/skill_bench/trend_tracker/trend_calculator.rb', line 12

def self.compute_trend(entries, current_entry)
  matching = filter_matching_entries(entries, current_entry)
  return nil if matching.empty?

  previous = matching.last
  current_baseline = current_entry[:baseline_total]
  current_context = current_entry[:context_total]
  previous_baseline = previous[:baseline_total]
  previous_context = previous[:context_total]
  return nil unless current_baseline && current_context && previous_baseline && previous_context

  {
    baseline_trend: trend_direction(current_baseline, previous_baseline),
    context_trend: trend_direction(current_context, previous_context),
    baseline_delta: current_baseline - previous_baseline,
    context_delta: current_context - previous_context,
    previous_run: previous[:timestamp]
  }
end