{
  "name": "BaZi Report Disclosure Rubric",
  "description": "A six-criterion, 12-point disclosure rubric for comparing BaZi report offers before paying. It measures comparability, not predictive accuracy.",
  "schema": "xiaobazi.bazi_report_disclosure_rubric.v1",
  "version": "2026-08-12.1",
  "canonical": "https://xiaobazi.com/en/bazi-report-buying-guide/",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "language": "en",
  "score_range": {
    "minimum": 0,
    "maximum": 12
  },
  "records": [
    {
      "id": "calculation_rules",
      "label": "Calculation rules",
      "question": "Are calendar type, time zone, solar-term boundary and late Zi-hour convention disclosed?",
      "scoring": {
        "0": "No calculation convention is disclosed.",
        "1": "Some inputs are named, but at least one boundary rule is missing.",
        "2": "Calendar, time zone and relevant boundary conventions are stated before purchase."
      },
      "evidence_to_save": [
        "input instructions",
        "calculation convention page"
      ]
    },
    {
      "id": "uncertainty_handling",
      "label": "Uncertainty handling",
      "question": "Does the report explain unknown birth hour and conflicting-boundary handling?",
      "scoring": {
        "0": "Unknown values are silently guessed or ignored.",
        "1": "Uncertainty is mentioned without saying which claims depend on it.",
        "2": "Unknown values stay marked unknown and affected claims are identified."
      },
      "evidence_to_save": [
        "unknown-hour policy",
        "boundary exception note"
      ]
    },
    {
      "id": "deliverable_scope",
      "label": "Deliverable scope",
      "question": "Are topics, format, human-review status and exclusions stated?",
      "scoring": {
        "0": "The deliverable is described only with broad promises.",
        "1": "Format or topics are named, but important exclusions remain unclear.",
        "2": "Topics, format, review status and exclusions are all stated."
      },
      "evidence_to_save": [
        "scope page",
        "sample contents",
        "exclusions"
      ]
    },
    {
      "id": "delivery_and_refund",
      "label": "Delivery and refund",
      "question": "Are delivery window, support route and failure/refund conditions stated?",
      "scoring": {
        "0": "No delivery or refund boundary is available.",
        "1": "A delivery estimate exists, but failure or refund handling is incomplete.",
        "2": "Delivery, support and applicable refund or failure conditions are stated."
      },
      "evidence_to_save": [
        "delivery terms",
        "refund terms",
        "support channel"
      ]
    },
    {
      "id": "privacy_and_data",
      "label": "Privacy and data",
      "question": "Is the birth-data submission and retention path explained?",
      "scoring": {
        "0": "Sensitive birth details are requested without a private path or data explanation.",
        "1": "A private path exists, but retention or deletion handling is unclear.",
        "2": "Submission, access, retention and deletion boundaries are explained."
      },
      "evidence_to_save": [
        "privacy notice",
        "submission route",
        "deletion route"
      ]
    },
    {
      "id": "claims_and_boundaries",
      "label": "Claims and boundaries",
      "question": "Does the offer avoid guaranteed outcomes and professional-domain substitution?",
      "scoring": {
        "0": "The offer guarantees outcomes or replaces medical, legal or financial evidence.",
        "1": "A disclaimer exists, but prominent sales claims still overstate certainty.",
        "2": "Claims, limitations and professional-domain boundaries are consistent."
      },
      "evidence_to_save": [
        "sales claims",
        "limitations",
        "professional-domain disclaimer"
      ]
    }
  ],
  "decision_bands": [
    {
      "minimum": 10,
      "maximum": 12,
      "label": "comparable",
      "action": "The offer is sufficiently disclosed for a side-by-side comparison; this is not proof of accuracy."
    },
    {
      "minimum": 6,
      "maximum": 9,
      "label": "incomplete",
      "action": "Ask for the missing evidence before paying."
    },
    {
      "minimum": 0,
      "maximum": 5,
      "label": "not_comparable",
      "action": "The offer does not disclose enough information for a meaningful comparison."
    }
  ],
  "red_flag_override": [
    "guaranteed medical, legal, investment, relationship or career outcome",
    "fear-based pressure to buy a remedy",
    "public request for complete birth details without a privacy boundary",
    "hidden renewal or charges"
  ],
  "worked_examples": [
    {
      "id": "hypothetical_provider_a",
      "synthetic": true,
      "scores": {
        "calculation_rules": 2,
        "uncertainty_handling": 1,
        "deliverable_scope": 2,
        "delivery_and_refund": 2,
        "privacy_and_data": 1,
        "claims_and_boundaries": 2
      },
      "total": 10,
      "result": "comparable_with_two_follow_up_questions"
    },
    {
      "id": "hypothetical_provider_b",
      "synthetic": true,
      "scores": {
        "calculation_rules": 0,
        "uncertainty_handling": 0,
        "deliverable_scope": 1,
        "delivery_and_refund": 0,
        "privacy_and_data": 0,
        "claims_and_boundaries": 0
      },
      "total": 1,
      "result": "not_comparable"
    }
  ],
  "provenance": {
    "generator": "scripts/seo/build-bazi-report-rubric.mjs",
    "generated_without_vendor_ranking": true,
    "generated_without_user_records": true,
    "scoring_purpose": "disclosure completeness only"
  },
  "citation": {
    "preferredUrl": "https://xiaobazi.com/en/bazi-report-buying-guide/#disclosure-score",
    "suggestedTitle": "BaZi Report Disclosure Rubric"
  }
}
