> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ishlabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# study results

> Command reference: ish study results.

## `ish study results`

View aggregated results: participant counts, sentiment, interview answers. Returns a stable envelope with empty fields when no runs have completed. Slice with filter flags (--frame \[interactive], --segment \[video/audio/text/document], --turn \[chat], --side \[chat participant\_pair], --assignment, --step, --sentiment, --actor, --iteration, --participant) or project with --group-by \<axis> (iteration | frame \[interactive] | segment \[media] | turn \[chat] | assignment | step).

Usage: `ish study results <id> [options]`

### Arguments

<ParamField path="id">Study ID (required)</ParamField>

### Options

<ParamField path="--workspace <id>" type="string">Workspace ID; accepted for consistency (workspace is inferred from the study)</ParamField>
<ParamField path="--summary" type="boolean">Lean summary projection: counts + sentiment + per-participant \{alias, status, sentiment, comment}. Drops interview\_answers + per-interaction breakdowns. Composes with filters: `--summary --frame login` narrows the summary to the login-screen interactions.</ParamField>
<ParamField path="--transcript <participant_id>" type="string">Chat transcript projection for one participant: flat role/text/turn-index array (chat-modality only). Mirrors the MCP `get_chat_transcript` shape. Cannot combine with filters or --group-by (transcript is a single-participant projection).</ParamField>
<ParamField path="--frame <ref>" type="string">Filter to interactions whose Frame name contains \<ref> (case-insensitive), or whose Frame UUID / `f-…` alias / frame\_version\_id matches. Interactive only - warned and ignored on other modalities.</ParamField>
<ParamField path="--segment <ref>" type="string">Filter media studies (video/audio/text/document) by segment index (integer) or segment label (substring). Image and other modalities: warned and ignored.</ParamField>
<ParamField path="--turn <n>" type="string">Filter chat interactions to a single `actions[0].data.turn_index`. Non-chat modalities: warned and ignored.</ParamField>
<ParamField path="--side <a|b>" type="string">Filter participant\_pair chat interactions by assignment side. Other modalities: warned and ignored.</ParamField>
<ParamField path="--assignment <ref>" type="string">Filter to a single assignment by UUID or name (substring, case-insensitive).</ParamField>
<ParamField path="--step <ref>" type="string">Filter `participant_assignments[].step_results[]` to a single step by step-id or name (substring). Pair with --include-evidence to also drop non-evidence interactions.</ParamField>
<ParamField path="--sentiment <labels>" type="string">Filter to interactions whose sentiment.label is in the comma-separated list (case-insensitive; repeatable). Drops interactions whose sentiment is null. A participant is kept when at least one of their interactions matches, even if their aggregate session sentiment is null (e.g. failed runs with a pre-error matching interaction). Default: \[].</ParamField>
<ParamField path="--actor <actor>" type="string">Filter to interactions whose actor is `ai`, `human`, or `user` (case-insensitive).</ParamField>
<ParamField path="--iteration <ref>" type="string">Restrict to a single iteration by UUID or label.</ParamField>
<ParamField path="--participant <ref>" type="string">Restrict to a single participant by UUID or `pt-…` alias.</ParamField>
<ParamField path="--include-unmatched" type="boolean">When --frame is set, keep interactions with null frame\_version\_id under a synthetic `_unmatched` bucket instead of dropping them.</ParamField>
<ParamField path="--include-evidence" type="boolean">When --step is set, also drop interactions not listed in any surviving step\_results\[].evidence\_interaction\_ids\[].</ParamField>
<ParamField path="--group-by <axis>" type="string">Project results into per-axis slices: iteration | frame | segment | turn | assignment | step. Mutually exclusive with --summary and --transcript.</ParamField>

## Global flags

Every command accepts the global flags.

<ParamField path="-V, --version" type="boolean">output the version number</ParamField>
<ParamField path="-t, --token <token>" type="string">Auth token (or set ISH\_TOKEN env var)</ParamField>
<ParamField path="--token-file <path>" type="string">Read auth token from a file (preferred over --token / ISH\_TOKEN)</ParamField>
<ParamField path="--workspace <id>" type="string">Default workspace ID; per-subcommand --workspace overrides</ParamField>
<ParamField path="--json" type="boolean">Output as JSON (auto-enabled when piped)</ParamField>
<ParamField path="--get <field>" type="string">Extract a single field from the JSON response and print only its value (implies --json internally; supports dotted paths e.g. person.name)</ParamField>
<ParamField path="--human" type="boolean">Force human-readable output even when stdout is piped (overrides JSON-when-piped auto-detection)</ParamField>
<ParamField path="--fields <fields>" type="string">Comma-separated fields to include in JSON output (e.g. alias,name,status)</ParamField>
<ParamField path="--verbose" type="boolean">Include full UUIDs and timestamps in JSON output</ParamField>
<ParamField path="--no-color" type="boolean">Disable colored output (also honored: NO\_COLOR env var)</ParamField>
<ParamField path="-q, --quiet" type="boolean">Suppress progress messages on stderr (no-op for read commands that emit none)</ParamField>
