# ReportRows

object type

A finished synchronous report run: the report in words, the terminal family, THE OUTPUT PLAN, the rows as ONE JSON array text (`rowsJson` — the planJson carrier idiom: a row's shape is the column plan's, so the receiver parses; money renders as a decimal string by the currency's exponent, a missing group key reads `(none)`), rowCount · groupCount (0 for a projection), the records examined (the walks plus every caption hydrated), the pre-read estimate, the elapsed ms, and the reference families whose `.caption` column was OMITTED because the caller may not list them.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `words` | [String](/types/#scalars) `String!` | No further notes. |
| `terminalFamily` | [String](/types/#scalars) `String!` | No further notes. |
| `columns` | [ReportColumn](/types/ReportColumn/) `[ReportColumn!]!` | No further notes. |
| `rowsJson` | [String](/types/#scalars) `String!` | No further notes. |
| `rowCount` | [Int](/types/#scalars) `Int!` | No further notes. |
| `groupCount` | [Int](/types/#scalars) `Int!` | No further notes. |
| `examined` | [Int](/types/#scalars) `Int!` | No further notes. |
| `estimate` | [SearchPlanEstimate](/types/SearchPlanEstimate/) `SearchPlanEstimate!` | No further notes. |
| `elapsedMs` | [Int](/types/#scalars) `Int!` | No further notes. |
| `captionsOmitted` | [String](/types/#scalars) `[String!]!` | No further notes. |

## Used by

- [reportRun](/reference/reading-your-records/reportRun/)
