{
  "schemaVersion": "1.0.0",
  "study": {
    "id": "study-copper-finch-portal-v1",
    "title": "Copper Finch billing portal navigation study",
    "version": "1.0.0",
    "basisDate": "2026-08-01",
    "target": {
      "kind": "prototype",
      "url": "https://copper-finch.example.test/prototypes/billing-portal-v7",
      "version": "fictional-prototype-v7"
    },
    "mode": "mixed",
    "researchQuestion": "Can intended account administrators find an invoice, update a billing address, and export a receipt from the version 7 prototype without solution-revealing help?",
    "studyOwnerId": "owner-research",
    "decisionOwnerId": "owner-product",
    "status": "decision_ready",
    "consentBoundary": "Consent is represented only by a safe evidence reference; actual identity, contact, signature, recording, and transcript records stay in the approved research system.",
    "privacyBoundary": "Use pseudonymous participant codes, collect only study-needed data, restrict source access, and apply the organization-approved retention, withdrawal, and deletion process.",
    "proofBoundary": "This packet records one fictional usability study and informs iteration; it does not prove release acceptance, technical correctness, WCAG conformance, statistical significance, legal compliance, or product outcomes."
  },
  "owners": [
    {
      "id": "owner-research",
      "roleName": "UX research lead",
      "accountability": "Own the study boundary, participant criteria, scripts, evidence chain, synthesis, and limitations."
    },
    {
      "id": "owner-product",
      "roleName": "Product decision owner",
      "accountability": "Accept, decline, or defer recommendations for the next prototype iteration without treating the study as release approval."
    }
  ],
  "participantCriteria": [
    {
      "id": "criterion-current-admin",
      "kind": "include",
      "statement": "Currently administers billing records for a small organization or has done so within the last 12 months.",
      "rationale": "Matches the experience needed to interpret invoices, billing details, and receipts."
    },
    {
      "id": "criterion-no-build-team",
      "kind": "exclude",
      "statement": "Has not worked on the fictional Copper Finch prototype or received its navigation design.",
      "rationale": "Reduces prior-design knowledge that could conceal discovery problems."
    },
    {
      "id": "criterion-access-method",
      "kind": "balance",
      "statement": "Include both keyboard-primary and pointer-primary interaction methods across the study sample.",
      "rationale": "Exercises more than one realistic access method without claiming an accessibility conformance evaluation."
    }
  ],
  "tasks": [
    {
      "id": "task-find-invoice",
      "title": "Retrieve a past invoice",
      "scenario": "A colleague needs the invoice for the fictional July 2026 service period before a budget review.",
      "goal": "Find and retrieve the invoice for the requested service period.",
      "startState": "Signed in on the prototype account overview with the study data loaded.",
      "successSignal": "The correct fictional invoice is opened or saved.",
      "metricIds": ["metric-invoice-completion"],
      "hintPolicy": "Use silence or a neutral prompt only; do not name navigation labels or the route."
    },
    {
      "id": "task-update-address",
      "title": "Update the billing address",
      "scenario": "The organization has moved and the next fictional invoice should use its new postal address.",
      "goal": "Change the billing address for future invoices.",
      "startState": "Returned to the prototype account overview after the invoice task.",
      "successSignal": "The fictional replacement address is shown as saved for future billing.",
      "metricIds": ["metric-address-time"],
      "hintPolicy": "Ask what the participant expects when clarification is needed; do not identify the setting."
    },
    {
      "id": "task-export-receipt",
      "title": "Export a receipt",
      "scenario": "The finance folder needs a receipt for the most recent fictional payment.",
      "goal": "Export the receipt for the most recent payment.",
      "startState": "Returned to the prototype account overview after the address task.",
      "successSignal": "The correct fictional receipt export is initiated.",
      "metricIds": ["metric-receipt-confidence"],
      "hintPolicy": "Do not confirm whether a chosen path is correct; record any neutral prompt or task help."
    }
  ],
  "scripts": {
    "moderated": {
      "introduction": "Thank the participant, identify the fictional prototype and research purpose, explain that the service rather than the participant is being evaluated, disclose observers and recording state, confirm the approved consent record, and remind them that participation is voluntary and may stop at any time.",
      "neutralPrompts": [
        "What are you looking for now?",
        "What did you expect to happen?",
        "Please tell me what you are thinking."
      ],
      "closing": "Ask what felt clear or difficult, avoid promising a product change, explain the approved follow-up and deletion route, and thank the participant."
    },
    "unmoderated": {
      "introduction": "Explain the fictional prototype, study purpose, collected interaction data, recording state, approved consent record, voluntary participation, withdrawal route, and support contact without storing contact details in this packet.",
      "taskInstructions": "Present one scenario at a time, ask the participant to work as they normally would, and collect the declared post-task rating only after the task ends.",
      "supportBoundary": "Offer technical study support only. Do not reveal a navigation path, complete a task, or turn an assisted attempt into an unassisted success.",
      "closing": "Invite final comments, repeat the approved withdrawal and data-use route, and thank the participant without claiming that feedback will be implemented."
    }
  },
  "sessions": [
    {
      "id": "session-01",
      "participantCode": "participant-01",
      "mode": "moderated",
      "criteriaIds": [
        "criterion-current-admin",
        "criterion-no-build-team",
        "criterion-access-method"
      ],
      "consentState": "recorded",
      "consentEvidenceRef": "evidence/consent/session-01.txt",
      "startedAt": "2026-08-01T09:00:00Z",
      "endedAt": "2026-08-01T09:24:00Z",
      "scriptType": "moderated",
      "status": "completed",
      "recordingState": "not_recorded",
      "dataUseBoundary": "Research notes and prototype events only; no identity, contact details, production account data, transcript, or recording is stored in this packet."
    },
    {
      "id": "session-02",
      "participantCode": "participant-02",
      "mode": "moderated",
      "criteriaIds": ["criterion-current-admin", "criterion-no-build-team"],
      "consentState": "recorded",
      "consentEvidenceRef": "evidence/consent/session-02.txt",
      "startedAt": "2026-08-01T10:00:00Z",
      "endedAt": "2026-08-01T10:21:00Z",
      "scriptType": "moderated",
      "status": "completed",
      "recordingState": "not_recorded",
      "dataUseBoundary": "Research notes and prototype events only; no identity, contact details, production account data, transcript, or recording is stored in this packet."
    },
    {
      "id": "session-03",
      "participantCode": "participant-03",
      "mode": "unmoderated",
      "criteriaIds": [
        "criterion-current-admin",
        "criterion-no-build-team",
        "criterion-access-method"
      ],
      "consentState": "recorded",
      "consentEvidenceRef": "evidence/consent/session-03.txt",
      "startedAt": "2026-08-01T12:00:00Z",
      "endedAt": "2026-08-01T12:17:00Z",
      "scriptType": "unmoderated",
      "status": "completed",
      "recordingState": "not_recorded",
      "dataUseBoundary": "Research notes and prototype events only; no identity, contact details, production account data, transcript, or recording is stored in this packet."
    },
    {
      "id": "session-04",
      "participantCode": "participant-04",
      "mode": "unmoderated",
      "criteriaIds": ["criterion-current-admin", "criterion-no-build-team"],
      "consentState": "recorded",
      "consentEvidenceRef": "evidence/consent/session-04.txt",
      "startedAt": "2026-08-01T13:00:00Z",
      "endedAt": "2026-08-01T13:19:00Z",
      "scriptType": "unmoderated",
      "status": "completed",
      "recordingState": "not_recorded",
      "dataUseBoundary": "Research notes and prototype events only; no identity, contact details, production account data, transcript, or recording is stored in this packet."
    }
  ],
  "observations": [
    {
      "id": "observation-01",
      "sessionId": "session-01",
      "taskId": "task-find-invoice",
      "kind": "outcome",
      "note": "Opened the requested fictional invoice after inspecting account history.",
      "occurredAt": "2026-08-01T09:05:00Z",
      "observerRole": "facilitator",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/notes/session-01-task-find-invoice.txt"]
    },
    {
      "id": "observation-02",
      "sessionId": "session-01",
      "taskId": "task-update-address",
      "kind": "behavior",
      "note": "Looked in profile settings, requested help, and then found the billing-address control.",
      "occurredAt": "2026-08-01T09:13:00Z",
      "observerRole": "facilitator",
      "assistance": "task_help",
      "taskOutcome": "partial",
      "evidenceRefs": ["evidence/notes/session-01-task-update-address.txt"]
    },
    {
      "id": "observation-03",
      "sessionId": "session-01",
      "taskId": "task-export-receipt",
      "kind": "statement",
      "note": "Exported the correct fictional receipt but paused to check whether the selected payment was current.",
      "occurredAt": "2026-08-01T09:20:00Z",
      "observerRole": "facilitator",
      "assistance": "neutral_prompt",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/notes/session-01-task-export-receipt.txt"]
    },
    {
      "id": "observation-04",
      "sessionId": "session-02",
      "taskId": "task-find-invoice",
      "kind": "behavior",
      "note": "Searched recent activity and did not locate the requested invoice within the task boundary.",
      "occurredAt": "2026-08-01T10:06:00Z",
      "observerRole": "facilitator",
      "assistance": "none",
      "taskOutcome": "failure",
      "evidenceRefs": ["evidence/notes/session-02-task-find-invoice.txt"]
    },
    {
      "id": "observation-05",
      "sessionId": "session-02",
      "taskId": "task-update-address",
      "kind": "outcome",
      "note": "Changed the fictional billing address without a prompt.",
      "occurredAt": "2026-08-01T10:12:00Z",
      "observerRole": "facilitator",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/notes/session-02-task-update-address.txt"]
    },
    {
      "id": "observation-06",
      "sessionId": "session-02",
      "taskId": "task-export-receipt",
      "kind": "outcome",
      "note": "Exported the correct fictional receipt without a prompt.",
      "occurredAt": "2026-08-01T10:18:00Z",
      "observerRole": "facilitator",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/notes/session-02-task-export-receipt.txt"]
    },
    {
      "id": "observation-07",
      "sessionId": "session-03",
      "taskId": "task-find-invoice",
      "kind": "outcome",
      "note": "Opened the requested fictional invoice from the account-history path.",
      "occurredAt": "2026-08-01T12:04:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/events/session-03-task-find-invoice.json"]
    },
    {
      "id": "observation-08",
      "sessionId": "session-03",
      "taskId": "task-update-address",
      "kind": "behavior",
      "note": "Visited profile and organization settings before ending the task without saving the address.",
      "occurredAt": "2026-08-01T12:11:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "failure",
      "evidenceRefs": ["evidence/events/session-03-task-update-address.json"]
    },
    {
      "id": "observation-09",
      "sessionId": "session-03",
      "taskId": "task-export-receipt",
      "kind": "outcome",
      "note": "Exported the correct fictional receipt and gave a post-task confidence rating.",
      "occurredAt": "2026-08-01T12:15:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/events/session-03-task-export-receipt.json"]
    },
    {
      "id": "observation-10",
      "sessionId": "session-04",
      "taskId": "task-find-invoice",
      "kind": "behavior",
      "note": "Located the invoice list but opened the wrong fictional service period before ending the task.",
      "occurredAt": "2026-08-01T13:06:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "partial",
      "evidenceRefs": ["evidence/events/session-04-task-find-invoice.json"]
    },
    {
      "id": "observation-11",
      "sessionId": "session-04",
      "taskId": "task-update-address",
      "kind": "outcome",
      "note": "Changed the fictional billing address without support.",
      "occurredAt": "2026-08-01T13:12:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/events/session-04-task-update-address.json"]
    },
    {
      "id": "observation-12",
      "sessionId": "session-04",
      "taskId": "task-export-receipt",
      "kind": "outcome",
      "note": "Exported the correct fictional receipt and gave a post-task confidence rating.",
      "occurredAt": "2026-08-01T13:17:00Z",
      "observerRole": "research-platform-log",
      "assistance": "none",
      "taskOutcome": "success",
      "evidenceRefs": ["evidence/events/session-04-task-export-receipt.json"]
    }
  ],
  "successMetrics": [
    {
      "id": "metric-invoice-completion",
      "taskId": "task-find-invoice",
      "name": "Unassisted invoice-task completion",
      "kind": "completion_rate",
      "unit": "ratio",
      "targetOperator": ">=",
      "targetValue": 0.75,
      "interpretationBoundary": "Participant-level 0, 0.5, or 1 coding in this fictional round; do not generalize the small sample to a population rate."
    },
    {
      "id": "metric-address-time",
      "taskId": "task-update-address",
      "name": "Billing-address task time",
      "kind": "time_on_task",
      "unit": "seconds",
      "targetOperator": "<=",
      "targetValue": 180,
      "interpretationBoundary": "Elapsed task time within this prototype and study setup; assisted or failed attempts remain visible rather than treated as comparable clean successes."
    },
    {
      "id": "metric-receipt-confidence",
      "taskId": "task-export-receipt",
      "name": "Post-task receipt confidence",
      "kind": "confidence_rating",
      "unit": "points",
      "targetOperator": ">=",
      "targetValue": 4,
      "interpretationBoundary": "Participant self-report on a local 1-to-5 item; this is not evidence-confidence or a statistical confidence interval."
    }
  ],
  "metricResults": [
    {
      "id": "result-invoice-01",
      "metricId": "metric-invoice-completion",
      "sessionId": "session-01",
      "value": 1,
      "evidenceRef": "evidence/metrics/result-invoice-01.json"
    },
    {
      "id": "result-invoice-02",
      "metricId": "metric-invoice-completion",
      "sessionId": "session-02",
      "value": 0,
      "evidenceRef": "evidence/metrics/result-invoice-02.json"
    },
    {
      "id": "result-invoice-03",
      "metricId": "metric-invoice-completion",
      "sessionId": "session-03",
      "value": 1,
      "evidenceRef": "evidence/metrics/result-invoice-03.json"
    },
    {
      "id": "result-invoice-04",
      "metricId": "metric-invoice-completion",
      "sessionId": "session-04",
      "value": 0.5,
      "evidenceRef": "evidence/metrics/result-invoice-04.json"
    },
    {
      "id": "result-address-01",
      "metricId": "metric-address-time",
      "sessionId": "session-01",
      "value": 292,
      "evidenceRef": "evidence/metrics/result-address-01.json"
    },
    {
      "id": "result-address-02",
      "metricId": "metric-address-time",
      "sessionId": "session-02",
      "value": 128,
      "evidenceRef": "evidence/metrics/result-address-02.json"
    },
    {
      "id": "result-address-03",
      "metricId": "metric-address-time",
      "sessionId": "session-03",
      "value": 301,
      "evidenceRef": "evidence/metrics/result-address-03.json"
    },
    {
      "id": "result-address-04",
      "metricId": "metric-address-time",
      "sessionId": "session-04",
      "value": 144,
      "evidenceRef": "evidence/metrics/result-address-04.json"
    },
    {
      "id": "result-receipt-01",
      "metricId": "metric-receipt-confidence",
      "sessionId": "session-01",
      "value": 3,
      "evidenceRef": "evidence/metrics/result-receipt-01.json"
    },
    {
      "id": "result-receipt-02",
      "metricId": "metric-receipt-confidence",
      "sessionId": "session-02",
      "value": 5,
      "evidenceRef": "evidence/metrics/result-receipt-02.json"
    },
    {
      "id": "result-receipt-03",
      "metricId": "metric-receipt-confidence",
      "sessionId": "session-03",
      "value": 4,
      "evidenceRef": "evidence/metrics/result-receipt-03.json"
    },
    {
      "id": "result-receipt-04",
      "metricId": "metric-receipt-confidence",
      "sessionId": "session-04",
      "value": 4,
      "evidenceRef": "evidence/metrics/result-receipt-04.json"
    }
  ],
  "findings": [
    {
      "id": "finding-invoice-period",
      "title": "Invoice discovery and period identification were inconsistent",
      "summary": "Two of four participants in this fictional round did not retrieve the requested service period without an incorrect or incomplete outcome.",
      "observationIds": ["observation-04", "observation-10"],
      "metricResultIds": ["result-invoice-02", "result-invoice-04"],
      "severity": "major",
      "confidence": "medium",
      "rationale": "The behavior appeared in both study modes and blocked the stated goal, but the small, purposefully selected fictional sample does not establish population prevalence."
    },
    {
      "id": "finding-address-location",
      "title": "Billing-address location competed with profile and organization expectations",
      "summary": "One participant needed task help and one unmoderated participant failed after exploring adjacent settings areas.",
      "observationIds": ["observation-02", "observation-08"],
      "metricResultIds": ["result-address-01", "result-address-03"],
      "severity": "major",
      "confidence": "medium",
      "rationale": "Independent paths produced related behavior and long task times, while the study cannot separate label, grouping, and prior-experience effects."
    },
    {
      "id": "finding-receipt-certainty",
      "title": "Receipt export succeeded but one participant remained uncertain",
      "summary": "All four participants initiated the correct fictional export, while one post-task confidence rating remained below the local target.",
      "observationIds": ["observation-03", "observation-06", "observation-09", "observation-12"],
      "metricResultIds": [
        "result-receipt-01",
        "result-receipt-02",
        "result-receipt-03",
        "result-receipt-04"
      ],
      "severity": "minor",
      "confidence": "medium",
      "rationale": "The outcome evidence is consistent in this round, but a single low self-report does not identify its cause or establish a broad satisfaction result."
    }
  ],
  "recommendations": [
    {
      "id": "recommendation-invoice-period",
      "findingIds": ["finding-invoice-period"],
      "action": "Prototype a clearer invoice-period cue and rerun the same retrieval task against a new version.",
      "ownerId": "owner-product",
      "status": "accepted",
      "decisionBoundary": "Accepted for the next fictional prototype iteration only; not release approval or proof that the change resolves the finding."
    },
    {
      "id": "recommendation-address-entry",
      "findingIds": ["finding-address-location"],
      "action": "Test one revised entry point that connects account billing and address expectations without adding duplicate sources of truth.",
      "ownerId": "owner-product",
      "status": "accepted",
      "decisionBoundary": "Accepted as a testable design change; implementation and verification remain separate records."
    },
    {
      "id": "recommendation-receipt-context",
      "findingIds": ["finding-receipt-certainty"],
      "action": "Explore whether payment-period context improves certainty before changing the successful export flow.",
      "ownerId": "owner-product",
      "status": "proposed",
      "decisionBoundary": "Proposed for further exploration; no implementation commitment or outcome claim."
    }
  ],
  "decision": {
    "id": "decision-prototype-v8",
    "status": "accepted_for_iteration",
    "ownerId": "owner-product",
    "decidedAt": "2026-08-01T15:00:00Z",
    "recommendationIds": ["recommendation-invoice-period", "recommendation-address-entry"],
    "rationale": "The product decision owner accepted two bounded prototype changes and left the receipt-context proposal open for exploration.",
    "limitations": [
      "Four purposefully selected fictional sessions do not establish population prevalence or statistical significance.",
      "The prototype and study environment may differ from a production service.",
      "The study does not provide UAT sign-off, technical QA evidence, WCAG conformance, legal review, or launch authority."
    ]
  }
}
