From 78e3dae91ca6c67e46b404ee01efd23274cf5ded Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 1 Nov 2024 13:10:59 -0500 Subject: [PATCH] Add IRS% to team page --- src/components/TeamPitchingTable.vue | 8 ++++++++ src/services/pitchingStatsService.ts | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/src/components/TeamPitchingTable.vue b/src/components/TeamPitchingTable.vue index 26271bb..a7fdb5c 100644 --- a/src/components/TeamPitchingTable.vue +++ b/src/components/TeamPitchingTable.vue @@ -28,6 +28,7 @@ WP IR IRS + IRS% WHIP H/9 HR/9 @@ -67,6 +68,7 @@ {{ stat.wp }} {{ stat.ir }} {{ stat.ir_sc }} + {{ formatIRSPercentage(stat) }} {{ stat.whip.toFixed(2) }} {{ hitsPer9(stat) }} {{ hrsPer9(stat) }} @@ -99,6 +101,7 @@ {{ totalPitchingStat.wp }} {{ totalPitchingStat.ir }} {{ totalPitchingStat.ir_sc }} + {{ formatIRSPercentage(totalPitchingStat) }} {{ totalPitchingStat.whip.toFixed(2) }} {{ hitsPer9(totalPitchingStat) }} {{ hrsPer9(totalPitchingStat) }} @@ -163,6 +166,11 @@ export default { }, hrsPer9(stat: PitchingStat): string { return hrsPer9(stat) + }, + formatIRSPercentage(stat: PitchingStat): string { + if (stat.ir === 0) return '-' + + return `${(stat.ir_sc_pct * 100).toFixed(1)}%` } } } diff --git a/src/services/pitchingStatsService.ts b/src/services/pitchingStatsService.ts index 83b5963..9ab0f79 100644 --- a/src/services/pitchingStatsService.ts +++ b/src/services/pitchingStatsService.ts @@ -22,6 +22,7 @@ export interface PitchingStat { bsave: number ir: number ir_sc: number + ir_sc_pct: number ab: number run: number e_run: number @@ -273,6 +274,7 @@ export function aggregatePitchingStats(pitchingStats: PitchingStat[]): PitchingS bsave: 0, ir: 0, ir_sc: 0, + ir_sc_pct: 0, ab: 0, run: 0, e_run: 0, @@ -350,6 +352,7 @@ export function aggregatePitchingStats(pitchingStats: PitchingStat[]): PitchingS return { ...totalStat, + ir_sc_pct: irsPercentage(totalStat), era: eraFromOuts(totalStat), whip: whipFromOuts(totalStat), kPer9: kPer9FromOuts(totalStat), @@ -397,6 +400,7 @@ function makeModernPitchingStatFromLegacy(legacyStat: LegacyPitchingStat): Pitch kPer9: kPer9(legacyStat), bbPer9: bbPer9(legacyStat), kPerBB: kPerBB(legacyStat), + ir_sc_pct: irsPercentage({ ir: legacyStat.ir, ir_sc: legacyStat.irs }), // no easy way to get below values from legacy stats afaik tbf: 0, @@ -438,6 +442,7 @@ function normalizePitchingStat(rawStat: PitchingStatRaw): PitchingStat { bsave: rawStat.bsave, ir: rawStat.ir, ir_sc: rawStat.ir_sc, + ir_sc_pct: irsPercentage(rawStat), ab: rawStat.ab, run: rawStat.run, e_run: rawStat.e_run, @@ -528,3 +533,7 @@ function kPerBB(stat: { so: number, bb: number }): number { return stat.so / stat.bb } +function irsPercentage(stat: { ir: number, ir_sc: number }): number { + return stat.ir === 0 ? 0 : stat.ir_sc / stat.ir +} +