input($expected)
-> select({RP: float(RP), expected: float(Loss)})
-> join(on: true)

-> select({
  *,
  losses_by_period(losses, [RP], investigation-time: 1000, options: {mode: 'ranked_closest'}) as OEP_closest,
  losses_by_period(losses, [RP], investigation-time: 1000, options: {mode: 'percentile'}) as OEP_percentile,
})
-> unnest([OEP_closest, OEP_percentile])
-> select({
  RP,
  expected,
  OEP_closest,
  OEP_percentile,
  if_then_else(expected > 0, (abs(OEP_closest - expected) / expected) * 100, 0.0) as delta_closest,
  if_then_else(expected > 0, (abs(OEP_percentile - expected) / expected) * 100, 0.0) as delta_percentile
})
-> sort(RP)
-> save('results')

input($OEP)
-> group( { to_list(float("Max loss")) as losses })
-> join.rhs
