> This page is for version Main (default).
> For other versions, use one of these documentation indexes:
> - Main (default): https://docs.nvidia.com/nemo/gym/main/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo/gym/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo/gym/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo/gym/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo/gym/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo/gym/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo/gym/v0.3.0/llms.txt
> - 0.2.1: https://docs.nvidia.com/nemo/gym/v0.2.1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.core.operation_timing

Measurements of explicitly named operation boundaries.

## Module Contents

### Classes

| Name                                                                 | Description                                                                            |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [`OperationTiming`](#nemo_gym-core-operation_timing-OperationTiming) | One measurement; endpoint comparability and elapsed duration are independent evidence. |

### Data

[`TimingBoundary`](#nemo_gym-core-operation_timing-TimingBoundary)

### API

```python
class nemo_gym.core.operation_timing.OperationTiming()
```

**Bases:** `BaseModel`

One measurement; endpoint comparability and elapsed duration are independent evidence.

**`boundary`** `TimingBoundary`

---

**`clock_domain`** `str | None = Field(default=None, min_length=1)`

---

**`completed_at`** `float | None = None`

---

**`duration_ms`** `float | None = Field(default=None, ge=0)`

---

**`duration_source`** `Literal['monotonic', 'reported', 'wall_clock'] | None = None`

---

**`execution_id`** `str | None = None`

---

**`model_config`**

---

**`started_at`** `float | None = None`

---

**`timing_source`** `str = Field(min_length=1)`

---

```python
nemo_gym.core.operation_timing.OperationTiming.validate_measurement() -> nemo_gym.core.operation_timing.OperationTiming
```

```python
nemo_gym.core.operation_timing.TimingBoundary = Literal['lifecycle', 'executor', 'transcript', 'event_receipt']
```