How the Homestead Lab model works
The Lab is a teaching model. It steps forward one hour at a time, tracks a few budgets (electricity, water, heat, food, money), and settles water and food once a day. It is built to show trade-offs honestly, not to design a real system.
This page is generated from the model's own parameter object, so it always matches the code. Of 91 parameters, 63 are marked as teaching simplifications: rounded or assumed values that a reviewer should check before relying on them.
Each hour
- Weather. Each day is drawn from the zone's monthly normals with a fixed random seed: temperature with a day-to-day drift, overcast or clear, and rain or snow on some overcast days. Hours follow a daily temperature curve and the sun's real position.
- Solar. Sunlight is split into direct and diffuse and projected onto the tilted panels. Output = sunlight × panel rating × system derate × heat penalty, and much less after snow on low tilts.
- Loads. Appliances follow daily profiles. Water pumping, hot water, heating and cooling add electricity when they are electric.
- Heat. In four 15-minute steps: heat lost through walls, roof, floor, windows and air leaks, minus sun through windows and heat from people and appliances. The heater makes up the difference up to its size. A wood stove only burns when someone is home and awake, then banks overnight.
- Battery and backup. Solar serves loads first, then charges the battery. When the battery reaches its reserve, the grid (if connected) or the generator (if fitted) takes over. Anything left unmet is an hour without power.
Each day
- Water: rain (minus first flush) fills the tank until it overflows; household, animal and garden use draw it down. Unprotected tanks freeze in cold spells. A dry tank means hauled water and a thirsty garden.
- Food: beds grow when the month is warm enough (season extension stretches that). Yield falls with heat and with missed watering. Surplus is preserved into the pantry, which loses a little each month. Hens lay with day length.
Scenarios are tested both ways
Each scenario has an automated test where the starting setup must fail and a sensible set of changes must win. If a model change breaks that, the build fails.
- A cloudy week in December: Keep the lights and fridge on for 7 overcast days without the batteries running flat.
- Drought summer: Get from June 1 through August without the rain tank running dry.
- First winter in a drafty cabin: Keep indoors at 59 °F (15 °C) or warmer for at least 95% of hours, December through February, on 2,500 kg (about 1.5 cords) of wood.
- Add a second person: Run a full year for two people with fewer than 24 hours without power and no days with a dry tank.
- Plant to plate: Grow at least 25% of the vegetables two people eat over a year.
- Grid-tied to off-grid: Drop the grid near Chicago (zone 5A) and run fewer than 5 generator hours in every month of the year.
Every parameter
solar
battery
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
lfp.minSoc | 0.1 | fraction kept in reserve | National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory, NREL) | Simplification |
lfp.roundTrip | 0.92 | round-trip efficiency | National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory, NREL) | Sourced |
lfp.noChargeBelow | 0 | °C: charging blocked without a heater | National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory, NREL) | Sourced |
lead.minSoc | 0.5 | fraction kept in reserve to protect life | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
lead.roundTrip | 0.8 | round-trip efficiency | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Sourced |
lead.coldCapacityPerC | 0.01 | capacity lost per °C below 20 °C | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
inverter
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
efficiency | 0.94 | fraction | National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory, NREL) | Sourced |
idleW | 25 | W idle draw | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
generator
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
fuelLPerKWh | 0.4 | L gasoline per kWh delivered | US Consumer Product Safety Commission | Simplification |
startSoc | 0.2 | start when usable charge falls below | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
stopSoc | 0.5 | stop when usable charge reaches (bulk charge only; solar finishes the job) | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
prices
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
gridKWh | 0.12 / 0.17 / 0.3 | $/kWh low, typical, high | US Energy Information Administration | Sourced |
exportKWh | 0.05 | $/kWh credit for exported solar (varies widely) | US Energy Information Administration | Simplification |
gasolineL | 0.8 / 1 / 1.3 | $/L | US Energy Information Administration | Sourced |
propaneKWh | 0.07 / 0.1 / 0.14 | $/kWh of fuel energy | US Energy Information Administration | Sourced |
woodKg | 0.12 / 0.2 / 0.3 | $/kg seasoned firewood if bought | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
haulWaterL | 0.02 / 0.05 / 0.1 | $/L trucked water | Texas A&M AgriLife Extension | Simplification |
cityWaterL | 0.003 / 0.006 / 0.012 | $/L including sewer | US Environmental Protection Agency | Simplification |
feedKg | 0.45 / 0.6 / 0.9 | $/kg layer feed | University of Minnesota Extension | Simplification |
heat
water
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
perPersonL | frugal: 95; typical: 200; heavy: 300 | L per person per day, indoor | US Environmental Protection Agency | Simplification |
hotFraction | 0.3 | share of indoor water that is hot | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
greywaterFraction | 0.5 | share of indoor water that is reusable greywater | Water Research Foundation | Simplification |
runoff | 0.85 | runoff coefficient (metal or shingle roof) | Texas Water Development Board | Sourced |
firstFlushLPerM2 | 0.4 | L diverted per m² of roof per rain event | Texas Water Development Board | Sourced |
pumpKWhPerM3 | rain: 0.4; well: 0.8; municipal: 0 | kWh per 1,000 L pumped | US Environmental Protection Agency | Simplification |
hensLPerDay | 0.5 | L per hen per day | University of Minnesota Extension | Sourced |
freezeBelow | -2 | °C daily mean: unprotected tank freezes | Texas A&M AgriLife Extension | Simplification |
tankReserve | 0.05 | bottom fraction not drawn | Texas A&M AgriLife Extension | Simplification |
hotWater
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
supplyTempC | 12 | °C cold water in | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
setTempC | 50 | °C tank setting | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Sourced |
standbyKWhDay | 1 | kWh/day tank standby loss | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
hpwhCop | 2.8 | COP | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Sourced |
solarMaxFraction | 0.75 | max share met by solar thermal on a sunny day | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
food
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
vegNeedKgAbout 2.5 cup-equivalents a day. | 0.35 | kg vegetables per person per day | USDA and US Department of Health and Human Services | Simplification |
yieldKgM2Month | greens: 0.45; mixed: 0.55; staples: 0.6 | kg per m² per growing month | University of Minnesota Extension | Simplification |
kcalPerKg | greens: 200; mixed: 350; staples: 900 | kcal per kg | USDA Agricultural Research Service | Simplification |
growMinTemp | 8 | °C monthly mean to grow | University of Minnesota Extension | Simplification |
extensionBonus | 5 | °C effective gain from row covers or a cold frame | University of Minnesota Extension | Simplification |
heatStressTemp | 30 | °C mean above which yields fall | University of Minnesota Extension | Simplification |
harvestLagDays | 40 | days from season start to first harvest | University of Minnesota Extension | Simplification |
storageLossMonth | 0.05 | fraction of pantry lost per month | University of Georgia, with USDA support | Simplification |
eggsPerHenDay | 0.75 | eggs per hen per day at full light | University of Minnesota Extension | Sourced |
feedKgHenDay | 0.15 | kg feed per hen per day (about 0.25 to 0.45 lb) | University of Minnesota Extension | Sourced |
kcalPerEgg | 72 | kcal | USDA Agricultural Research Service | Sourced |
irrigationMmPerC | 0.2 | mm/day of water need per °C above 5 °C | University of Minnesota Extension | Simplification |
costs
| Parameter | Value | Unit | Source | Status |
|---|---|---|---|---|
pvPerW | 1.5 / 3.5 | $/W installed (DIY low end) | US Department of Energy, Solar Energy Technologies Office | Simplification |
batteryPerKWh | lfp: 450 / 1000; lead: 250 / 550 | $/kWh installed | National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory, NREL) | Simplification |
inverterPerKW | 300 / 800 | $/kW | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
generator | 900 / 3500 | $ with transfer equipment | US Consumer Product Safety Commission | Simplification |
tankPerL | 0.15 / 0.5 | $/L of storage, installed | Texas A&M AgriLife Extension | Simplification |
firstFlush | 50 / 300 | $ | Texas A&M AgriLife Extension | Simplification |
greywater | 300 / 3000 | $ simple laundry-to-landscape up to a permitted system | US Environmental Protection Agency | Simplification |
insulationPerM2 | poor: 0 / 0; code: 40 / 90; high: 90 / 170; super: 160 / 300 | $/m² floor, upgrade from poor | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
airSealing | leaky: 0 / 0; average: 500 / 1500; tight: 2000 / 6000 | $ | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
heater | none: 0 / 0; resistance: 300 / 1500; heatpump: 4000 / 14000; wood: 2500 / 7000; propane: 3000 / 8000 | $ installed | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
waterHeater | resistance: 800 / 2000; heatpump: 2000 / 5000; propane: 1200 / 3000; solar: 4000 / 10000 | $ installed | US Department of Energy, Energy Saver (archived copy; the page was removed from energy.gov in mid-2026) | Simplification |
bedsPerM2 | 15 / 60 | $/m² raised or amended beds | University of Minnesota Extension | Simplification |
seasonExtension | 100 / 1500 | $ row covers to a small hoop house | University of Minnesota Extension | Simplification |
coop | 300 / 2000 | $ coop and run for a small flock | University of Minnesota Extension | Simplification |
perHen | 10 / 40 | $ per bird | University of Minnesota Extension | Simplification |
Appliances
| Appliance | kWh per day | Peak W | When |
|---|---|---|---|
| Fridge (older, standard) | 1.6 | 600 | flat |
| Fridge (efficient) | 0.9 | 400 | flat |
| Chest freezer | 0.8 | 300 | flat |
| LED lighting | 0.4 | 120 | evening |
| Incandescent lighting | 2.2 | 600 | evening |
| Router, phones, small electronics | 0.5 | 60 | flat |
| Laptop and monitor (work from home) | 0.8 | 150 | day |
| TV and streaming | 0.4 | 150 | evening |
| Induction or electric cooking | 1.5 | 3500 | meal |
| Microwave and kettle | 0.4 | 1500 | meal |
| Clothes washer (cold wash) | 0.3 | 500 | day |
| Electric clothes dryer | 2.5 | 5000 | day |
| Shop tools (occasional) | 0.5 | 1800 | day |
Climate inputs: one representative city per zone, rounded from NOAA 1991–2020 normals and NREL solar data. A teaching approximation, not for design.