The crankshaft position (CKP) system variation learn feature is used to calculate reference period errors caused by slight build tolerance variations in the CKP sensor, crankshaft, and CKP sensor position. The calculated error allows the engine control module (ECM) to accurately compensate for reference period variations. This enhances the ability of the ECM to detect misfire events over a wide range of engine speeds and load conditions. The ECM stores the Crankshaft Position System Variation values after a learn procedure has been performed. If the actual crankshaft position variation is not stored within the CKP compensating value look up table, then DTC P0300 may set. If the CKP system variation values are not stored in the ECM memory, or a proper ECM power down does not occur after completing the CKP Learn Procedure, then DTC P0315 sets.