← All stories

BRANCH · ef-090-graphical-checkin-report

Graphical Check-In report

EF-090Persona: OrganizerStage: CloseoutRoots in: admin-shell-access

Organizer creates a check-in-over-time PDF with chart, deduped scan timeline rows, and async artifact lifecycle inherited from ui-async-job-tracker. Tier-3 tightening: graphical check-in report administration now references ui-async-job-admin-page for the job lifecycle foundation.

Happy path

  1. Open Graphical Check-In from Reports.

    Organizer sees chart preview, time bucket controls, and dedupe summary.

  2. Generate PDF.

    The job tracker shows queued/running states until chart rendering and PDF upload complete.

  3. Download PDF with embedded chart.

    The artifact includes check-in-over-time chart plus timeline rows used to build it.

Failure modes

Chart missing from PDF

Trigger: PDF is generated without the embedded chart image.

Resolution: ready state requires chart render metadata and PDF artifact link.

Duplicate scans inflate graph

Trigger: same guest scanned multiple times in one station window.

Resolution: dedupe summary shows raw scans and unique guests.

Timeline rows disagree with chart

Trigger: exported rows do not total to the chart buckets.

Resolution: chart bucket totals and timeline row counts share the same digest.

Deployed-runtime gap

Trigger: deployed run on 2026-04-29 observed graphical check-in report job create returned 400 D1 bootstrap error; the probe locks this in until the gap is closed.

Resolution: status 400 remains expected until deployed D1 bootstrap is fixed.

Stable test attributes

Visibility teeth. Each attribute must be effectively visible when active.

graphical-checkin-report-pagePageGraphical Check-In report surface
graphical-checkin-date-rangeFormCheck-in time range
graphical-checkin-chart-previewPreviewCheck-in-over-time chart
graphical-checkin-dedupe-summaryPreviewRaw scan vs unique guest counts
graphical-checkin-timeline-tablePreviewTimeline rows
graphical-checkin-generate-ctaToolbarCreate report job
graphical-checkin-job-trackerPageAsync report lifecycle
graphical-checkin-download-ctaJob rowDownload artifact
graphical-checkin-regenerate-ctaJob rowRegenerate expired/swept artifact
graphical-checkin-error-panelJob rowFailure reason and request id
graphical-checkin-stuck-bannerJob rowQueued too long warning
graphical-checkin-permission-gateCatalogPermission-filtered report entry
graphical-checkin-gap-panelPageRuntime gap notice

Agent test plan

- graphical-checkin-renders
- generate-graphical-checkin-report
- chart-and-timeline-reconcile
- deployed-runtime-gap