*3.3. Details: Initialization, Input, and Implementation*

The agent-based model is initialized with 2016 households, using a pre-specified ratio of prosumers to consumers. Parameter values are specified in Table 1. Values for the first flush volume as reported in the literature (e.g., Gikas and Tsihrintzis [83]), and rainwater harvesting regulations [84,85], vary in the range of 0.11–1.02 L/m2. The value used in the prosumer model represents a conservative estimate of first flush. All tanks are empty at the beginning of the simulation, and the number of hours since the previous flush is set to 24, which forces prosumer agents to flush tanks before beginning trades. Each prosumer agent is assigned a household pump model, with a pump efficiency of 75%. Consumer households are each assigned a time of day to irrigate their lawns (*T Ic*), derived from the diurnal irrigation pattern for dual-reticulated systems reported by Willis et al. [80]. For each discrete value of *T Ic*, Figure 3 specifies the number of consumer agents that are randomly selected from the pool of consumer agents without replacement and assigned the selected value for *T Ic*. For example, if the consumer agent pool consists of 100 agents, then *T Ic* = 19 for 21 randomly selected agents. The agent-based model requires hourly precipitation data as input, which are needed to calculate demands and trades at hourly intervals.

**Figure 3.** Consumer agents are assigned a value for *T Ic* using the distribution of values shown here.

The agent-based model is implemented in Multi-Agent Simulator Of Neighborhoods (MASON) [86], a Java-based discrete-event multi-agent simulation library. The code is published by Ramsey [87]. The output from MASON was used to create input for the hydraulic simulation submodel, which is described below.
