MatFold serves as a convenient and automated tool to process a user's materials data and systematically generate increasingly difficult CV splits to test a modeling approach's generalizability (Figure ). MatFold offers two split methods, S = {K-fold or nested (K, L)-fold}, where K and L are integers chosen by the user. If that value is chosen to be equal to the number of unique split labels then the created folds are leave-one-out (LOO). Outer Kfolds can be split on a variety of criteria, C K ={Random, Structure, Composition, Chemical system=Chemsys, Element, Periodic table (PT) group, PT row, Space group number=SG#, Point group, or Crystal system}, while inner L-folds can be split either randomly or utilizing the same split criteria as the outer splits (C L ={Random, C K }). We note that for datasets where each target label corresponds to a unique bulk crystal structure (e.g., Materials Project ID, mpid) the splitting strategies "Random" and "Structure" coincide (which is not the case for the two datasets considered in this work). As shown in Table , MatFold provides functionality to artificially reduce the dataset size by a fractional amount D. Furthermore, materials with a specified number of unique chemical elements can be assigned to the training set by default thereby exempting them from the split criteria. This could be, for example, whether the automatic assignment of all binary compounds to the training data is performed, T ={None or Binary} (the motivation for which is discussed in the next section).