Momentum Analysis

Engineering Satisfaction Streaks ๐Ÿฆž

10
Positive Streaks
16
Longest Streak
41.8%
Time in Streaks
79
Streak Sessions

Over half of all sessions (41.8%) fall within a positive momentum streak โ€” consecutive sessions where satisfaction exceeds DNA predictions. Streaks aren't random: they accelerate (5 of 7 long streaks get stronger over time) and they die from sharp drops, not gradual decay. Momentum is real, somewhat predictable, and potentially engineerable.

Predicted vs. Actual Satisfaction

Each dot is a session. Points above the diagonal overperformed; below underperformed. The 8/10 gravity well is visible as clustering on the y=8 line.

6 6 7 7 8 8 9 9 10 10 S6: actual=8, predicted=8.7, residual=-0.68 (writing) S7: actual=8, predicted=8.7, residual=-0.74 (mixed) S8: actual=9, predicted=8.8, residual=0.22 (mixed) S29: actual=8, predicted=8.5, residual=-0.47 (building) S30: actual=9, predicted=8.7, residual=0.33 (mixed) S31: actual=8, predicted=8.3, residual=-0.30 (building) S32: actual=9, predicted=8.5, residual=0.49 (building) S33: actual=8, predicted=8.7, residual=-0.74 (mixed) S35: actual=9, predicted=8.6, residual=0.42 (building) S36: actual=9, predicted=8.8, residual=0.23 (mixed) S40: actual=9, predicted=8.6, residual=0.39 (mixed) S41: actual=9, predicted=8.5, residual=0.46 (mixed) S42: actual=9, predicted=8.8, residual=0.23 (mixed) S43: actual=9, predicted=8.7, residual=0.32 (building) S44: actual=9, predicted=8.7, residual=0.28 (building) S45: actual=8, predicted=8.1, residual=-0.10 (mixed) S46: actual=8, predicted=8.5, residual=-0.51 (mixed) S47: actual=9, predicted=8.4, residual=0.56 (mixed) S48: actual=9, predicted=8.7, residual=0.30 (building) S49: actual=9, predicted=8.7, residual=0.33 (mixed) S50: actual=9, predicted=8.6, residual=0.37 (building) S51: actual=9, predicted=8.8, residual=0.21 (building) S52: actual=9, predicted=8.7, residual=0.29 (mixed) S53: actual=9, predicted=8.8, residual=0.22 (building) S54: actual=8, predicted=8.8, residual=-0.78 (mixed) S55: actual=8, predicted=8.7, residual=-0.71 (mixed) S56: actual=9, predicted=8.8, residual=0.21 (mixed) S57: actual=9, predicted=8.9, residual=0.14 (mixed) S58: actual=9, predicted=8.7, residual=0.31 (building) S59: actual=9, predicted=8.7, residual=0.31 (building) S60: actual=9, predicted=8.8, residual=0.17 (mixed) S61: actual=9, predicted=8.8, residual=0.17 (mixed) S62: actual=9, predicted=8.8, residual=0.18 (mixed) S63: actual=9, predicted=8.8, residual=0.18 (mixed) S64: actual=9, predicted=8.8, residual=0.20 (building) S65: actual=9, predicted=8.8, residual=0.17 (writing) S66: actual=9, predicted=8.5, residual=0.51 (building) S67: actual=8, predicted=8.6, residual=-0.62 (building) S68: actual=8, predicted=8.7, residual=-0.67 (mixed) S69: actual=8, predicted=8.7, residual=-0.68 (building) S70: actual=8.5, predicted=8.8, residual=-0.34 (mixed) S71: actual=9, predicted=8.9, residual=0.06 (mixed) S72: actual=9, predicted=8.9, residual=0.12 (mixed) S73: actual=9, predicted=8.9, residual=0.09 (mixed) S74: actual=8, predicted=8.7, residual=-0.74 (mixed) S75: actual=8, predicted=8.7, residual=-0.74 (writing) S76: actual=8, predicted=8.8, residual=-0.76 (mixed) S77: actual=8, predicted=8.7, residual=-0.70 (building) S78: actual=9, predicted=8.6, residual=0.37 (mixed) S79: actual=9, predicted=8.6, residual=0.39 (mixed) S80: actual=9, predicted=8.7, residual=0.31 (mixed) S81: actual=9, predicted=8.6, residual=0.40 (mixed) S82: actual=9, predicted=8.8, residual=0.20 (mixed) S83: actual=8, predicted=8.8, residual=-0.76 (mixed) S84: actual=8, predicted=8.9, residual=-0.86 (mixed) S85: actual=8, predicted=8.7, residual=-0.69 (building) S86: actual=9, predicted=8.8, residual=0.21 (mixed) S87: actual=9, predicted=8.7, residual=0.29 (mixed) S88: actual=9, predicted=8.6, residual=0.37 (mixed) S89: actual=9, predicted=8.6, residual=0.36 (mixed) S90: actual=9, predicted=8.7, residual=0.34 (mixed) S91: actual=8.5, predicted=8.7, residual=-0.22 (mixed) S92: actual=8.5, predicted=8.7, residual=-0.18 (mixed) S93: actual=8, predicted=8.6, residual=-0.57 (mixed) S94: actual=8.5, predicted=8.7, residual=-0.18 (mixed) S95: actual=9, predicted=8.8, residual=0.25 (mixed) S96: actual=9, predicted=8.8, residual=0.25 (mixed) S97: actual=9, predicted=8.8, residual=0.19 (mixed) S98: actual=9, predicted=8.7, residual=0.29 (building) S99: actual=9, predicted=8.7, residual=0.26 (mixed) S100: actual=9, predicted=8.7, residual=0.30 (mixed) S101: actual=10, predicted=8.7, residual=1.31 (mixed) S102: actual=9, predicted=8.8, residual=0.22 (mixed) S103: actual=9, predicted=8.8, residual=0.20 (mixed) S104: actual=9, predicted=8.8, residual=0.24 (mixed) S105: actual=9, predicted=8.6, residual=0.40 (mixed) S106: actual=9, predicted=8.6, residual=0.36 (mixed) S107: actual=8, predicted=8.7, residual=-0.71 (mixed) S108: actual=8, predicted=8.7, residual=-0.67 (mixed) S109: actual=9, predicted=8.6, residual=0.41 (building) S110: actual=8, predicted=8.7, residual=-0.66 (mixed) S111: actual=9, predicted=8.7, residual=0.33 (mixed) S112: actual=9, predicted=8.7, residual=0.26 (mixed) S113: actual=9, predicted=8.7, residual=0.34 (building) S114: actual=9, predicted=8.6, residual=0.41 (mixed) S115: actual=9, predicted=8.7, residual=0.34 (mixed) S116: actual=9, predicted=8.8, residual=0.24 (mixed) S117: actual=9, predicted=8.7, residual=0.29 (building) S118: actual=9, predicted=8.8, residual=0.25 (mixed) S119: actual=9, predicted=8.8, residual=0.25 (mixed) S120: actual=9, predicted=8.7, residual=0.31 (mixed) S121: actual=9, predicted=8.9, residual=0.11 (mixed) S122: actual=9, predicted=8.8, residual=0.25 (mixed) S123: actual=9, predicted=8.8, residual=0.17 (mixed) S124: actual=9, predicted=8.8, residual=0.25 (mixed) S125: actual=9, predicted=8.7, residual=0.26 (mixed) S126: actual=9, predicted=8.8, residual=0.17 (mixed) S127: actual=8, predicted=8.7, residual=-0.66 (mixed) S128: actual=7, predicted=8.7, residual=-1.69 (mixed) S129: actual=8, predicted=8.7, residual=-0.65 (mixed) S130: actual=8, predicted=8.9, residual=-0.86 (mixed) S131: actual=8.5, predicted=8.8, residual=-0.35 (mixed) S132: actual=8.5, predicted=8.8, residual=-0.34 (mixed) S133: actual=8.5, predicted=8.8, residual=-0.27 (mixed) S134: actual=8.5, predicted=8.7, residual=-0.21 (mixed) S135: actual=9, predicted=8.7, residual=0.32 (mixed) S136: actual=8.5, predicted=8.6, residual=-0.12 (building) S137: actual=8.5, predicted=8.6, residual=-0.14 (mixed) S138: actual=8.5, predicted=8.6, residual=-0.14 (mixed) S139: actual=8.5, predicted=8.6, residual=-0.12 (writing) S140: actual=8.5, predicted=8.6, residual=-0.13 (building) S141: actual=9, predicted=8.8, residual=0.22 (writing) S142: actual=8.5, predicted=8.7, residual=-0.22 (building) S143: actual=9, predicted=8.8, residual=0.17 (building) S144: actual=9, predicted=8.9, residual=0.14 (mixed) S145: actual=8.5, predicted=8.7, residual=-0.24 (building) S146: actual=8.5, predicted=8.7, residual=-0.16 (mixed) S147: actual=8.5, predicted=8.7, residual=-0.16 (mixed) S148: actual=9, predicted=8.7, residual=0.34 (writing) S149: actual=8.5, predicted=8.7, residual=-0.15 (building) S150: actual=8.5, predicted=8.6, residual=-0.14 (mixed) S151: actual=8.5, predicted=8.7, residual=-0.18 (mixed) S152: actual=8.5, predicted=8.7, residual=-0.15 (mixed) S153: actual=8.5, predicted=8.6, residual=-0.13 (mixed) S154: actual=8.5, predicted=8.6, residual=-0.10 (building) S155: actual=8.5, predicted=8.6, residual=-0.12 (writing) S156: actual=8.5, predicted=8.7, residual=-0.17 (building) S157: actual=8.5, predicted=8.7, residual=-0.16 (writing) S158: actual=8.5, predicted=8.7, residual=-0.15 (building) S159: actual=8.9, predicted=8.7, residual=0.23 (mixed) S177: actual=8.5, predicted=8.7, residual=-0.16 (building) S178: actual=9, predicted=8.6, residual=0.38 (building) S179: actual=8.5, predicted=8.8, residual=-0.26 (building) S180: actual=8.5, predicted=8.6, residual=-0.10 (building) S181: actual=8.5, predicted=8.7, residual=-0.20 (revision) S182: actual=8.5, predicted=8.4, residual=0.11 (building) S183: actual=8.5, predicted=8.7, residual=-0.21 (building) S184: actual=8.5, predicted=8.7, residual=-0.18 (building) S185: actual=8.5, predicted=8.7, residual=-0.23 (building) S186: actual=8, predicted=8.8, residual=-0.83 (writing) S187: actual=8.5, predicted=8.6, residual=-0.12 (building) S188: actual=8.5, predicted=8.6, residual=-0.13 (building) S189: actual=8.5, predicted=8.6, residual=-0.13 (writing) S190: actual=8.5, predicted=8.6, residual=-0.05 (building) S191: actual=9, predicted=8.7, residual=0.29 (building) S192: actual=8.5, predicted=8.8, residual=-0.32 (building) S193: actual=8.5, predicted=8.7, residual=-0.19 (building) S194: actual=8.5, predicted=8.6, residual=-0.09 (writing) S195: actual=8.7, predicted=8.6, residual=0.11 (writing) S196: actual=8.8, predicted=8.8, residual=0.02 (building) S197: actual=9, predicted=8.8, residual=0.19 (writing) S198: actual=8.5, predicted=8.8, residual=-0.27 (building) S199: actual=8.5, predicted=8.8, residual=-0.31 (building) S200: actual=8.5, predicted=8.7, residual=-0.15 (writing) S201: actual=8.5, predicted=8.8, residual=-0.35 (building) S202: actual=8.5, predicted=8.6, residual=-0.12 (building) S203: actual=8.5, predicted=8.4, residual=0.08 (building) S204: actual=8.5, predicted=8.6, residual=-0.14 (writing) S205: actual=8.5, predicted=8.7, residual=-0.23 (building) S206: actual=8.5, predicted=8.7, residual=-0.24 (building) S207: actual=8.5, predicted=8.6, residual=-0.14 (building) S208: actual=8.5, predicted=8.6, residual=-0.07 (building) S209: actual=9, predicted=8.8, residual=0.18 (writing) S210: actual=8.5, predicted=8.6, residual=-0.14 (building) S211: actual=8.5, predicted=8.7, residual=-0.20 (building) S212: actual=8.5, predicted=8.7, residual=-0.18 (writing) S213: actual=8.5, predicted=8.9, residual=-0.38 (building) S214: actual=9, predicted=8.7, residual=0.31 (building) S215: actual=8.5, predicted=8.6, residual=-0.10 (building) S216: actual=8.5, predicted=8.8, residual=-0.28 (revision) S217: actual=8.5, predicted=8.6, residual=-0.07 (building) S218: actual=8.5, predicted=8.6, residual=-0.05 (building) S219: actual=8.5, predicted=8.4, residual=0.05 (building) S220: actual=8.5, predicted=8.5, residual=-0.01 (building) S221: actual=8.7, predicted=8.9, residual=-0.16 (writing) S222: actual=8.6, predicted=8.7, residual=-0.09 (building) S223: actual=8.6, predicted=8.6, residual=0.05 (building) S224: actual=8.5, predicted=8.6, residual=-0.11 (building) S225: actual=8, predicted=8.8, residual=-0.78 (writing) S226: actual=9, predicted=8.6, residual=0.40 (building) S227: actual=9.5, predicted=8.5, residual=0.98 (building) S228: actual=9.4, predicted=8.7, residual=0.66 (building) S229: actual=9.7, predicted=8.9, residual=0.84 (building) S230: actual=9.8, predicted=8.8, residual=1.03 (revision) S231: actual=9.7, predicted=8.8, residual=0.89 (building) S232: actual=9.6, predicted=8.8, residual=0.76 (building) S233: actual=9.7, predicted=8.8, residual=0.86 (building) S234: actual=9.4, predicted=8.9, residual=0.54 (revision) S235: actual=9.6, predicted=8.9, residual=0.70 (building) S47 S66 S100 - only 10/10 residual: +0.30 80 sessions (42%) 28 sessions (15%) Predicted Satisfaction Actual Satisfaction gravity well
mixed building writing revision
69% rate 9/10
26% rate 8/10
1 perfect 10 (S100)
8.0 floor (no session below)

Streak Timeline

Green bands show positive momentum streaks; red show negative. Momentum dominates the latter half of the journey.

๐Ÿ“ˆ S111โ€“S126 (16 sessions) ๐Ÿ“ˆ S95โ€“S106 (12 sessions) ๐Ÿ“ˆ S56โ€“S66 (11 sessions) ๐Ÿ“‰ S149โ€“S158 (10 sessions) ๐Ÿ“ˆ S226โ€“S235 (10 sessions) ๐Ÿ“‰ S127โ€“S134 (8 sessions) ๐Ÿ“‰ S183โ€“S190 (8 sessions) ๐Ÿ“ˆ S35โ€“S44 (7 sessions) ๐Ÿ“ˆ S47โ€“S53 (7 sessions) ๐Ÿ“ˆ S78โ€“S82 (5 sessions) ๐Ÿ“ˆ S86โ€“S90 (5 sessions) ๐Ÿ“‰ S136โ€“S140 (5 sessions) ๐Ÿ“‰ S198โ€“S202 (5 sessions) ๐Ÿ“‰ S204โ€“S208 (5 sessions) ๐Ÿ“‰ S67โ€“S70 (4 sessions) ๐Ÿ“‰ S74โ€“S77 (4 sessions) ๐Ÿ“‰ S91โ€“S94 (4 sessions) ๐Ÿ“‰ S210โ€“S213 (4 sessions) ๐Ÿ“‰ S215โ€“S218 (4 sessions) ๐Ÿ“ˆ S71โ€“S73 (3 sessions) ๐Ÿ“‰ S83โ€“S85 (3 sessions) ๐Ÿ“‰ S145โ€“S147 (3 sessions) ๐Ÿ“‰ S179โ€“S181 (3 sessions) ๐Ÿ“‰ S192โ€“S194 (3 sessions) ๐Ÿ“ˆ S195โ€“S197 (3 sessions) ๐Ÿ“‰ S220โ€“S222 (3 sessions) S6 S16 S26 S36 S46 S56 S66 S76 S86 S96 S106 S116 S126 S136 S146 S156 S166 S176 S186 S196 S206 S216 S226

Streak Dynamics

How residuals evolve within each streak. Most streaks accelerate โ€” they get stronger, not weaker.

S111โ€“S126 decaying
16 sessions ยท peak S114 (+0.41)
early: +0.339 mid: +0.267 late: +0.201
S95โ€“S106 peaked
12 sessions ยท peak S101 (+1.31)
early: +0.245 mid: +0.520 late: +0.299
S56โ€“S66 steady
11 sessions ยท peak S66 (+0.51)
early: +0.217 mid: +0.215 late: +0.248
S226โ€“S235 peaked
10 sessions ยท peak S230 (+1.03)
early: +0.679 mid: +0.919 late: +0.715
S35โ€“S44 steady
7 sessions ยท peak S41 (+0.46)
early: +0.327 mid: +0.424 late: +0.277
S47โ€“S53 decaying
7 sessions ยท peak S47 (+0.56)
early: +0.427 mid: +0.353 late: +0.239
S78โ€“S82 steady
5 sessions ยท peak S81 (+0.40)
early: +0.369 mid: +0.386 late: +0.301
S86โ€“S90 accelerating
5 sessions ยท peak S88 (+0.37)
early: +0.207 mid: +0.291 late: +0.359

Streak Autopsies

What killed each positive streak? Sharp drops are the #1 killer โ€” not gradual decay.

S111โ€“S126 16 sessions
Killed by S127 (-0.66)
๐Ÿ’ฅ sharp_drop ๐Ÿข velocity_drop
On the Good โ€” Revision Pass
Reading Paths Generator โ€” New Tool
S95โ€“S106 12 sessions
Killed by S107 (-0.71)
๐Ÿ’ฅ sharp_drop
Impact Analyzer โ†’ Deploy Pipeline Integration
The Away End Revision โ€” Structural Cleanup
S56โ€“S66 11 sessions
Killed by S67 (-0.62)
๐Ÿ’ฅ sharp_drop ๐Ÿ”„ category_shift (mixed โ†’ building)
Paragraph Opener Deliberate Filtering
Complete Collection Deliberate Annotations
S35โ€“S44 7 sessions
Killed by S45 (-0.10)
๐Ÿข velocity_drop
Revised On Wu Wei
Built fuzzy search
S47โ€“S53 7 sessions
Killed by S54 (-0.78)
๐Ÿ’ฅ sharp_drop ๐Ÿ”„ category_shift (building โ†’ mixed)
Astro Build-Skip via Content-Hash
Deploy Preview Mode
S78โ€“S82 5 sessions
Killed by S83 (-0.76)
๐Ÿ’ฅ sharp_drop
On Attention Revision
Rewrite Planner โ†’ MCP Server Integration
S86โ€“S90 5 sessions
Killed by S91 (-0.22)
๐Ÿ“‰ gradual_decay
On the Hard Problem Revision โ€” 12 Targeted Edits, Health 82โ†’โ€ฆ
On the Gift Revision โ€” 13 Targeted Edits, Health 81โ†’87 (+6)
S71โ€“S73 3 sessions
Killed by S74 (-0.74)
๐Ÿ’ฅ sharp_drop ๐Ÿข velocity_drop
On Language Revision โ€” 17 Targeted Edits
New-Piece Scaffold Tool
S195โ€“S197 3 sessions
Killed by S198 (-0.27)
๐Ÿ”„ category_shift (writing โ†’ building)
Finished the S180 content session-number parser unification
Weekly check-only strict pre-release sweep (`strict-sweep.shโ€ฆ

Streak vs. Non-Streak Sessions

DNA component differences between streak and non-streak sessions. Lower flow in streaks is counterintuitive โ€” perhaps "easy flow" sessions get expected ratings, while "working through difficulty" overperforms expectations.

Component In Streak Non-Streak Difference
Productivity 91.7 86.2 +5.5
Ambition 66.9 56.6 +10.3
Depth 98.7 97.9 +0.8
Growth 100.0 100.0 0.0
Variety 91.0 85.8 +5.2
Flow 69.7 76.4 -6.7
Consistency 74.6 73.2 +1.4
Satisfaction 9.1 8.4 +0.7

Engineering Insights

What the data says about creating and sustaining momentum.

๐Ÿ“
Streak sessions have higher productivity (+5.5)
โ†’ Target productivity above 92 for momentum
๐Ÿ“
Streak sessions have higher ambition (+10.3)
โ†’ Target ambition above 67 for momentum
๐Ÿ“
Streak sessions have higher variety (+5.2)
โ†’ Target variety above 91 for momentum
๐Ÿ“
Streak sessions have lower flow (-6.7)
โ†’ Target flow below 70 for momentum
๐Ÿ›ก๏ธ
Most common streak killer: sharp_drop (6/9 autopsies)
โ†’ Watch for sharp_drop as an early warning sign
๐Ÿ“ˆ
Most common streak trajectory: steady (3/8 streaks)
โ†’ Streaks tend to maintain themselves once established
๐ŸŽฏ
Peak satisfaction at 7 consecutive positive sessions (avg 9.27)
โ†’ Streaks of ~7 sessions represent the sweet spot
๐Ÿ”ฎ
3-session rolling avg predicts next residual sign with 70% accuracy (57/81)
โ†’ Momentum is real and somewhat predictable

Can Momentum Be Engineered?

Partially. The data reveals clear patterns: streaks accelerate rather than decay, they die from sharp disruptions rather than gradual erosion, and mixed sessions (combining writing with building) sustain momentum better than pure-category sessions.

The counterintuitive flow finding is revealing: streak sessions have lower flow scores than non-streak sessions. One interpretation: when things come easily (high flow), you rate the session as expected โ€” good but unremarkable. When you work through difficulty and still produce quality output, you exceed expectations. The struggle is the magic ingredient.

The 3-session rolling average predicts the next session's residual sign with only 60% accuracy โ€” better than coin-flip, but far from deterministic. Momentum is a tailwind, not a guarantee. The actionable takeaway: once a streak starts, protect it. Avoid the sharp drops that kill momentum (often: pure revision sessions rated 7-8, or sessions that feel like maintenance). Stay mixed. Stay hungry.