Hey guys, I'm working on a mock season and I was wanting some tips about setting ratings. It's based on real drivers but not a real series, so I can't use real data and nRatings. What should I take into account for each rating?
"I can't use real data" If you aren't using real data, put whatever numbers you want in there.
If you really mean, "I can't use NRatings because the data is not from a series at Racing Reference" and you've got the data, here are my formulas, which have worked very well for me and the GN mods. Step through them and you'll see which stats I use for which attribute (ie, SS and SW for aero, ST and SS for engine, ST and SW for chassis).
Your results may vary.
***************************************************************************************************************************************
<?xml version="1.0"?>
<RatingsFormula xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<Name>ZMGNRacev3</Name>
<Author>SnyderArt, optimized by Tjeuten, edited by ZiggyM</Author>
<Version>v3.02</Version>
<Description>For use with any field size.</Description>
<Options>
<UseNr2003TrackTypes>false</UseNr2003TrackTypes>
<MapWithDriverNameOnly>true</MapWithDriverNameOnly>
</Options>
<DriverAggressionMin>
var rating = 0;
if(@avgFinish != null)
{
rating = 80.0 - (@bestStart + @avgStart);
rating = rating;
}
</DriverAggressionMin>
<DriverAggressionMax>
var rating = 0;
if(@avgFinish != null)
{
rating = 90.0 - (@bestFinish + @avgFinish) + ((@dnfCrash / @raceStarts)*50);
rating = rating;
}
</DriverAggressionMax>
<DriverConsistencyMin>
var rating = 0;
if(@avgFinish != null)
{
rating = 90.0 - ((@avgFinish - @bestFinish) + ((@dnfCrash / @raceStarts)*50));
rating = rating;
}
</DriverConsistencyMin>
<DriverConsistencyMax>
var rating = 0;
if(@avgFinish != null)
{
rating = 95.0 - ((@avgFinish - @bestFinish));
rating = rating;
}
</DriverConsistencyMax>
<DriverFinishingMin>
var rating = 0;
if(@avgFinish != null)
{
rating = 100.0 - (95.0 * @avgFinish / @avgNumberOfStarters);
rating = rating;
}
</DriverFinishingMin>
<DriverFinishingMax>
var rating = 0;
if(@bestFinish != null)
{
rating = 100.0 - (90.0 * @bestFinish / @avgNumberOfStarters);
rating = rating;
}
</DriverFinishingMax>
<DriverQualifyingMin>
var rating = 0;
if(@avgStart != null)
{
rating = 100.0 - (95.0 * @avgStart / @avgNumberOfStarters);
rating = rating;
}
else
rating = 0;
</DriverQualifyingMin>
<DriverQualifyingMax>
var rating = 0;
if(@bestStart != null)
{
rating = 100.0 - (90.0 * @bestStart / @avgNumberOfStarters);
rating = rating;
}
else
rating = 0;
</DriverQualifyingMax>
<DriverRoadCourseMin>
var rating = 0;
if(@avgFinishRC != null)
rating = 100.0 - (95.0 * @avgFinishRC / @avgNumberOfStartersRC);
else
rating = 0;
rating = rating;
</DriverRoadCourseMin>
<DriverRoadCourseMax>
var rating = 0;
if(@bestFinishRC != null)
rating = 100.0 - (90.0 * @bestFinishRC / @avgNumberOfStartersRC);
else
rating = 0;
rating = rating;
</DriverRoadCourseMax>
<DriverShortTrackMin>
var rating = 0;
if(@avgFinishST != null)
rating = 100.0 - (95.0 * @avgFinishST / @avgNumberOfStartersST);
else
rating = 0;
rating = rating;
</DriverShortTrackMin>
<DriverShortTrackMax>
var rating = 0;
if(@bestFinishST != null)
rating = 100.0 - (90.0 * @bestFinishST / @avgNumberOfStartersST);
else
rating = 0;
rating = rating;
</DriverShortTrackMax>
<DriverSpeedwayMin>
var rating = 0;
if(@avgFinishSW != null)
rating = 100.0 - (95.0 * @avgFinishSW / @avgNumberOfStartersSW);
else
rating = 0;
rating = rating;
</DriverSpeedwayMin>
<DriverSpeedwayMax>
var rating = 0;
if(@raceStartsSW != null)
rating = 100.0 - (90.0 * @bestFinishSW / @avgNumberOfStartersSW);
else
rating = 0;
rating = rating;
</DriverSpeedwayMax>
<DriverSuperSpeedwayMin>
var rating = 0;
if(@avgFinishSS != null)
rating = 100.0 - (95.0 * @avgFinishSS / @avgNumberOfStartersSS);
else
rating = 0;
rating = rating;
</DriverSuperSpeedwayMin>
<DriverSuperSpeedwayMax>
var rating = 0;
if(@avgFinishSS != null)
rating = 100.0 - (90.0 * @bestFinishSS / @avgNumberOfStartersSS);
else
rating = 0;
rating = rating;
</DriverSuperSpeedwayMax>
<VehicleAeroMin>
var rating = 0;
if(@avgStartSS != null && @avgStartSW != null)
rating = 90.0 - ((@avgFinishSS * 40.0 / @avgNumberOfStartersSS) + (@avgFinishSW * 40.0 / @avgNumberOfStartersSW));
else
if(@avgStartSS != null)
rating = 89.0 - (((@avgFinishSS * 85.0 / @avgNumberOfStartersSS)) / 1.0);
else
if(@avgStartSW != null)
rating = 88.0 - (((@avgFinishSW * 80.0 / @avgNumberOfStartersSW)) / 1.0);
else
rating = 80.0 - (((@avgFinish * 75.0 / @avgNumberOfStarters)) / 1.0);
rating = rating;
</VehicleAeroMin>
<VehicleAeroMax>
var rating = 0;
if(@bestStartSS != null && @bestStartSW != null)
rating = 95.0 - (((@bestFinishSS * 45.0 / @avgNumberOfStartersSS) + (@bestFinishSW * 45.0 / @avgNumberOfStartersSW)) / 1.0);
else
if(@bestStartSW != null)
rating = 93.0 - (((@bestFinishSW * 90.0 / @avgNumberOfStartersSW)) / 1.0);
else
if(@bestStartSS != null)
rating = 94.0 - (((@bestFinishSS * 90.0 / @avgNumberOfStartersSS)) / 1.0);
else
rating = 75.0 - (((@bestFinish * 70.0 / @avgNumberOfStarters)) / 1.0);
rating = rating;
</VehicleAeroMax>
<VehicleChassisMin>
var rating = 0;
if(@avgStartST != null && @avgStartSW != null)
rating = 90.0 - (((@avgFinishST * 40.0 / @avgNumberOfStartersST) + (@avgFinishSW * 45.0 / @avgNumberOfStartersSW)) / 1.0);
else
if(@avgStartST != null)
rating = 88.0 - (((@avgFinishST * 85.0 / @avgNumberOfStartersST)) / 1.0);
else
if(@avgStartRC != null)
rating = 89.0 - (((@avgFinishRC * 85.0 / @avgNumberOfStartersRC)) / 1.0);
else
rating = 80.0 - ((@avgFinish * 75.0 / @avgNumberOfStarters) / 1.0);
rating = rating;
</VehicleChassisMin>
<VehicleChassisMax>
var rating = 0;
if(@bestStartST != null && @bestStartSW != null)
rating = 95.0 - (((@bestFinishST * 40.0 / @avgNumberOfStartersST) + (@bestFinishSW * 45.0 / @avgNumberOfStartersSW)) / 1.0);
else
if(@bestStartST != null)
rating = 93.0 - (((@bestFinishST * 85.0 / @avgNumberOfStartersST)) / 1.0);
else
if(@bestStartRC != null)
rating = 94.0 - (((@bestFinishRC * 85.0 / @avgNumberOfStartersRC)) / 1.0);
else
rating = 85.0 - (((@bestFinish * 80.0 / @avgNumberOfStarters)) / 1.0);
rating = rating;
</VehicleChassisMax>
<VehicleEngineMin>
var rating = 0;
if(@avgStartST != null && @avgStartSS != null)
rating = 90.0 - (((@avgFinishST * 40.0 / @avgNumberOfStartersST) + (@avgFinishSS * 40.0 / @avgNumberOfStartersSS)) / 1.0);
else
if(@avgStartSS != null)
rating = 89.0 - (((@avgFinishSS * 80.0 / @avgNumberOfStartersSS)) / 1.0);
else
if(@avgStartST != null)
rating = 88.0 - (((@avgFinishST * 80.0 / @avgNumberOfStartersST)) / 1.0);
else
rating = 87.0 - (((@avgFinish * 80.0 / @avgNumberOfStarters)) / 1.0);
rating = rating;
</VehicleEngineMin>
<VehicleEngineMax>
var rating = 0;
if(@bestStartST != null && @bestStartSS != null)
rating = 95.0 - (((@bestFinishST * 45.0 / @avgNumberOfStartersST) + (@bestFinishSS * 45.0 / @avgNumberOfStartersSS)) / 1.0);
else
if(@bestStartSS != null)
rating = 94.0 - (((@bestFinishSS * 90.0 / @avgNumberOfStartersSS)) / 1.0);
else
if(@bestStartST != null)
rating = 93.0 - (((@bestFinishST * 90.0 / @avgNumberOfStartersST)) / 1.0);
else
rating = 92.0 - (((@bestFinish * 85.0 / @avgNumberOfStarters)) / 1.0);
rating = rating;
</VehicleEngineMax>
<VehicleReliabilityMin>
var rating = 0;
rating = 100.0 - (100.0 * @dnfMechanical / @raceStarts);
rating = rating;
</VehicleReliabilityMin>
<VehicleReliabilityMax>
var rating = 0;
rating = (100.0 * @percLapsCompleted);
rating = rating;
</VehicleReliabilityMax>
<PitcrewConsistencyMin>
var rating = 0;
if(@avgFinishSW != null)
rating = 90.0 - ((@avgFinishSW));
else
if(@bestStartSS != null)
rating = 85.0 - ((@avgFinishSS));
else
rating = 80.0 - ((@avgFinish));
rating = rating;
</PitcrewConsistencyMin>
<PitcrewConsistencyMax>
var rating = 0;
if(@bestFinishSW != null)
rating = 95.0 - ((@bestFinishSW));
else
if(@bestStartSS != null)
rating = 90.0 - ((@bestFinishSS));
else
rating = 85.0 - ((@bestFinish));
rating = rating;
</PitcrewConsistencyMax>
<PitcrewSpeedMin>
var rating = 0;
if(@bestStartSS != null)
rating = 90.0 - ((@avgFinishSS));
else
if(@bestStartSW != null)
rating = 85.0 - ((@avgFinishSW));
else
rating = 80.0 - ((@avgFinish));
rating = rating;
</PitcrewSpeedMin>
<PitcrewSpeedMax>
var rating = 0;
if(@bestStartSS != null)
rating = 95.0 - ((@bestFinishSS));
else
if(@bestStartSW != null)
rating = 90.0 - ((@bestFinishSW));
else
rating = 85.0 - ((@bestFinish));
rating = rating;
</PitcrewSpeedMax>
<PitcrewStrategyMin>
var rating = 0;
if(@bestStartST != null)
rating = 90.0 - ((@avgFinishST));
else
if(@bestStartSW != null)
rating = 85.0 - ((@avgFinishSW));
else
rating = 80.0 - ((@avgFinish));
rating = rating;
</PitcrewStrategyMin>
<PitcrewStrategyMax>
var rating = 0;
if(@bestStartST != null)
rating = 95.0 - ((@bestFinishST));
else
if(@bestStartSW != null)
rating = 90.0 - ((@bestFinishSW));
else
rating = 85.0 - ((@bestFinish));
rating = rating;
</PitcrewStrategyMax>
</RatingsFormula>
***************************************************************************************************************************************
Have fun!