{
  "protocol_id": "protocol_luma_time_reduction_v0_3",
  "protocol_version": "v0.3",
  "methodology_version": "v0.3",
  "claim_text": "Cuts styling time by at least 40% for thick, shoulder-length or longer hair.",
  "claim_type": "time_reduction",
  "estimator_id": "cohort_median_percentage_reduction",
  "estimator_family": "cohort_median_reduction",
  "comparator": "Participant baseline styling time before use",
  "primary_endpoint": "Day 30",
  "success_threshold": "Reduction between cohort medians is at least 40%.",
  "threshold_source": "Original public Claim Card wording.",
  "threshold_rationale": "Defines the measurable minimum implied by the stated claim before outcomes are observed.",
  "threshold_locked_at": "2026-07-20T12:00:00.000Z",
  "threshold_locked_at_provenance": "Repository revision evidence: the v0.3 threshold-governance source recorded this timestamp before the v0.4 calculated revision.",
  "eligibility_rules": [
    "Uses the tool three or more times weekly.",
    "Records baseline and Day-30 timings.",
    "Completes the Day-30 endpoint."
  ],
  "exclusion_rules": [
    "Missing baseline or endpoint timing.",
    "Implausible timing after validation.",
    "Duplicate decision.",
    "Non-comparable routine."
  ],
  "verification_requirement": "Purchase verified at the primary endpoint.",
  "missing_data_rule": "Missing paired timing is excluded from the primary analysed cohort and reported separately; no imputation.",
  "manipulation_review_rule": "Duplicate and implausible-record review must pass before primary analysis.",
  "uncertainty_method": "Paired participant-level percentile bootstrap 95% interval.",
  "resampling_unit": "Participant pair",
  "resample_count": 10000,
  "response_definitions": {
    "claim_assessment": [
      "held_up",
      "partly_held_up",
      "did_not_hold_up",
      "unable_to_assess",
      "no_response"
    ],
    "lifecycle": [
      "still_using",
      "stopped_using",
      "returned",
      "cancelled",
      "resold",
      "replaced"
    ]
  },
  "lifecycle_definitions": "Lifecycle status is a separate endpoint response and does not redefine claim success.",
  "evidence_strength_rules": {
    "insufficient": "Any protocol requirement missing, manipulation review not passed, or qualifying cohort below 25.",
    "emerging": "At least 25 qualifying records; ≥60% endpoint purchase verification; ≥40% endpoint completion; required method fields present; manipulation review passed.",
    "established": "At least 100 qualifying records; ≥70% endpoint purchase verification; ≥55% endpoint completion; valid primary measurement and manipulation review passed.",
    "strong": "At least 500 qualifying records; ≥80% endpoint purchase verification; ≥65% endpoint completion; valid primary measurement, manipulation review passed, and replication."
  },
  "canonical_protocol_semantic_hash": "318175c419ccd08e68c68e944ae760508d2d4b7b33c32a6acd2b4804134999a1"
}
