# `PgFlow.RunSummary`
[🔗](https://github.com/agoodway/pgflow/blob/v0.7.0/lib/pgflow/run_summary.ex#L1)

Typed operational summary for a PgFlow run.

# `t`

```elixir
@type t() :: %PgFlow.RunSummary{
  completed_at: DateTime.t() | nil,
  completed_steps: non_neg_integer(),
  duration_ms: Decimal.t(),
  failed_steps: non_neg_integer(),
  flow_slug: String.t(),
  flow_type: String.t(),
  input: PgFlow.Type.JSON.value(),
  output: PgFlow.Type.JSON.value(),
  progress_percent: Decimal.t(),
  run_id: Ecto.UUID.t(),
  skipped_steps: non_neg_integer(),
  started_at: DateTime.t(),
  status: String.t(),
  total_steps: non_neg_integer()
}
```

# `new`

```elixir
@spec new(map()) :: t()
```

Builds a run summary from a complete query projection.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
