Each CKD record consists of a count field, an optional key field, and an optional "user" data field with error correction/detection information appended to each field and gaps separating each field. Because of the gaps and other information, the recorded space is larger than that required for just the count data, key data, or user data. IBM provides a "reference card" for each device, which can be used to compute the number of blocks per track for various block sizes, and to optimize the block size for the device. Later, programs were written to do these calculations. Because blocks are normally not split between tracks, specification of an incorrect block size can waste up to half of each track.