Skip to content

Commit

Permalink
feat(metrics): opponent-adjusted team metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Sep 14, 2024
1 parent 509d871 commit a6a329f
Show file tree
Hide file tree
Showing 4 changed files with 208 additions and 2 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cfbd",
"version": "5.0.21-alpha.0",
"version": "5.1.0-alpha.0",
"description": "This API is in limited Beta for Patreon subscribers. It may have bugs and is subject to changes. API keys can be acquired from the CollegeFootballData.com website.",
"repository": {
"type": "git",
Expand Down
138 changes: 138 additions & 0 deletions src/schemas.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1164,6 +1164,144 @@ export const AdvancedGameStatSchema = {
additionalProperties: false
} as const;

export const AdjustedMetricsSchema = {
properties: {
year: {
type: 'integer',
format: 'int32'
},
teamId: {
type: 'integer',
format: 'int32'
},
team: {
type: 'string'
},
conference: {
type: 'string'
},
epa: {
properties: {
rushing: {
type: 'number',
format: 'double'
},
passing: {
type: 'number',
format: 'double'
},
total: {
type: 'number',
format: 'double'
}
},
required: ['rushing', 'passing', 'total'],
type: 'object'
},
epaAllowed: {
properties: {
rushing: {
type: 'number',
format: 'double'
},
passing: {
type: 'number',
format: 'double'
},
total: {
type: 'number',
format: 'double'
}
},
required: ['rushing', 'passing', 'total'],
type: 'object'
},
successRate: {
properties: {
passingDowns: {
type: 'number',
format: 'double'
},
standardDowns: {
type: 'number',
format: 'double'
},
total: {
type: 'number',
format: 'double'
}
},
required: ['passingDowns', 'standardDowns', 'total'],
type: 'object'
},
successRateAllowed: {
properties: {
passingDowns: {
type: 'number',
format: 'double'
},
standardDowns: {
type: 'number',
format: 'double'
},
total: {
type: 'number',
format: 'double'
}
},
required: ['passingDowns', 'standardDowns', 'total'],
type: 'object'
},
rushing: {
properties: {
openFieldYards: {
type: 'number',
format: 'double'
},
secondLevelYards: {
type: 'number',
format: 'double'
},
lineYards: {
type: 'number',
format: 'double'
}
},
required: ['openFieldYards', 'secondLevelYards', 'lineYards'],
type: 'object'
},
rushingAllowed: {
properties: {
openFieldYards: {
type: 'number',
format: 'double'
},
secondLevelYards: {
type: 'number',
format: 'double'
},
lineYards: {
type: 'number',
format: 'double'
}
},
required: ['openFieldYards', 'secondLevelYards', 'lineYards'],
type: 'object'
},
explosiveness: {
type: 'number',
format: 'double'
},
explosivenessAllowed: {
type: 'number',
format: 'double'
}
},
required: ['year', 'teamId', 'team', 'conference', 'epa', 'epaAllowed', 'successRate', 'successRateAllowed', 'rushing', 'rushingAllowed', 'explosiveness', 'explosivenessAllowed'],
type: 'object',
additionalProperties: false
} as const;

export const RecruitClassificationSchema = {
enum: ['JUCO', 'PrepSchool', 'HighSchool'],
type: 'string'
Expand Down
10 changes: 9 additions & 1 deletion src/services.gen.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// This file is auto-generated by @hey-api/openapi-ts

import { createClient, createConfig, type Options } from '@hey-api/client-fetch';
import type { GetTeamsData, GetTeamsError, GetTeamsResponse, GetFbsTeamsData, GetFbsTeamsError, GetFbsTeamsResponse, GetMatchupData, GetMatchupError, GetMatchupResponse, GetRosterData, GetRosterError, GetRosterResponse, GetConferencesError, GetConferencesResponse, GetTalentData, GetTalentError, GetTalentResponse, GetVenuesError, GetVenuesResponse, GetPlayerSeasonStatsData, GetPlayerSeasonStatsError, GetPlayerSeasonStatsResponse, GetTeamStatsData, GetTeamStatsError, GetTeamStatsResponse, GetCategoriesError, GetCategoriesResponse, GetAdvancedSeasonStatsData, GetAdvancedSeasonStatsError, GetAdvancedSeasonStatsResponse, GetAdvancedGameStatsData, GetAdvancedGameStatsError, GetAdvancedGameStatsResponse, GetRecruitsData, GetRecruitsError, GetRecruitsResponse, GetTeamRecruitingRankingsData, GetTeamRecruitingRankingsError, GetTeamRecruitingRankingsResponse, GetAggregatedTeamRecruitingRatingsData, GetAggregatedTeamRecruitingRatingsError, GetAggregatedTeamRecruitingRatingsResponse, GetSpData, GetSpError, GetSpResponse, GetConferenceSpData, GetConferenceSpError, GetConferenceSpResponse, GetSrsData, GetSrsError, GetSrsResponse, GetEloData, GetEloError, GetEloResponse, GetFpiData, GetFpiError, GetFpiResponse, GetRankingsData, GetRankingsError, GetRankingsResponse, GetPlaysData, GetPlaysError, GetPlaysResponse, GetPlayTypesError, GetPlayTypesResponse, GetPlayStatsData, GetPlayStatsError, GetPlayStatsResponse, GetPlayStatTypesError, GetPlayStatTypesResponse, SearchPlayersData, SearchPlayersError, SearchPlayersResponse, GetPlayerUsageData, GetPlayerUsageError, GetPlayerUsageResponse, GetReturningProductionData, GetReturningProductionError, GetReturningProductionResponse, GetTransferPortalData, GetTransferPortalError, GetTransferPortalResponse, GetPredictedPointsData, GetPredictedPointsError, GetPredictedPointsResponse, GetPredictedPointsAddedByTeamData, GetPredictedPointsAddedByTeamError, GetPredictedPointsAddedByTeamResponse, GetPredictedPointsAddedByGameData, GetPredictedPointsAddedByGameError, GetPredictedPointsAddedByGameResponse, GetPredictedPointsAddedByPlayerGameData, GetPredictedPointsAddedByPlayerGameError, GetPredictedPointsAddedByPlayerGameResponse, GetPredictedPointsAddedByPlayerSeasonData, GetPredictedPointsAddedByPlayerSeasonError, GetPredictedPointsAddedByPlayerSeasonResponse, GetWinProbabilityData, GetWinProbabilityError, GetWinProbabilityResponse, GetPregameWinProbabilitiesData, GetPregameWinProbabilitiesError, GetPregameWinProbabilitiesResponse, GetFieldGoalExpectedPointsError, GetFieldGoalExpectedPointsResponse, GetLivePlaysData, GetLivePlaysError, GetLivePlaysResponse, GetLinesData, GetLinesError, GetLinesResponse, GetGamesData, GetGamesError, GetGamesResponse, GetGameTeamStatsData, GetGameTeamStatsError, GetGameTeamStatsResponse, GetGamePlayerStatsData, GetGamePlayerStatsError, GetGamePlayerStatsResponse, GetMediaData, GetMediaError, GetMediaResponse, GetWeatherData, GetWeatherError, GetWeatherResponse, GetRecordsData, GetRecordsError, GetRecordsResponse, GetCalendarData, GetCalendarError, GetCalendarResponse, GetScoreboardData, GetScoreboardError, GetScoreboardResponse, GetDrivesData, GetDrivesError, GetDrivesResponse, GetDraftTeamsError, GetDraftTeamsResponse, GetDraftPositionsError, GetDraftPositionsResponse, GetDraftPicksData, GetDraftPicksError, GetDraftPicksResponse, GetCoachesData, GetCoachesError, GetCoachesResponse, GetAdvancedBoxScoreData, GetAdvancedBoxScoreError, GetAdvancedBoxScoreResponse } from './types.gen';
import type { GetTeamsData, GetTeamsError, GetTeamsResponse, GetFbsTeamsData, GetFbsTeamsError, GetFbsTeamsResponse, GetMatchupData, GetMatchupError, GetMatchupResponse, GetRosterData, GetRosterError, GetRosterResponse, GetConferencesError, GetConferencesResponse, GetTalentData, GetTalentError, GetTalentResponse, GetVenuesError, GetVenuesResponse, GetPlayerSeasonStatsData, GetPlayerSeasonStatsError, GetPlayerSeasonStatsResponse, GetTeamStatsData, GetTeamStatsError, GetTeamStatsResponse, GetCategoriesError, GetCategoriesResponse, GetAdvancedSeasonStatsData, GetAdvancedSeasonStatsError, GetAdvancedSeasonStatsResponse, GetAdvancedGameStatsData, GetAdvancedGameStatsError, GetAdvancedGameStatsResponse, GetAdjustedTeamSeasonStatsData, GetAdjustedTeamSeasonStatsError, GetAdjustedTeamSeasonStatsResponse, GetRecruitsData, GetRecruitsError, GetRecruitsResponse, GetTeamRecruitingRankingsData, GetTeamRecruitingRankingsError, GetTeamRecruitingRankingsResponse, GetAggregatedTeamRecruitingRatingsData, GetAggregatedTeamRecruitingRatingsError, GetAggregatedTeamRecruitingRatingsResponse, GetSpData, GetSpError, GetSpResponse, GetConferenceSpData, GetConferenceSpError, GetConferenceSpResponse, GetSrsData, GetSrsError, GetSrsResponse, GetEloData, GetEloError, GetEloResponse, GetFpiData, GetFpiError, GetFpiResponse, GetRankingsData, GetRankingsError, GetRankingsResponse, GetPlaysData, GetPlaysError, GetPlaysResponse, GetPlayTypesError, GetPlayTypesResponse, GetPlayStatsData, GetPlayStatsError, GetPlayStatsResponse, GetPlayStatTypesError, GetPlayStatTypesResponse, SearchPlayersData, SearchPlayersError, SearchPlayersResponse, GetPlayerUsageData, GetPlayerUsageError, GetPlayerUsageResponse, GetReturningProductionData, GetReturningProductionError, GetReturningProductionResponse, GetTransferPortalData, GetTransferPortalError, GetTransferPortalResponse, GetPredictedPointsData, GetPredictedPointsError, GetPredictedPointsResponse, GetPredictedPointsAddedByTeamData, GetPredictedPointsAddedByTeamError, GetPredictedPointsAddedByTeamResponse, GetPredictedPointsAddedByGameData, GetPredictedPointsAddedByGameError, GetPredictedPointsAddedByGameResponse, GetPredictedPointsAddedByPlayerGameData, GetPredictedPointsAddedByPlayerGameError, GetPredictedPointsAddedByPlayerGameResponse, GetPredictedPointsAddedByPlayerSeasonData, GetPredictedPointsAddedByPlayerSeasonError, GetPredictedPointsAddedByPlayerSeasonResponse, GetWinProbabilityData, GetWinProbabilityError, GetWinProbabilityResponse, GetPregameWinProbabilitiesData, GetPregameWinProbabilitiesError, GetPregameWinProbabilitiesResponse, GetFieldGoalExpectedPointsError, GetFieldGoalExpectedPointsResponse, GetLivePlaysData, GetLivePlaysError, GetLivePlaysResponse, GetLinesData, GetLinesError, GetLinesResponse, GetGamesData, GetGamesError, GetGamesResponse, GetGameTeamStatsData, GetGameTeamStatsError, GetGameTeamStatsResponse, GetGamePlayerStatsData, GetGamePlayerStatsError, GetGamePlayerStatsResponse, GetMediaData, GetMediaError, GetMediaResponse, GetWeatherData, GetWeatherError, GetWeatherResponse, GetRecordsData, GetRecordsError, GetRecordsResponse, GetCalendarData, GetCalendarError, GetCalendarResponse, GetScoreboardData, GetScoreboardError, GetScoreboardResponse, GetDrivesData, GetDrivesError, GetDrivesResponse, GetDraftTeamsError, GetDraftTeamsResponse, GetDraftPositionsError, GetDraftPositionsResponse, GetDraftPicksData, GetDraftPicksError, GetDraftPicksResponse, GetCoachesData, GetCoachesError, GetCoachesResponse, GetAdvancedBoxScoreData, GetAdvancedBoxScoreError, GetAdvancedBoxScoreResponse } from './types.gen';

export const client = createClient(createConfig({ baseUrl: 'https://apinext.collegefootballdata.com' }));

Expand Down Expand Up @@ -101,6 +101,14 @@ export const getAdvancedGameStats = <ThrowOnError extends boolean = false>(optio
url: '/stats/game/advanced'
}); };

/**
* Retrieve opponent-adjusted team season statistics
*/
export const getAdjustedTeamSeasonStats = <ThrowOnError extends boolean = false>(options?: Options<GetAdjustedTeamSeasonStatsData, ThrowOnError>) => { return (options?.client ?? client).get<GetAdjustedTeamSeasonStatsResponse, GetAdjustedTeamSeasonStatsError, ThrowOnError>({
...options,
url: '/stats/team/season/adjusted'
}); };

/**
* Retrieves player recruiting rankings
*/
Expand Down
60 changes: 60 additions & 0 deletions src/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,45 @@ export type AdvancedGameStat = {
};
};

export type AdjustedMetrics = {
year: number;
teamId: number;
team: string;
conference: string;
epa: {
rushing: number;
passing: number;
total: number;
};
epaAllowed: {
rushing: number;
passing: number;
total: number;
};
successRate: {
passingDowns: number;
standardDowns: number;
total: number;
};
successRateAllowed: {
passingDowns: number;
standardDowns: number;
total: number;
};
rushing: {
openFieldYards: number;
secondLevelYards: number;
lineYards: number;
};
rushingAllowed: {
openFieldYards: number;
secondLevelYards: number;
lineYards: number;
};
explosiveness: number;
explosivenessAllowed: number;
};

export type RecruitClassification = 'JUCO' | 'PrepSchool' | 'HighSchool';

export type Recruit = {
Expand Down Expand Up @@ -1544,6 +1583,27 @@ export type GetAdvancedGameStatsResponse = (Array<AdvancedGameStat>);

export type GetAdvancedGameStatsError = unknown;

export type GetAdjustedTeamSeasonStatsData = {
query?: {
/**
* Optional conference filter
*/
conference?: string;
/**
* Optional team filter
*/
team?: string;
/**
* Optional year filter
*/
year?: number;
};
};

export type GetAdjustedTeamSeasonStatsResponse = (Array<AdjustedMetrics>);

export type GetAdjustedTeamSeasonStatsError = unknown;

export type GetRecruitsData = {
query?: {
/**
Expand Down

0 comments on commit a6a329f

Please sign in to comment.