Power Oracle

Compute Model

Session-first, split-aware computation and the denominator rules behind Power Oracle.

Power Oracle uses a session-first compute model.

Core Semantics

  • Top-level duration_seconds is full session elapsed time.
  • splits[] are required and represent meaningful work segments.
  • Each split has its own active duration_seconds.
  • rest_seconds_after is optional and captures recovery after a split.

This keeps interval workouts from collapsing into one misleading average.

Denominator Rule

Two denominator rules matter:

  • Session average power uses full session elapsed time.
  • Split average power uses split active duration only.

That distinction is the reason the API can describe both whole-session output and within-session structure without inventing timing that was never supplied.

Unattributed Time

If the top-level elapsed time is larger than the total of split active time plus rest_seconds_after, the remainder is returned as unattributed_duration_seconds.

This makes incomplete timing explicit instead of silently burying it in the denominator.

Why It Matters

Most workout tools track proxies such as scores, rounds, or finish times.

Power Oracle is designed to preserve the measurement object itself: work over time.