mirror of
https://github.com/stellarshenson/stellars-jupyterhub-ds.git
synced 2026-03-15 09:15:08 +00:00
docs: clarify configured vs effective half-life
Rewrote simulation section explaining why effective half-life differs from configured half-life: 1. Decay is CONTINUOUS (24/7 in calendar time) 2. Work is SPARSE (only during work hours) 3. Decay during BREAKS (overnight with no new work) Added single table showing effective half-life for work patterns (12h, 10h, 8h, 6h, 4h, 2h) vs configured half-lives (24h, 48h, 72h). Key insight: 72h configured = 18h effective for 8h/day worker.
This commit is contained in:
@@ -255,3 +255,6 @@ This journal tracks substantive work on documents, diagrams, and documentation c
|
||||
|
||||
84. **Task - Half-life simulation tables**: Added detailed simulation results to documentation<br>
|
||||
**Result**: Ran Python simulation for different work patterns (10h, 8h, 4h per day) across calendar half-lives (24h-168h). Added three tables to docs/activity-tracking-methodology.md showing "Work Hours at 50%" and "Work Days at 50%" for each combination. Key finding: 72h calendar half-life consistently yields ~2.9 work days at 50% point regardless of daily work hours. Activity scores correctly reflect work fraction (10h=41.6%, 8h=33.3%, 4h=16.6%)
|
||||
|
||||
85. **Task - Configured vs Effective half-life documentation**: Rewrote simulation section with clearer explanation<br>
|
||||
**Result**: Replaced multiple tables with single effective half-life table showing work patterns (12h, 10h, 8h, 6h, 4h, 2h) vs configured half-lives (24h, 48h, 72h). Added explanation that difference is NOT about sampling but about: (1) decay is continuous 24/7, (2) work is sparse, (3) decay continues during overnight breaks. Added example showing overnight decay: 16h sleep causes ~15% weight loss. Key insight: 72h configured = 18h effective for 8h/day worker (~2.25 work days)
|
||||
|
||||
@@ -11,57 +11,52 @@ Our current approach uses **exponential decay scoring**:
|
||||
|
||||
### Why 72-hour Half-life?
|
||||
|
||||
The decay applies to **wall-clock time**, not working time. Users work only a fraction of each 24-hour period, creating a mismatch between calendar decay and effective working activity decay.
|
||||
The decay applies to **wall-clock time**, not working time. Users work only a fraction of each 24-hour period, creating a mismatch between configured (calendar) half-life and effective (working hours) half-life.
|
||||
|
||||
#### Simulation Results
|
||||
#### Configured vs Effective Half-life
|
||||
|
||||
The following tables show how different calendar half-lives translate to effective working-time decay for various work patterns. "Work Hours at 50%" indicates how many actual working hours contribute 50% of the weighted activity score.
|
||||
**The difference is NOT about sampling** - sampling just measures activity at discrete intervals.
|
||||
|
||||
**10h/day work pattern** (intensive)
|
||||
The difference comes from:
|
||||
1. **Decay is CONTINUOUS** - applies to calendar time 24/7
|
||||
2. **Work is SPARSE** - only happens during work hours
|
||||
3. **Decay during BREAKS** - overnight/weekend decay continues with no new work
|
||||
|
||||
| Calendar Half-life | Work Hours at 50% | Work Days at 50% | Activity Score |
|
||||
|:------------------:|:-----------------:|:----------------:|:--------------:|
|
||||
| 24h (1d) | 10.0h | 1.0 days | 41.0% |
|
||||
| 48h (2d) | 19.8h | 2.0 days | 41.5% |
|
||||
| 72h (3d) | 28.5h | 2.9 days | 41.6% |
|
||||
| 96h (4d) | 35.3h | 3.5 days | 41.6% |
|
||||
| 168h (7d) | 47.7h | 4.8 days | 41.7% |
|
||||
Example with 72h configured half-life and 8h/day work:
|
||||
|
||||
**8h/day work pattern** (typical)
|
||||
| Event | Calendar Age | Weight | Work Added |
|
||||
|:------|-------------:|-------:|:----------:|
|
||||
| Day 0: Work 9am-5pm | 0h | 1.000 | +8h |
|
||||
| Day 0: Sleep overnight | 16h | 0.857 | -- |
|
||||
| Day 1: Work 9am-5pm | 24h | 0.794 | +8h |
|
||||
| Day 1: Sleep overnight | 40h | 0.680 | -- |
|
||||
| Day 2: Work 9am-5pm | 48h | 0.630 | +8h |
|
||||
| Day 2: Sleep overnight | 64h | 0.540 | -- |
|
||||
| Day 3: Work 9am-5pm | 72h | 0.500 | +8h |
|
||||
|
||||
| Calendar Half-life | Work Hours at 50% | Work Days at 50% | Activity Score |
|
||||
|:------------------:|:-----------------:|:----------------:|:--------------:|
|
||||
| 24h (1d) | 8.0h | 1.0 days | 32.7% |
|
||||
| 48h (2d) | 16.0h | 2.0 days | 33.2% |
|
||||
| 72h (3d) | 22.8h | 2.9 days | 33.3% |
|
||||
| 96h (4d) | 28.3h | 3.5 days | 33.3% |
|
||||
| 168h (7d) | 38.2h | 4.8 days | 33.3% |
|
||||
At 72h calendar age, weight = 0.500 (half-life by definition). But only 24 work hours occurred in those 72 calendar hours. Each overnight break (16h) causes ~15% decay with no new work added.
|
||||
|
||||
**4h/day work pattern** (part-time)
|
||||
#### Effective Half-life Table
|
||||
|
||||
| Calendar Half-life | Work Hours at 50% | Work Days at 50% | Activity Score |
|
||||
|:------------------:|:-----------------:|:----------------:|:--------------:|
|
||||
| 24h (1d) | 4.0h | 1.0 days | 16.3% |
|
||||
| 48h (2d) | 8.0h | 2.0 days | 16.6% |
|
||||
| 72h (3d) | 11.5h | 2.9 days | 16.6% |
|
||||
| 96h (4d) | 14.2h | 3.5 days | 16.6% |
|
||||
| 168h (7d) | 19.2h | 4.8 days | 16.7% |
|
||||
The following table shows **effective half-life in working hours** for different work patterns and configured half-lives. Simulation: 7 days, 10-minute sampling intervals.
|
||||
|
||||
#### Summary: 72-hour Half-life Across Work Patterns
|
||||
|
||||
| Work Pattern | Work Hours at 50% | Effective Work Days | Activity Score |
|
||||
|:------------:|:-----------------:|:-------------------:|:--------------:|
|
||||
| 10h/day | 28.5h | 2.9 days | 41.6% |
|
||||
| 8h/day | 22.8h | 2.9 days | 33.3% |
|
||||
| 4h/day | 11.5h | 2.9 days | 16.6% |
|
||||
| Work Pattern | Configured 24h | Configured 48h | Configured 72h |
|
||||
|:------------:|:--------------:|:--------------:|:--------------:|
|
||||
| 12h/day | 12.0h | 21.3h | 26.8h |
|
||||
| 10h/day | 10.0h | 17.8h | 22.3h |
|
||||
| 8h/day | 8.0h | 14.3h | 18.0h |
|
||||
| 6h/day | 6.0h | 10.8h | 13.5h |
|
||||
| 4h/day | 4.0h | 7.2h | 9.0h |
|
||||
| 2h/day | 2.0h | 3.7h | 4.5h |
|
||||
|
||||
#### Key Insights
|
||||
|
||||
With a 72-hour calendar half-life:
|
||||
- **Consistent ~3 work days** at the 50% point regardless of daily work hours
|
||||
- Activity score reflects actual work fraction (8h/24h ≈ 33%, 4h/24h ≈ 17%)
|
||||
With a 72-hour configured half-life:
|
||||
- **8h/day worker**: effective half-life is 18 working hours (~2.25 work days)
|
||||
- **4h/day worker**: effective half-life is 9 working hours (~2.25 work days)
|
||||
- **Consistent ~2.25 work days** at the 50% point regardless of daily work hours
|
||||
- Overnight breaks don't aggressively penalize scores
|
||||
- A 24-hour half-life would be too aggressive - yesterday's work already at 50% weight before today starts
|
||||
- A 24-hour configured half-life gives exactly 1 work day effective half-life
|
||||
|
||||
## Industry Approaches
|
||||
|
||||
|
||||
Reference in New Issue
Block a user