A system, method, and computer-readable medium for generating factual and/or counterfactual data are described. This may have the effect of improving the complexity of data available for training machine learning models. The models may include agent-based models (ABMs) in which the agent definitions are decoupled from the simulation. In one or more aspects, some agents may have attributes and associated behaviors that permit them to be reused in different ABMs to simulate different systems.