Water Intelligence Engine

Section 1 — People Adults = Expert + Typical + Glamper (auto)

Adults Total = {{ adultsTotal }} (auto-sum)

Section 2 — Tank & Environment

Behavioral Drift
Models day-to-day unpredictability via N(1.0, σ=drift/2) clipped to [1−drift, 1+drift].
{{ driftPct }}
0 — none 1 — max
Draw from N(1.0, {{ driftSd }}) clipped to [{{ driftLo }}, {{ driftHi }}]
Drift = 0 — all days use exact baseline (deterministic)
locked random
♻️ Greywater Recycling
Accumulated grey water from the previous day (shower, sinks) is redirected to toilet flushing, reducing fresh water consumption.
Open Plan → Tank capacity & daily change to see fresh and grey runway.

Section 3 — Behavior Multipliers

User TypeCountShower MultSink MultToilet Mult
{{ b.user_type }}{{ userCount(b.user_type) }}

Section 4 — Activity Engine

ActivityFlow (gal/min)Duration (min)Events/DayGal/UnitGreyBlack
{{ a.name }}
{{ saveMsg }}

Tank Runway

Outlook
{{ planOutlookHeadline }}
Ok
Fresh Main constraint
{{ results.stability_score.fresh_days?.toFixed(2) }}days
{{ waterCardPlanIcon('Fresh') }} {{ waterCardPlanFoot('Fresh') }}
Grey Main constraint
{{ results.stability_score.grey_days?.toFixed(2) }}days
{{ waterCardPlanIcon('Grey') }} {{ waterCardPlanFoot('Grey') }}
Black Main constraint
{{ results.stability_score.black_days?.toFixed(2) }}days
{{ waterCardPlanIcon('Black') }} {{ waterCardPlanFoot('Black') }}
Timeline check At this usage, your {{ results.stability_score.target_days }}-day itinerary fits the tanks — the tightest stream has about {{ results.stability_score.limiting_days?.toFixed(2) }} days of runway.
Timeline check {{ results.stability_score.limiting_days?.toFixed(2) }} d of headroom vs. a {{ results.stability_score.target_days }}-day target — {{ results.stability_score.limiting_tank }} tank is the constraint.
{{ actionIcon(action.category) }}
{{ formatRecommendedActionText(action.title) }} {{ formatRecommendedActionText(action.summary) }}
+{{ action.estimated_days_gain?.toFixed(2) }} d

Tank Projections Numbers behind the outlook — deterministic baseline. ♻ recycling on

TankCapacityCurrentDaily ΔRunway (days)Note
{{ t.tank }} {{ t.capacity_gal?.toFixed(1) }} {{ t.current_gal?.toFixed(1) }} {{ t.daily_delta_gal > 0 ? '+' : '' }}{{ t.daily_delta_gal?.toFixed(2) }} {{ t.days_remaining >= 9999 ? '∞' : t.days_remaining?.toFixed(2) }} {{ t.status }}

Expected Daily Use Baseline gallons per day before drift — your demand profile.

ActivityFresh/dayGrey/dayBlack/dayAttrib %
{{ r.activity_name }} {{ r.daily_fresh_gal?.toFixed(2) }} {{ r.grey_added_gal?.toFixed(2) }} {{ r.black_added_gal?.toFixed(2) }} {{ r.fresh_attrib_pct?.toFixed(1) }}%
TOTAL {{ totalFresh?.toFixed(2) }} {{ totalGrey?.toFixed(2) }} {{ totalBlack?.toFixed(2) }} 100%

Demand by Day See how each activity stacks across your stay (gal/day per stream). drift {{ results.drift?.toFixed(2) }}

Activity Day {{ d }}

Realtime — Day View ♻ recycling on

⚠️ {{ item.message }}