public NFLResult PredictGame(NFLGame game, IStorePredictions persistor, DateTime predictionDate)
        {
            const int avgScore = 21;

            var homeRating = RatingsService.GetNibbleRatingFor(game.HomeNflTeam, predictionDate);
            var awayRating = RatingsService.GetNibbleRatingFor(game.AwayNflTeam, predictionDate);

            var homeOff = homeRating.Offence;
            var homeDef = homeRating.Defence;
            var awayOff = awayRating.Offence;
            var awayDef = awayRating.Defence;

            var homeScore = avgScore + ((homeOff + awayDef) / 2) + 3;              //  3pts home field advantage
            var awayScore = avgScore + ((awayOff + homeDef) / 2);

            homeScore = Utility.PickAScore(homeScore);
            awayScore = Utility.PickAScore(awayScore);

            if (homeScore == awayScore)
            {
                homeScore++;                                      //  no ties
            }
            var res = new NFLResult(game.HomeTeam, homeScore, game.AwayTeam, awayScore);

            //TODO:  Nibble predictor does not predict Tdp or Tdr

            if (AuditTrail)
            {
                AuditPrediction(game, awayDef, awayOff, homeOff, res, homeDef);
                if (StorePrediction)
                {
                    StorePredictedResult(game, res);
                }
            }
            return(res);
        }