Plot views on a single DDS record
Read-side views over the plots associated with a record's current version snapshot, plus the operator-driven config that shapes what the DDS package will actually use.
▶Read views (this folder)
| View | Question | Endpoint |
|---|---|---|
| List Plots | "What plots will the package actually use?" | GET /dds/:recordId/plots |
| List Unaccounted Plots | "What's appeared on the source task since the snapshot was cut and would qualify if the filter were re-applied today?" | GET /dds/:recordId/plots/unaccounted |
List Plots (where excluded = false) plus the
Exclusions/List Excluded Plots view (where excluded = true)
together partition the current version's plot set.
List Unaccounted Plots is disjoint from both — by definition
those plots are not in the current version snapshot, and have
no record-level config (no justification surfaced inline).
▶Subfolders
| Folder | What it covers |
|---|---|
Exclusions/ | List excluded plots, plus single-plot mutations to exclude or re-include a plot |
▶Justifications and compliance overrides
Both List Plots and List Excluded Plots attach any matching
justification inline as
attributes.justification: { text, evidence_urls, compliance_override }.
Justifications can apply to either included or excluded plots;
this saves callers a second round-trip to render the operator's
reasoning.
The compliance_override field carries the operator's manual
pin of the plot's compliance verdict on this version:
| Value | Meaning |
|---|---|
"compliant" | Operator has flipped this plot to compliant despite the alert-derived verdict. |
"non_compliant" | Operator has escalated this plot to non-compliant. |
null | No override set — verdict falls back to the alert-derived value. |
The override is set / cleared via Verdict Overrides (axis
plot_compliance), or removed wholesale with its DELETE; the
corresponding effective_verdict and byVerdict aggregates are
surfaced on the JSON report.
List Unaccounted Plots does not attach justifications: by
definition those plots have no record-level config yet.
▶Configuring exclusions, justifications, and overrides
- Bulk edits (many exclusions / justification texts at once)
go through
PATCH /:recordId/config— seePatch DDS Configin the parent folder. Note that the bulk endpoint does not acceptcompliance_override; use the per-plotVerdict Overridesendpoints for findings on any axis. - Per-plot edits — the only path that accepts
compliance_override— live under theExclusions/subfolder, andVerdict Overrides/for findings.
▶?include=assessment
?include=assessmentAll three plot endpoints (and their version-pinned siblings under
Versions/) accept ?include=assessment to attach the full
assessment data per plot as a JSON:API
relationships.assessment block. Same shape the
/locations?include=assessment endpoint emits — core (with
confidence_score / confidence_level / flags), plus art9,
art10, hazard, infrastructure (each with flags / sub_options /
sco2_run_at).
| Endpoint | Source of the assessment |
|---|---|
List Plots, List Excluded Plots (current and version-pinned) | Pinned snapshot — resolves the assessment pinned for each type at version-cut time. Pins that were null at version-cut time render as null in the relationships block, matching the version's completeness counts. |
List Unaccounted Plots | Live — there's no version pin (these plots aren't in any snapshot yet), so your org's current assessment per type is returned. |
Without the param, data[i].relationships is omitted entirely. Hydration
is one batched call per page, regardless of page size.
Required scope:
ingestions:read