{
  "schema": "grandet-public-quality-method-v1",
  "methodVersion": "grandet-endpoint-measurement-v1-proposal",
  "checkedAt": "2026-10-02",
  "status": "DEFINED_NOT_MEASURED",
  "implementationStatus": "MEASUREMENT_PIPELINE_NOT_IMPLEMENTED_FOR_PUBLIC_DIRECTORY",
  "title": {
    "zh": "模型能力、服务实测与文档披露分别评价",
    "en": "Separate model capability, endpoint measurements and documentation"
  },
  "notice": {
    "zh": "当前历史目录尚无端点质量实测分；所有未测值均为空，不能由模型名称、原厂基准或价格推算。本文件公开拟采用的测量与发布规则，不表示测试已经执行。",
    "en": "The historical directory has no measured endpoint-quality scores. Unmeasured values remain null and cannot be inferred from model names, original-creator benchmarks or prices. This document defines proposed measurement and publication rules; it does not report executed tests."
  },
  "currentState": {
    "liveInferenceExecuted": false,
    "qualityMeasuredClaims": 0,
    "score": null,
    "grade": null,
    "measurements": null,
    "documentationScore": null,
    "documentationScoreMeaning": "Not assessed for this public directory, not zero"
  },
  "separation": [
    {
      "id": "MODEL_CAPABILITY",
      "label": {
        "zh": "模型能力",
        "en": "Model capability"
      },
      "scope": {
        "zh": "基准必须绑定实际受测模型版本、参数和端点；不能转移到所有同名中转站。",
        "en": "Benchmarks are bound to the tested version, parameters and endpoint; they do not transfer to every relay using the same name."
      }
    },
    {
      "id": "ENDPOINT_SERVICE",
      "label": {
        "zh": "端点交付质量",
        "en": "Endpoint service quality"
      },
      "scope": {
        "zh": "绑定具体站点、模型声明、套餐、地区、负载和观察窗口。",
        "en": "Bound to the host, model claim, plan, region, workload and observation window."
      }
    },
    {
      "id": "DOCUMENT_DISCLOSURE",
      "label": {
        "zh": "文档披露",
        "en": "Documentation disclosure"
      },
      "scope": {
        "zh": "衡量公开条款透明度；不能证明实际稳定性、模型真实性或速度。",
        "en": "Evaluates disclosure transparency; it does not establish uptime, model authenticity or speed."
      }
    },
    {
      "id": "PRICE_QUALIFICATION",
      "label": {
        "zh": "价格资格",
        "en": "Price qualification"
      },
      "scope": {
        "zh": "现金兑换、强制费用、账户条件和时效分别核验，不进入质量分。",
        "en": "Cash conversion, mandatory fees, account conditions and freshness are checked separately and do not enter quality scores."
      }
    }
  ],
  "scopeKey": [
    "retailOperatorIdOrUnknown",
    "host",
    "endpointId",
    "rawModelName",
    "canonicalModelIdOrUnknown",
    "plan",
    "protocol",
    "region",
    "workloadId",
    "parametersHash",
    "window"
  ],
  "policyOrigin": {
    "zh": "权重沿用 Grandet 已有 provider-quality-v1；样本门槛、公式和时间窗为 Grandet 产品政策提案，不是行业标准。",
    "en": "Weights follow Grandet provider-quality-v1; sample gates, formulas and windows are proposed Grandet product policy, not an industry standard."
  },
  "commonGates": {
    "sameScopeRequired": true,
    "rawObservationEvidenceRequired": true,
    "methodAndParametersVersionRequired": true,
    "numericScoreOnlyIfAllSixDimensionsAvailable": true,
    "unknownBecomesZero": false,
    "rescaleKnownWeights": false,
    "minimumIndependentEvidenceSources": 3,
    "grandetOfficialEvidenceAlternative": true,
    "evidenceSourceGateDoesNotReplaceSampleGates": true,
    "proposedWindowDays": 7,
    "proposedObservationExpiryDays": 7,
    "recalculationRefreshesObservationTime": false,
    "sourceConfidenceIsStatisticalConfidence": false,
    "missingWorkloadThresholdsBlockScore": true
  },
  "measurementRules": {
    "eligibleAttempt": "A request conforms to the declared protocol, capability, account and known limits and was not deliberately cancelled by the user; excluded counts and reasons remain visible.",
    "success": "The request returns a complete, protocol-valid response before its predeclared timeout; success does not imply a correct task answer.",
    "failure": "Timeouts, incomplete streams, malformed output and errors count as failures. Rate errors inside declared capacity count as failures. Fallback success does not erase a previous endpoint failure.",
    "retry": "Each attempt is recorded separately; first-attempt performance and end-to-end experience remain distinct.",
    "firstToken": "The first nonempty model-generated output event; empty SSE events and heartbeats are excluded.",
    "firstAnswerToken": "The first nonempty answer event after any visible reasoning; reported separately from first model token.",
    "tokenComparability": "Generation speed uses an identified native tokenizer within the same model; visible answer tokens and hidden reasoning tokens remain separate. Cross-model comparisons use separately declared normalized-token or fixed-task measures.",
    "percentileConvention": "Nearest-rank quantile: sorted sample at index max(1,ceil(p*n)), one-based. Publish n and percentile definition.",
    "wilson95Lower": "For n>0, p=k/n, z=1.959963984540054: (p+z*z/(2*n)-z*sqrt(p*(1-p)/n+z*z/(4*n*n)))/(1+z*z/n).",
    "workloadThresholdRegistry": "TTFT good/bad seconds, generation good/bad tokens_per_second, timeouts, load tiers, input/output lengths, cache behavior and reasoning budget must be versioned and fixed before testing. No default threshold is silently supplied."
  },
  "dimensions": [
    {
      "id": "RELIABILITY",
      "weight": 35,
      "score": null,
      "label": {
        "zh": "成功交付",
        "en": "Reliable delivery"
      },
      "definition": {
        "zh": "合格尝试中完整、协议正确且未超时的响应比例，同时报告样本量和 95% Wilson 区间；不是全年可用率。",
        "en": "Complete protocol-valid responses within the timeout divided by eligible attempts, with sample size and a 95% Wilson interval; not annual uptime."
      },
      "formula": "100 * wilson95Lower(valid_completed, eligible_attempts)",
      "minimumSamples": {
        "eligibleAttempts": 100,
        "calendarDays": 7,
        "timeBinsPerDay": 3
      },
      "gate": {
        "zh": "未达到样本和时间覆盖门槛时只显示原始数据，维度分为空。",
        "en": "Below sample or temporal-coverage gates, publish raw measurements only and leave the dimension score null."
      }
    },
    {
      "id": "BILLING_TRUTH",
      "weight": 20,
      "score": null,
      "label": {
        "zh": "账单一致",
        "en": "Billing consistency"
      },
      "definition": {
        "zh": "按实际输入、输出、缓存、推理和附加费用复算期望扣费，与真实账单对照；没有账单不能出分。",
        "en": "Recompute expected charges from actual input, output, cache, reasoning and mandatory fees, then compare with actual billing. No bill means no score."
      },
      "formula": "100 * within_tolerance_bills / eligible_reconciled_bills",
      "tolerance": "max(predeclared_bill_rounding_unit, abs(expected_charge) * 0.01)",
      "minimumSamples": {
        "independentReconciledBills": 30,
        "allApplicableBillingTypesCovered": true
      },
      "gate": {
        "zh": "必须覆盖适用计费类型，零价不得伪造相对误差分母。",
        "en": "Applicable billing types must be covered; zero expected charges must not create a relative-error denominator."
      }
    },
    {
      "id": "CAPACITY_RATE_BEHAVIOR",
      "weight": 15,
      "score": null,
      "label": {
        "zh": "容量与限流",
        "en": "Capacity and rate behavior"
      },
      "definition": {
        "zh": "在预先登记的负载档内，成功且满足响应目标的请求比例。未公开服务限额时只称本次测试负载。",
        "en": "Successful requests meeting the response objective under preregistered load tiers. Without published service limits this describes only the tested load."
      },
      "formula": "100 * load_test_requests_meeting_registered_SLO / eligible_load_test_requests",
      "minimumSamples": {
        "preregisteredLoadTiers": 3,
        "attemptsPerTier": 30
      },
      "gate": {
        "zh": "负载档、各档样本分配、响应目标须测试前固定；不得只选择最快档。",
        "en": "Load tiers, per-tier allocation and response objectives must be fixed before testing; selecting only the fastest tier is prohibited."
      }
    },
    {
      "id": "TTFT",
      "weight": 10,
      "score": null,
      "label": {
        "zh": "首 Token 延迟",
        "en": "Time to first token"
      },
      "definition": {
        "zh": "请求发送至第一个非空模型事件的时差；同时单列首答案延迟。",
        "en": "Elapsed time from request send to the first nonempty model event; first-answer latency is reported separately."
      },
      "formula": "100 * clamp((T_bad - p95_TTFT_seconds) / (T_bad - T_good), 0, 1)",
      "requiredWorkloadThresholds": {
        "T_good_seconds": null,
        "T_bad_seconds": null,
        "constraint": "0 <= T_good < T_bad; fixed in versioned workload before measurement"
      },
      "minimumSamples": {
        "successfulRequests": 100,
        "reliabilitySamplingGateMustPass": true
      },
      "gate": {
        "zh": "缺工作负载阈值、样本或可靠性覆盖即为空；不同负载和地区不得混排。",
        "en": "Missing workload thresholds, samples or reliability coverage leave the score null; workloads and regions must not be pooled."
      }
    },
    {
      "id": "GENERATION_SPEED",
      "weight": 10,
      "score": null,
      "label": {
        "zh": "生成速度",
        "en": "Generation speed"
      },
      "definition": {
        "zh": "每请求首 Token 之后的原生可见输出 Token/s，报告 P50、P10 和完整耗时；隐藏推理不混入可见速度。",
        "en": "Per-request native visible output tokens/s after the first token, with P50, P10 and full duration; hidden reasoning is not mixed into visible speed."
      },
      "rawFormula": "(visible_native_output_tokens - 1) / (last_output_time - first_output_time), only if visible_native_output_tokens >= 2 and duration > 0",
      "formula": "100 * clamp((p10_visible_tokens_per_second - S_bad) / (S_good - S_bad), 0, 1)",
      "requiredWorkloadThresholds": {
        "S_good_tokens_per_second": null,
        "S_bad_tokens_per_second": null,
        "constraint": "0 <= S_bad < S_good; fixed in versioned workload before measurement"
      },
      "minimumSamples": {
        "successfulRequests": 100,
        "reliabilitySamplingGateMustPass": true,
        "fixedOutputLengthBin": true
      },
      "gate": {
        "zh": "Tokenizer、输出长度档与配置必须一致；不能以并发总吞吐代替单请求速度。",
        "en": "Tokenizer, output-length bin and configuration must match; aggregate concurrent throughput cannot substitute for single-request speed."
      }
    },
    {
      "id": "EVIDENCE_BREADTH_FRESHNESS",
      "weight": 10,
      "score": null,
      "label": {
        "zh": "证据覆盖与时效",
        "en": "Evidence breadth and freshness"
      },
      "definition": {
        "zh": "原始证据、固定方法、计划覆盖、有效时窗和独立复测各 20 分；衡量证据而非端点表现。",
        "en": "Raw evidence, fixed methods, planned coverage, valid window and independent replication earn 20 points each; this evaluates evidence, not endpoint behavior."
      },
      "formula": "20 * verified_pass_check_count, only when all five checks have been completed",
      "checks": [
        "RAW_EVIDENCE_LOCATABLE",
        "METHOD_PARAMETERS_VERSIONED",
        "PREREGISTERED_PLAN_COVERED",
        "OBSERVATION_WINDOW_VALID",
        "INDEPENDENT_REPLICATION_COMPLETE"
      ],
      "minimumSamples": {
        "completedChecks": 5
      },
      "gate": {
        "zh": "已查失败为零；尚未核查为空。任一未知时维度分为空。",
        "en": "A checked failure earns zero; an unchecked item remains unknown. Any unknown check leaves this dimension null."
      }
    }
  ],
  "aggregation": {
    "formula": "sum(weight_i * dimension_score_i) / 100",
    "weightTotal": 100,
    "minimumWeightedCoverage": 100,
    "preserveUnroundedValue": true,
    "grades": {
      "A": 90,
      "B": 80,
      "C": 70,
      "D": 60,
      "E": 50,
      "F": 0
    },
    "confirmedIdentityFraudCapFromExistingMethod": 20,
    "capDoesNotDetectIdentityFraud": true,
    "publicationWhenIncomplete": "NOT_SCORED_WITH_EXPLICIT_WEIGHTED_COVERAGE",
    "priceAffectsScore": false,
    "creatorBenchmarkAffectsEndpointScore": false,
    "identityNameMatchAffectsScore": false
  },
  "documentationMethod": {
    "methodVersion": "document-score-v1.0.0",
    "checkCount": 20,
    "weightPerCheck": 5,
    "outcomePoints": {
      "MET": 5,
      "PARTIAL": 2.5,
      "NOT_MET": 0,
      "NOT_DISCLOSED": 0,
      "NOT_CHECKED": null,
      "CONFLICT": null
    },
    "minimumCoveragePercent": 50.0,
    "criticalChecks": [
      "P01",
      "F01",
      "T02"
    ],
    "intervalMeaning": "Possible score range from unresolved check weights, not a statistical confidence interval",
    "filterUsesLowerBound": true,
    "currentPublicScore": null,
    "checks": [
      {
        "id": "P01",
        "label": {
          "zh": "明确模型及输入输出计费单位",
          "en": "Model and input/output billing units"
        },
        "category": "计费披露",
        "met": "模型及双向单位均明确",
        "partial": "仅模型或计费单位明确",
        "critical": true,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "The model and both input and output billing units are explicit.",
        "partial_en": "Only the model or the billing unit is explicit."
      },
      {
        "id": "P02",
        "label": {
          "zh": "现金币种与额度兑换关系",
          "en": "Cash currency and credit conversion"
        },
        "category": "计费披露",
        "met": "现金币种明确，积分另有可核验兑换规则或明确为现金",
        "partial": "仅币种标签明确，现金/积分兑换不明",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "The cash currency is explicit, with verifiable conversion rules for credits or an explicit statement that the amount is cash.",
        "partial_en": "Only the currency label is explicit; the cash-to-credit relationship is unclear."
      },
      {
        "id": "P03",
        "label": {
          "zh": "强制附加费用与计费条件",
          "en": "Mandatory charges and billing conditions"
        },
        "category": "计费披露",
        "met": "明确所有强制费用或明确无附加费，且适用条件清楚",
        "partial": "只披露部分费用或条件",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "All mandatory charges are explicit, or no additional charges are explicitly stated, and the applicable conditions are clear.",
        "partial_en": "Only some charges or conditions are disclosed."
      },
      {
        "id": "P04",
        "label": {
          "zh": "最低充值与付款条件",
          "en": "Minimum deposit and payment conditions"
        },
        "category": "计费披露",
        "met": "明确最低充值（含无最低）及付款条件",
        "partial": "只披露其中一项",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "The minimum top-up, including an explicit absence of a minimum, and payment conditions are stated.",
        "partial_en": "Only one of these is stated."
      },
      {
        "id": "P05",
        "label": {
          "zh": "报价适用范围与版本",
          "en": "Quote scope and version"
        },
        "category": "计费披露",
        "met": "模型/套餐适用范围及价格更新或有效期规则均明确",
        "partial": "只明确适用范围",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "The applicable models/plans and price-update or validity rules are both explicit.",
        "partial_en": "Only the applicability scope is explicit."
      },
      {
        "id": "I01",
        "label": {
          "zh": "运营主体可识别",
          "en": "Identifiable legal operator"
        },
        "category": "主体责任",
        "met": "具名法律主体且有可交叉核验注册标识或登记证据",
        "partial": "只有品牌或未交叉核实的法律名称",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "A legal operator is named and has a registration identifier or registration evidence that can be cross-checked.",
        "partial_en": "Only a brand or a legal name without cross-verification is available."
      },
      {
        "id": "I02",
        "label": {
          "zh": "可用责任联系渠道",
          "en": "Service and complaint contacts"
        },
        "category": "主体责任",
        "met": "明确服务联系渠道及责任/投诉渠道",
        "partial": "只有一般联系渠道",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Service contacts and a responsibility or complaints channel are explicit.",
        "partial_en": "Only a general contact channel is available."
      },
      {
        "id": "I03",
        "label": {
          "zh": "法律责任和管辖披露",
          "en": "Responsibility and jurisdiction disclosure"
        },
        "category": "主体责任",
        "met": "责任主体及适用法律/争议管辖均具名",
        "partial": "只明确其中一项",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "The responsible entity and applicable law or dispute jurisdiction are both named.",
        "partial_en": "Only one of these is explicit."
      },
      {
        "id": "T01",
        "label": {
          "zh": "服务条款覆盖关键事项",
          "en": "Key service terms"
        },
        "category": "条款数据披露",
        "met": "可定位条款包含服务、付款、停用和责任范围",
        "partial": "只有部分条款",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Locatable terms cover service, payment, suspension and the scope of responsibility.",
        "partial_en": "Only some of these terms are covered."
      },
      {
        "id": "T02",
        "label": {
          "zh": "数据政策披露完整",
          "en": "Complete data policy disclosure"
        },
        "category": "条款数据披露",
        "met": "数据类型、用途、留存及上游共享均有明确说明",
        "partial": "只有部分说明",
        "critical": true,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Data types, purposes, retention and upstream sharing are all explained explicitly.",
        "partial_en": "Only some of these matters are explained."
      },
      {
        "id": "C01",
        "label": {
          "zh": "跨页面关键声明一致",
          "en": "Cross-page consistency"
        },
        "category": "一致与可追溯",
        "met": "已比较价格页与条款等至少两处关键页面且未发现影响条件的冲突",
        "partial": "只完成有限部分交叉检查",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "At least two key pages, such as pricing and terms, have been compared with no conflict affecting applicable conditions found.",
        "partial_en": "Only a limited portion of the cross-check has been completed."
      },
      {
        "id": "C02",
        "label": {
          "zh": "条款修订可追溯",
          "en": "Traceable terms revisions"
        },
        "category": "一致与可追溯",
        "met": "有日期/版本及可核查变更或历史记录",
        "partial": "有日期/版本但无变更记录",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "A date or version and verifiable changes or historical records are available.",
        "partial_en": "A date or version exists, but no change history is available."
      },
      {
        "id": "F01",
        "label": {
          "zh": "未用余额退款保障",
          "en": "Unused-balance refund protection"
        },
        "category": "余额退款停用",
        "met": "明确允许正常情形退还未用余额且流程及扣费条件清楚",
        "partial": "仅有限例外退款或流程不完整",
        "critical": true,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Refunds of unused balances are explicitly allowed in ordinary circumstances, with a clear process and deduction conditions.",
        "partial_en": "Refunds are limited to narrow exceptions, or the process is incomplete."
      },
      {
        "id": "F02",
        "label": {
          "zh": "余额失效与扣除约束",
          "en": "Balance expiry and deduction limits"
        },
        "category": "余额退款停用",
        "met": "明确不失效或有事先披露的固定期限且无任意没收",
        "partial": "有期限/扣除规则但保护不完整",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "No expiry is explicit, or a fixed expiry was disclosed in advance, with no arbitrary forfeiture.",
        "partial_en": "Expiry or deduction rules exist, but protection is incomplete."
      },
      {
        "id": "F03",
        "label": {
          "zh": "账户停用余额处理",
          "en": "Balance handling after suspension"
        },
        "category": "余额退款停用",
        "met": "有通知/申诉流程及未用余额处理保障",
        "partial": "只明确其中一项",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Notice or appeal procedures and protection for handling unused balances are available.",
        "partial_en": "Only one of these is explicit."
      },
      {
        "id": "D01",
        "label": {
          "zh": "请求内容处理范围限制",
          "en": "Request-content purpose limits"
        },
        "category": "数据保障",
        "met": "明确内容用途限定及不作额外训练/出售",
        "partial": "只对部分用途作限制",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Content purposes are explicitly limited, and additional training or sale is prohibited.",
        "partial_en": "Only some uses are restricted."
      },
      {
        "id": "D02",
        "label": {
          "zh": "留存与删除约束",
          "en": "Retention and deletion limits"
        },
        "category": "数据保障",
        "met": "明确内容留存上限/不留存及删除机制和例外",
        "partial": "仅一般期限原则或只有删除渠道",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "A maximum content-retention period or no retention is explicit, together with deletion mechanisms and exceptions.",
        "partial_en": "Only general retention principles or a deletion channel are provided."
      },
      {
        "id": "D03",
        "label": {
          "zh": "上游处理边界",
          "en": "Upstream processing boundaries"
        },
        "category": "数据保障",
        "met": "明确上游参与及适用政策/处理限制",
        "partial": "仅笼统说明第三方参与",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Upstream participation and the applicable policies or processing limits are explicit.",
        "partial_en": "Only a general statement about third-party participation is available."
      },
      {
        "id": "V01",
        "label": {
          "zh": "价格和重大条款变更保障",
          "en": "Price and material-terms change protection"
        },
        "category": "变更与争议",
        "met": "明确提前通知且不追溯更改已付权益",
        "partial": "只有公告/通知机制",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "Advance notice is explicit, and paid entitlements cannot be changed retroactively.",
        "partial_en": "Only an announcement or notification mechanism is provided."
      },
      {
        "id": "V02",
        "label": {
          "zh": "投诉申诉程序",
          "en": "Complaint and appeal process"
        },
        "category": "变更与争议",
        "met": "明确申诉渠道及处理步骤/时限",
        "partial": "只有渠道",
        "critical": false,
        "weight_bps": 500,
        "weightPoints": 5.0,
        "notMet": "明确相反条款，且保留可定位原文证据。",
        "notDisclosed": "完整检查全部相关文档后没有披露；必须保存引用与 COMPLETE_RELEVANT_DOCUMENTS 依据。",
        "notChecked": "无法完成核查；保持未知。",
        "conflict": "相互冲突的证据尚未裁定；保持未知。",
        "met_en": "An appeal channel and handling steps or time limits are explicit.",
        "partial_en": "Only a channel is provided."
      }
    ],
    "rulesSha256": "6a7ed66d63eecdf93b03f628f90b8d10e08086b6ca65d183d490858bcb8d6ed5",
    "sourceRulesFileSha256": "6bd191729dea7b25c8ea105888fecc834ce175e830b63234812521be93f5c7a8",
    "notDisclosedRequires": "Complete relevant documents examined; full-source reference and absence_basis required",
    "sourceBoundary": "Provider statements score documented conditions only; never runtime truth",
    "scoreFormula": "L = sum checked MET/PARTIAL points; U = sum NOT_CHECKED/CONFLICT weights; report [L,L+U] only when publication gates pass.",
    "criticalUnknownBlocksScore": true,
    "expiryBlocksScore": true,
    "noArbitraryNotApplicable": true,
    "evidenceRequirements": [
      "Each check scope_id must equal the assessment scope_id.",
      "Every rule must occur exactly once; fixed total weight is 100.",
      "Checked outcomes require evidence IDs registered with URL, retrieved_at, source kind, SHA256, locator and excerpt.",
      "NOT_CHECKED cannot claim checked evidence.",
      "Derived analysis alone cannot independently support checked outcomes.",
      "Evidence observation cannot postdate the assessment.",
      "Machine byte/pointer verification proves locatability, not semantic correctness.",
      "The existing source method requires separate semantic/context review.",
      "Recalculation cannot refresh the source observation time.",
      "A MET conclusion must satisfy every conjunct in the met criterion.",
      "No arbitrary N/A outcome may shrink the denominator."
    ]
  },
  "sources": [
    {
      "title": "Artificial Analysis API performance methodology",
      "url": "https://artificialanalysis.ai/methodology/performance-benchmarking",
      "supports": "TTFT, first-answer token, speed, workload, region and tokenizer distinctions"
    },
    {
      "title": "OpenRouter provider routing",
      "url": "https://openrouter.ai/docs/guides/routing/provider-selection",
      "supports": "Model versus endpoint, price/latency/throughput as separate fields and routing variants"
    },
    {
      "title": "Artificial Analysis AgentPerf methodology",
      "url": "https://artificialanalysis.ai/methodology/agentperf",
      "supports": "Per-request speed versus aggregate system throughput"
    }
  ]
}
