Three trackers, one layer
Each card represents a different FFH page using the same engine.
Cardio Bingo β Daily Walk
Prevention Bingo Β· Cardiovascular
Goal: Walk 30 min, 5 days/week β target fitness by Aug 2026
Mental Wellness β Sleep Check-In
FFH Academy Β· Mental Health module
Goal: Log a sleep check-in 6 nights/week
Health Is Wealth β Weekly Money Check-In
FFH Academy Β· Financial Literacy
Goal: One money check-in per week (savings, debt, or spend)
How a host page wires it in
Two file includes + one register call per goal. That's it.
Drop-in pattern for any FFH page
// 1. Include the layer (head of page) <link rel="stylesheet" href="recalculate-ui.css"> <script src="recalculate-engine.js"></script> // 2. Register the page's goals (any number) and start watching FFH.Recalculate.register({ goalId: 'walk-30x5', label: 'Walk 30 min, 5 days/week', tracker: 'sports-health', thresholdDays: 7, barrierProfile:'movement' // β loads movement diagnostic + resources }); FFH.Recalculate.watch(); // drift checks run every 60s // 3. When the user logs progress anywhere, just tell the layer: FFH.Recalculate.logAction('walk-30x5');
Live event stream
Composer event bus events. Pace's integration listens here.
Click a "Simulate drift" button above β events will stream here as you progress through Recalculate.
π‘ PHIT pipe: The
phit.pattern.signal event carries only anonymized barrier tags + tracker name + zip (if available). Individual identity never leaves the device. Aggregate signals feed the community pattern library β exactly the civic-planning intelligence PHIT was built to surface.