Chapter 3 – Building Your Consumption Profile

A consumption profile translates the appliance reference tables of Chapter 2 into a time-series of power demand. This is the central input to all sizing calculations for solar and storage systems.


3.1 Why a Profile, Not Just a Total?

Annual kWh tells you how much energy you use. A profile tells you when you use it. The timing is essential because:

Two households with the same annual consumption but different profiles need very different solar+storage systems.


3.2 The Hourly Load Profile Method

The simplest useful model is an hourly load profile for a representative day. Construct it as follows:

Step 1: List all appliances in your home.

Step 2: For each appliance, assign:

Step 3: For each hour h (0–23), sum contributions:

Load(h) = Σ [Power_i × DutyCycle_i × Active_i(h)]

where Active_i(h) = 1 if appliance i is expected to run during hour h, 0 otherwise.


3.3 Worked Example: 4-Person House, No Electric Heating

Household: 4 persons, 120 m², temperate climate, average usage habits. Heating: Gas (not counted). Hot water: Electric resistance tank (300L, 2,500 W, 3h/day cycling).

Appliance List and Parameters

Appliance Power (W) Duty Cycle Active Hours (typical day)
Fridge-freezer 180 0.35 All 24h
Chest freezer 100 0.30 All 24h
Dishwasher 2,200 1.0 20:00–21:30 (once/day)
Oven 2,500 0.70 18:00–19:30
Induction cooktop 3,500 0.40 07:30–08:00, 18:30–19:30
Kettle 2,500 3 uses × 3 min = 0.15h total
Washing machine 2,000 1.0 09:00–10:30 (alt. days)
Tumble dryer (heat pump) 1,000 1.0 10:30–12:00 (alt. days)
Hot water tank 2,500 1.0 02:00–05:00 (night tariff)
Computers (2 laptops) 100 total 1.0 08:00–22:00
TV + entertainment 150 1.0 18:00–23:00
Lighting 200 1.0 06:30–08:30, 17:00–23:00
Router + NAS 50 1.0 All 24h
Standby (all devices) 60 1.0 All 24h

Resulting Hourly Profile (Typical Winter Weekday)

Hour Load (W) Major contributors
00–01 290 Fridge, freezer, router, standby
01–02 290 Same
02–03 2,790 + Hot water tank
03–04 2,790 + Hot water tank
04–05 2,790 + Hot water tank
05–06 290 Baseload only
06–07 490 + Lighting starts
07–08 2,040 + Kettle (0.15h burst ≈ 375W avg), induction
08–09 800 + Laptops, lighting
09–10 2,800 + Washing machine
10–11 2,800 Washing machine continues
11–12 1,290 + Heat pump dryer
12–13 490 Dryer finishes, light lunch
13–17 490 Quiet afternoon: fridge, laptops, router
17–18 690 Lighting on
18–19 4,490 Oven + induction + lighting
19–20 4,840 + TV + entertainment + dishwasher starts
20–21 3,150 Cooking done, dishwasher running
21–22 650 TV, lights, laptops winding down
22–23 510 TV off
23–00 290 Baseload

Daily total: ~28.5 kWh (winter weekday, no heating, not including weekend variation) Annual estimate: 28.5 × 365 × 0.85 (weekday/weekend correction) ≈ 8,840 kWh — consistent with Chapter 2 “Typical” estimate.


3.4 Peak Demand vs Total Energy

From the profile above:

The peak-to-average ratio is ~4:1. This matters for:

  1. Grid connection sizing: Your subscription tier must cover the peak (subscribed at ≥ 6 kVA)
  2. Inverter sizing: A hybrid inverter must handle peak simultaneous loads
  3. Battery discharge rate: A battery discharging at 4.8 kW empties a 10 kWh battery in just over 2 hours

3.5 Annual Load Duration Curve

For more detailed analysis, the load duration curve plots hours of the year sorted by load magnitude (highest to lowest). It answers: “How many hours per year does the load exceed X kW?”

Typical shape for our 4-person household:

Load level Hours exceeding (estimate)
> 4 kW ~200 h/year (cooking peaks)
> 3 kW ~400 h/year
> 2 kW ~800 h/year
> 1 kW ~2,500 h/year
> 0.5 kW ~5,000 h/year
Baseload ~0.3 kW ~8,760 h/year (always)

3.6 Seasonal Profiles

The profile changes significantly with season for households with electric heating or heat pump systems. Key changes in a cold winter month:

This seasonal imbalance drives the core challenge: solar produces least when you need energy most. Battery storage helps at the daily scale but cannot bridge a multi-month deficit — which is why solar sizing for all-electric homes with heating must consider annual averages and accept significant grid imports in winter.


3.7 Using the Python Code

The companion script code/consumption_profile.py implements this method. It takes a list of appliance objects and a schedule configuration, and returns an 8,760-row DataFrame (one row per hour of the year).

from consumption_profile import build_annual_profile, SAMPLE_HOUSEHOLD

profile = build_annual_profile(SAMPLE_HOUSEHOLD)
print(f"Annual consumption: {profile['load_w'].sum() / 1000:.0f} kWh")
print(f"Peak demand: {profile['load_w'].max() / 1000:.1f} kW")

See Chapter 10 for how this feeds into the full scenario simulation.


Navigation: