コンテンツにスキップ

Pricing, package, and existing-customer migration pack

最終確認: 2026-08-03
用途: 一つの current offer と既存顧客 cohort について、価格、package、entitlement、契約、channel、notice / consent、billing、cash、renewal を分離し、KEEP_CURRENT / NEW_CUSTOMERS_ONLY / VOLUNTARY_UPGRADE / TIME_BOUND_GRANDFATHER / APPLY_AT_RENEWAL / PACKAGE_REDESIGN / SUNSET_WITH_CLOSEOUT のどれを選ぶかを、成熟後の完全負荷後 contribution と顧客保護を同じ判断契約で運用する

この pack は一般的な product、pricing、billing、計測、運用、証拠管理の教材・判断補助・引継ぎ書式であり、法律、契約、消費者保護、税務、会計、App Store / Google Play policy、card-scheme rule その他の個別助言ではない。seller、entity、customer、contract、channel、storefront / region、currency、商品、時点ごとに current な一次情報と、必要な専門家へ確認する。

このファイルを埋めても live billing の実行権限にはならない。 Codex や自動処理に、production の Price 作成・変更・archive、subscription 更新、legacy cohort migration、App Store Connect / Play Console 操作、customer notice 送信、同意推測、invoice 確定、charge、cancel、refund、entitlement 変更を自律実行させない。live action は exact customer / cohort、old / new state、amount、currency、effective time、idempotency、rollback / remediation を限定した人の承認を別に必要とする。

BOUNDED_MIGRATE / EXPAND_MIGRATION の next_cohort_n は NEXT_CONTRACT_PROPOSAL_ONLY とする。current frozen cohort への追加実行権限ではなく、新しい contract version、cohort、provider policy、path、cap、maturity chain と人の承認を起票する上限付き提案である。

書式 1〜14 は空欄コピー用である。末尾の記入例は、架空 product、架空 account、架空 Price ID、任意に選んだ数値だけからなる fully synthetic TEST fixture であり、実績、benchmark、推奨価格、許容 churn、通知期間、法的結論、provider の実 API response ではない。例の金額・率・日数・decision を実サービスへ移植しない。

氏名、email、電話、住所、raw IP、cookie、device fingerprint、card / bank data、契約全文、invoice 原本、customer support 全文、App Store receipt、Play purchase token、Stripe / Paddle payload 全文、password、API key、OAuth token、session、private key、webhook secret を、この公開書式や生成 AI prompt へ貼らない。実運用では opaque ID、redacted summary、必要最小限の集約、hash、権限制御された正本 reference を使う。

  • 23 章: value / offer、package、existing-customer migration、notice / consent、billing release、mature contribution の判断原則。
  • 02 章: value metric、pricing model、P&L、cash flow、unit economics の基礎。
  • 03 章: transparent pricing、reference transaction、choice architecture、cancel / refund UX。
  • 06 章: 日本の通信販売、契約、privacy、security、法務確認の共通入口。
  • 10 章: PSP、store、MoR、platform fee、channel economics。
  • 11 章: B2B agreement、quote、invoice、renewal authority。
  • 12 章: AI feature value、accepted outcome、provider cost。AI cost 上昇を値上げの十分条件にしない。
  • 19 章: pre-outcome assignment、comparison、maturity、small-sample claim cap。
  • 21 章: invoice、provider、refund、bank cash、reserve。
  • SQLite companion: price / package / cohort / notice / consent / billing / cash / maturity invariant を fully synthetic data で検査する参考実装。

本 pack は「いくらにすべきか」を市場 benchmark から決めない。current customer job と反復価値、current commercial state、exact migration path、顧客への影響、完全負荷後 contribution を pricing_change_contract_id へ結び、既存顧客を新規 acquisition experiment の分母へ混ぜない。

source snapshot は、URL、claim、適用 object、region、checked_at、valid_until、superseded state を保存する。公式 docs は provider mechanics の source であり、特定顧客への契約上・法律上の適用、customer understanding、同意、cash、最適価格を単独では証明しない。

  • STRIPE_PRICE_VERSION_2026_08_03: Manage products and prices。Price amount の変更は新 Price を作り旧 Price を inactive にする。旧 Price を archive しても、その Price を使う existing subscription は継続する。
  • STRIPE_SUBSCRIPTION_CHANGE_2026_08_03: Change the price of existing subscriptions。subscription item ID、new Price、quantity、billing interval、proration を別に扱う。item ID を省くと旧新 item が併存し得る。
  • STRIPE_SCHEDULE_2026_08_03: Subscription schedules。current / future phase、phase transition、proration、release / cancel の効果を区別する。
  • STRIPE_PREVIEW_2026_08_03: Create a preview invoice。preview は invoice を作らず、actual update と同じ proration_date 等を使う必要がある。
  • STRIPE_PENDING_2026_08_03: Pending updates。対応する automatic collection では、支払成功時だけ変更を適用する path がある。
  • STRIPE_PORTAL_2026_08_03: Configure the customer portal。customer-initiated plan switch、proration、限定された end-of-period downgrade を設定できる。
  • STRIPE_QUOTES_2026_08_03: How quotes work。accepted quote は invoice、subscription、または schedule を生成するが、既存 subscription の amendment consent を自動証明しない。
  • APPLE_PRICE_MANAGEMENT_2026_08_03: Manage pricing for auto-renewable subscriptions。storefront ごとの preserve / apply、notice / consent path、発効、planned change、値下げを確認する。
  • APPLE_THRESHOLD_2026_08_03: Auto-renewable subscription price increase thresholds。checked rule では日本は、値上げ率が >50% かつ absolute difference が >JPY 800(非年額)/ >JPY 8,000(年額) の場合に threshold 起因の consent が必要になる。JPY 800 / JPY 8,000 ちょうどは exceeds ではない。判定は renewal 時に行われ、threshold は税・為替などにより変更され得る。地域ごとの全値上げ consent や 12 か月内の再値上げなど、独立した条件も別に確認する。
  • APPLE_STATUS_2026_08_03: Managing Price Increases for Auto-Renewable Subscriptions と App Store Server Notification subtype。App Store Server Notifications V2 では notificationType=PRICE_INCREASE, subtype=PENDING | ACCEPTED と notificationType=EXPIRED, subtype=PRICE_INCREASE を区別し、自社 notice 送信を consent / renewal outcome にしない。
  • APPLE_ACA_PRICE_2026_08_03: Change Subscription Price と Handling subscription price changes。Advanced Commerce API の transaction / item 単位、eligibility、next renewal、consent communication、sandbox limitation を通常 App Store Connect path と分ける。
  • GOOGLE_PRICE_CHANGE_2026_08_03: Change subscription prices。new-purchase propagation、legacy cohort、opt-in / opt-out、notice、overlap、accidental change、test path を確認する。default opt-in はtrigger後7日間のdeveloper communication windowとGoogleの30日前通知を分け、最短約37日を全path・全地域の保証値や法定日数にしない。
  • GOOGLE_SUBSCRIPTION_RULE_2026_08_03: Understanding subscriptions。base plan / offer、legacy cohort、region、decrease、opt-out eligibility / frequency / amount / in-app notice を確認する。
  • GOOGLE_MIGRATE_API_2026_08_03: basePlans.migratePrices。legacy cohort を current base-plan price へ移す API object を確認する。
  • GOOGLE_PURCHASE_STATE_2026_08_03: SubscriptionPurchaseV2 と RTDN reference。OUTSTANDING / CONFIRMED / APPLIED / CANCELED と RTDN 後の authoritative fetch を確認する。
  • PADDLE_PRICE_SNAPSHOT_2026_08_03: Subscription item Price snapshot。catalog Price 更新後も existing subscription item は追加時 snapshot を保持する。
  • PADDLE_SUB_UPDATE_2026_08_03: Update a subscription。残す item を含む完全リスト、proration mode、payment-failure behavior を確認する。
  • PADDLE_PREVIEW_2026_08_03: Preview an update to a subscription。immediate / next / recurring transaction details、tax、credit / charge summary を確認する。
  • PADDLE_COMMUNICATION_2026_08_03: Customer emails と Paddle Buyer Terms。price-changed email と、法が要求する場合の consent boundary を確認する。
  • PADDLE_HISTORY_2026_08_03: Subscription History。2026-06-29 以後の change history と、それ以前の inferred history を区別する。
  1. decision、exact unit、baseline、claim cap、損失上限を固定する。
  2. current customer job、反復価値、current / proposed offer を価格より先に固定する。
  3. package と entitlement の added / retained / removed / limited scope を version 化する。
  4. amount、currency、interval、quantity、usage、discount、tax、fee、proceeds を別 object にする。
  5. channel、storefront / region、contract / terms、Price snapshot、renewal state で existing cohort を outcome 前に凍結する。
  6. current official source、current agreement、customer state から applicability、notice、consent を fail closed で解く。
  7. value、理由、選択肢、cancel / support、reference transaction、fairness を communication contract にする。
  8. preview、schedule、proration、payment-failure behavior、idempotency を SANDBOX で検証する。
  9. commercial state、entitlement、invoice、payment を release 後に exact ID で照合する。
  10. assignment から cash / refund / cancel まで append-only event ledger を作る。
  11. invoice、provider、payout、bank、credit、refund、dispute を二重計上せず照合する。
  12. renewal、accepted value、retention、support、完全負荷後 contribution を maturity 後に読む。
  13. wrong cohort、unexpected charge、missing notice / consent、entitlement mismatch の incident を rehearsal する。
  14. weekly decision、Codex handoff、independent review、人の live authority を閉じる。

すべての書式、event、source snapshot、preview、schedule、receipt、ledger、decision は同じ stable key pricing_change_contract_id / contract_version を持つ。contract ID だけで多件を join せず、account、subscription、item、notice、consent、invoice、payment、cash の exact ID chain を使う。

contract_family_id:
pricing_change_contract_id / contract_version:
supersedes_contract_id: N/A | exact prior contract ID
decision_id / decision_version:
value_offer_contract_id / offer_revision:
package_contract_id / package_revision:
entitlement_contract_id / entitlement_revision:
commercial_cohort_id / cohort_revision:
cohort_assignment_id / assignment_revision:
channel_contract_id / channel_revision:
applicability_contract_id / applicability_revision:
communication_contract_id / communication_revision:
billing_change_plan_id / plan_revision:
release_candidate_id / release_revision:
event_ledger_id / ledger_revision:
maturity_snapshot_id / snapshot_revision:
incident_id / remediation_id: N/A | opaque
evidence_id / evidence_revision:
supersedes_evidence_id: N/A | exact prior evidence ID
environment: SYNTHETIC | SANDBOX | LIMITED_LIVE | LIVE
accounting_environment: TEST | REAL
provider_environment: TEST | LIVE | N/A
environment_mapping_revision:
seller_entity_ref: opaque
base_currency:
owner / independent_reviewer:
retention_policy_id / retention_due_at:
  • SYNTHETIC / SANDBOX は TEST、LIMITED_LIVE / LIVE は REAL にだけ写像する。不一致 row を reject する。
  • TEST Price、test clock、sandbox notification、license tester、synthetic acceptance、simulated cash を REAL KPI、customer state、revenue、cash、consent へ昇格しない。
  • environment を失った provider export は UNKNOWN とし、REAL へ既定しない。
  • 過去 row を静かに update せず、新 revision と exact supersession を作る。
  • opaque ID、hash、provider status、email open は、本人性、理解、同意、法的効力、accepted value、cash を単独で証明しない。
designed_at / approved_at:
source_checked_at / source_valid_until:
cohort_assigned_at / cohort_frozen_at:
agreement_accepted_at:
notice_planned_at / sent_at / delivered_at / viewed_at:
consent_requested_at / consent_accepted_at / consent_declined_at:
platform_scheduled_at / platform_effective_at:
subscription_effective_renewal_at:
previewed_at / schedule_created_at / schedule_released_at:
entitlement_changed_at:
invoice_created_at / finalized_at / due_at:
payment_attempted_at / paid_at:
provider_available_at / payout_paid_at / bank_observed_at:
refund_requested_at / refund_settled_at:
occurred_at / recorded_at:
outcome_cutoff_at / snapshot_as_of / maturity_at:
decision_due_at / decided_at:
recheck_due_at:
  • occurred_at <= outcome_cutoff_at と recorded_at <= snapshot_as_of を別に判定する。
  • catalog effective、subscription renewal、entitlement、invoice、payment、bank cash の時計を相互に代用しない。
  • notice sent_at を delivered、viewed、understood、consented に昇格しない。
  • provider が表示する scheduled date と、個別 account が最初に new price を支払う renewal date を分ける。
  • NOT_DUE は failure、zero、unknown ではない。late event は後の snapshot を変え得るが、過去 decision を書き換えない。
state 意味
N/A contract 上存在しない。理由、決定者、再確認 trigger がある
UNKNOWN 必要だが未確認、矛盾、期限切れ、join 不能、authority 不足
0 対象、分母、期間、coverage が確定した測定ゼロ
FAILED 実行した検査、照合、条件が明示的に不合格
OBSERVED stage に必要な authority を満たす肯定観測
NOT_DUE notice、renewal、invoice、cash、refund、maturity 等の期限前

数値 0 と categorical state は別列にする。UNKNOWN / FAILED / NOT_DUE / N/A をゼロへ変換しない。

consent は次を分ける。

NOT_REQUIRED_VERIFIED
REQUIRED_NOT_REQUESTED
REQUIRED_PENDING
ACCEPTED_AUTHORITATIVE
DECLINED_AUTHORITATIVE
EXPIRED_WITHOUT_ACCEPTANCE
OPT_OUT_ELIGIBLE_VERIFIED
OPT_OUT_NOT_ELIGIBLE
UNKNOWN
N/A

NOT_REQUIRED_VERIFIED は「同意を取らなかった」と同義ではない。non-response を consent に変換できるのは、exact channel、region、contract、provider workflow について opt-out applicability が current evidence で確認された場合だけである。

次を別 object として保存する。

CUSTOMER_JOB
ACCEPTED_RECURRING_VALUE
OFFER
PACKAGE
ENTITLEMENT
CATALOG_PRODUCT
CATALOG_PRICE
SUBSCRIPTION_PRICE_SNAPSHOT
DISCOUNT_OR_OFFER_PHASE
AGREEMENT_OR_TERMS
COMMERCIAL_COHORT
NOTICE
CONSENT
QUOTE_OR_ORDER
SUBSCRIPTION_SCHEDULE
ACTIVE_SUBSCRIPTION_STATE
ENTITLEMENT_STATE
INVOICE_OR_TRANSACTION
PAYMENT_ATTEMPT
PROVIDER_SETTLEMENT
BANK_CASH
REFUND_CREDIT_OR_DISPUTE
MATURE_CONTRIBUTION

価格表を変えても existing subscription snapshot、agreement、entitlement、invoice、cash は自動的に変わらない。provider event が変わっても customer job と accepted recurring value は自動的に増えない。

変更 component は複数選択し、それぞれ old / new revision を持つ。

AMOUNT
CURRENCY
BILLING_INTERVAL
QUANTITY
VALUE_METRIC
USAGE_UNIT
TIER_OR_VOLUME_RULE
PACKAGE_SCOPE
ENTITLEMENT
SUPPORT_OR_SLA
DISCOUNT_OR_TRIAL
TAX_TREATMENT
PAYMENT_TERMS
CANCEL_OR_REFUND_TERMS
CHANNEL_OR_MERCHANT
OTHER_MATERIAL_TERM

migration path は一 account / assignment につき一つに固定する。

KEEP_CURRENT
NEW_CUSTOMERS_ONLY
VOLUNTARY_UPGRADE
TIME_BOUND_GRANDFATHER
APPLY_AT_RENEWAL
PACKAGE_REDESIGN
SUNSET_WITH_CLOSEOUT
PRICE_DECREASE

PACKAGE_REDESIGN は単なる amount change ではない。customer job、accepted outcome、entitlement、comparison を新 intervention version として再定義する。SUNSET_WITH_CLOSEOUT は pricing optimization ではなく、export、refund / credit、support、data、contract closeout を伴う終了責任である。

DIRECT_WEB_STRIPE
APPLE_APP_STORE_CONNECT
APPLE_ADVANCED_COMMERCE_API
GOOGLE_PLAY
PADDLE_BILLING
DIRECT_B2B_INVOICE
OTHER_VERIFIED_CHANNEL

channel が違えば、catalog object、legacy / preserve behavior、notice / consent、effective date、preview、rollback、fee、tax、cash path も別 contract にする。同じ customer が複数 channel を持つ場合、duplicate entitlement と二重請求を別 gate で止める。

class evidence 主な用途 単独では証明しないもの
E0_INFERENCE 仮説、scenario、sensitivity option 検討 current rule、customer value、cash
E1_MANUAL_OBSERVATION interview、support summary、手動観測 value / fairness の補助 consent、payment、causality
E2_VERSIONED_CONTRACT_OR_POLICY offer、package、terms、approved notice、decision intended commercial state delivery、理解、cash
E3_VERIFIED_PROVIDER_EVENT provider preview、schedule、subscription、invoice、webhook provider state、calculation contract authority、bank cash
E4_FIRST_PARTY_AUTHORITATIVE assignment、entitlement、delivery、acceptance、support ledger cohort、value、内部 cost provider・銀行・法律上の外部 fact
E5_CUSTOMER_BANK_LEGAL_AUTHORITATIVE customer acceptance、bank、current official / legal evidence consent、cash、current rule 将来 outcome、最適価格

source class の数字が高いだけで stage に適切とは限らない。current provider docs は provider rule の source であり、自社 account の actual state は provider object / console receipt、customer acceptance は customer-authoritative receipt、cash は bank evidence を必要とする。

STOP_AND_REMEDIATE
> PAUSE
> UNKNOWN
> KEEP_CURRENT / NEW_CUSTOMERS_ONLY / VOLUNTARY_UPGRADE
> BOUNDED_MIGRATE
> EXPAND_MIGRATION
  • wrong customer / cohort、unauthorized contract change、missing required notice / consent、unexpected charge、wrong tax / currency、duplicate invoice、access loss、security / privacy breach は revenue uplift で相殺しない。
  • UNKNOWN が applicability、consent、amount、cohort、entitlement、invoice、cash の live-critical field に残るなら migrate しない。
  • BOUNDED_MIGRATE / EXPAND_MIGRATION は exact offer、channel、region、contract、cohort、renewal window、account cap、cash exposure、support capacity のうち evidence が支える範囲だけを広げる。
  • provider の update success は customer notice、consent、accepted value、retention、cash の success ではない。
  • Codex は source diff、schema、redacted draft、synthetic fixture、preview parser、reconciliation query、negative test、decision memo まで。production mutation、communication、consent、charge、cancel、refund、entitlement release は人が実行する。

書式 1 — Decision / scope / baseline / loss-limit contract

Section titled “書式 1 — Decision / scope / baseline / loss-limit contract”

価格や uplift scenario を見る前に、一つの decision unit と停止条件を固定する。

pricing_change_contract_id / contract_version:
decision_id / decision_version:
environment / accounting_environment / provider_environment:
owner / independent_reviewer:
created_at / decision_due_at:
outcome_cutoff_at / snapshot_as_of / maturity_at:
decision question:
seller / product / customer job:
channel / storefront-or-region / currency:
current offer / package / price revisions:
proposed offer / package / price revisions:
exact existing-customer cohort:
current contract / terms revision:
candidate migration paths:
one action this decision may change:
baseline action and frozen comparison:
claim type: DESCRIPTION | ASSOCIATION | SCENARIO | OPERATIONAL_DECISION | CAUSAL
claim cap:
claim explicitly prohibited:
time horizon / maturity rule:
primary KPI: matured_realized_recurring_contribution_delta
driver metrics:
customer guardrails:
commercial / cash guardrails:
data-quality guardrails:
baseline source / state:
target state: TBD_BASELINE | exact approved threshold
maximum assigned accounts:
maximum new recurring amount exposure:
maximum one-time proration / invoice exposure:
maximum refund / credit / dispute exposure:
maximum customer harm / access-loss exposure:
maximum founder / support minutes:
maximum elapsed rollout window:
maximum unresolved UNKNOWN accounts:
hard vetoes:
human action approver:
live actions explicitly prohibited:
kill-switch / pause owner:
remediation / reversal path:
next cheapest evidence:
decision: STOP_AND_REMEDIATE | PAUSE | UNKNOWN | KEEP_CURRENT | NEW_CUSTOMERS_ONLY | VOLUNTARY_UPGRADE | BOUNDED_MIGRATE | EXPAND_MIGRATION
decision scope / evidence / expiry:
execution scope: NO_EXECUTION_AUTHORITY | NEXT_CONTRACT_PROPOSAL_ONLY
  • unit は seller × channel × region × current offer / terms / price × pre-outcome cohort × proposed revision × path × effective window である。
  • new-customer acquisition と existing-customer renewal の分母を分けた。
  • amount 以外の package、entitlement、interval、quantity、discount、tax、terms change を列挙した。
  • no-change baseline と maturity を outcome 前に固定した。
  • customer、cash、support、refund、unknown の loss limit がある。
  • live billing を Codex や batch job の暗黙権限にしていない。

書式 2 — Customer value / offer evidence contract

Section titled “書式 2 — Customer value / offer evidence contract”

価格ではなく、誰のどの反復 job に何を約束し、どの outcome を recurring value と認めるかを固定する。

pricing_change_contract_id / contract_version:
value_offer_contract_id / offer_revision:
effective_from / effective_until:
owner / customer-domain reviewer:
customer segment / job:
job trigger / frequency:
current alternative / switching constraint:
harm if job fails:
current offer promise:
current value metric:
current accepted recurring outcome:
current rejected / partial / safe outcome:
current evidence source / period / coverage:
current value uncertainty:
proposed offer promise:
proposed value metric:
proposed accepted recurring outcome:
what is genuinely new or improved:
what is unchanged:
what becomes worse / constrained / removed:
customer effort / switching / learning cost:
value evidence IDs:
repeated usage / delivery:
customer-authoritative acceptance:
support / complaint:
willingness-to-pay interview or choice:
actual paid renewal: NOT_DUE | opaque
evidence environment / accounting environment:
offer hypothesis:
no-change counterfactual:
new-customer evidence allowed use:
new-customer evidence prohibited extrapolation:
existing-customer evidence gap:
value claim: DESCRIPTION | ASSOCIATION | OPERATIONAL_DECISION
claim cap / expiry / recheck trigger:
  • value を feature count、usage、stated willingness、price だけで置換していない。
  • recurring value は反復可能な accepted outcome として定義した。
  • package removal、customer effort、switching cost、support impact を downside に入れた。
  • acquisition conversion を existing-customer retention / elasticity へ外挿していない。
  • AI / infrastructure cost 上昇を顧客価値の増加と呼んでいない。

書式 3 — Package / entitlement version and compatibility map

Section titled “書式 3 — Package / entitlement version and compatibility map”

amount change とサービス内容 change を分離し、commercial promise と provisioned entitlement を照合する。

pricing_change_contract_id / contract_version:
package_contract_id / package_revision:
entitlement_contract_id / entitlement_revision:
current offer revision / proposed offer revision:
effective_from / effective_until:
owner / engineering owner / support owner:
package component row ID:
component class: CORE | LIMIT | ADD_ON | SUPPORT | SLA | DATA | EXPORT | INTEGRATION | OTHER
component name / opaque code:
current included scope:
proposed included scope:
change: ADDED | RETAINED | EXPANDED | REDUCED | REMOVED | REPLACED
customer-visible promise:
entitlement rule / technical flag:
quantity / usage / reset rule:
overage / degradation / hard-stop behavior:
support / response boundary:
data retention / export boundary:
dependency / compatibility:
grandfather behavior:
evidence / owner / checked_at:
package-level reconciliation:
current package hash:
proposed package hash:
current entitlement set hash:
proposed entitlement set hash:
customer-facing catalog matches package?:
package matches provisioning config?:
removed entitlement migration / export / credit:
legacy client / API compatibility:
multi-channel duplicate entitlement check:
support runbook revision:
rollback entitlement target:
unresolved mismatch:
  • Product / package / Price / entitlement を別 revision にした。
  • removed / reduced / limited item を「値上げだけ」に隠していない。
  • promise、technical flag、usage reset、overage、support が一致する。
  • grandfathered commercial state と grandfathered entitlement state を別に照合した。
  • rollback は Price だけでなく entitlement、limit、support、export を戻す。

書式 4 — Price / fee / tax / proceeds snapshot

Section titled “書式 4 — Price / fee / tax / proceeds snapshot”

一つの Price row を一つの amount とせず、課金計算と seller proceeds を current source で再構成する。

pricing_change_contract_id / contract_version:
price_snapshot_id / snapshot_revision:
catalog_product_id / product_revision:
catalog_price_id / price_revision:
subscription_price_snapshot_id / snapshot_revision: N/A | opaque
channel / provider / provider environment:
storefront-or-region / customer tax location:
checked_at / valid_until / source anchor IDs:
price role: CURRENT | PROPOSED | GRANDFATHERED | DISCOUNT | TRIAL | OVERAGE | ADD_ON
amount in minor units:
currency:
billing interval / interval count:
quantity / seat rule:
usage unit / meter revision:
tier / volume / credit rule:
minimum / maximum / cap:
discount / coupon / offer phase:
trial / step-up:
tax behavior: INCLUSIVE | EXCLUSIVE | LOCATION | UNKNOWN
tax category / authority source:
displayed total / unit price:
provider / store fee basis:
fixed fee:
percentage fee:
commission / program:
tax collected for others:
FX source / rate / timestamp:
expected provider proceeds:
expected seller proceeds:
variable COGS:
support / founder-time cost allocation:
one-time migration cost allocation:
expected full-loaded contribution:
rounding / minimum-charge rule:
preview required?:
price object mutability / snapshot rule:
archive / preserve behavior:
source conflict / UNKNOWN:
  • minor units、currency、interval、quantity、usage、discount、tax、fee を別 field にした。
  • catalog Price と subscription Price snapshot を混ぜていない。
  • displayed customer amount と seller proceeds を分けた。
  • provider fee / tax / FX を古い memory や universal percentage にしていない。
  • price × accounts を contribution と呼んでいない。
  • Stripe の amount change、Paddle の snapshot、storefront / region price を channel 固有 source で確認した。

書式 5 — Existing cohort / contract / channel / migration assignment

Section titled “書式 5 — Existing cohort / contract / channel / migration assignment”

outcome を見る前に commercial state を凍結し、誰をどの path へ割り当てたかを exact account / subscription で残す。

pricing_change_contract_id / contract_version:
commercial_cohort_id / cohort_revision:
cohort_assignment_id / assignment_revision:
assigned_at / cohort_frozen_at:
environment / accounting_environment / provider environment:
seller / channel / provider:
storefront-or-region / currency:
customer account ID: opaque
subscription ID / item ID: opaque
current product / package / entitlement revision:
current catalog Price / subscription Price snapshot:
current quantity / interval / discount / offer phase:
current agreement / terms / final-confirmation revision:
agreement acceptance evidence:
current renewal / commitment / cancel state:
payment / grace / retry / hold state:
current legacy / preserved cohort ID:
customer support / dispute state:
eligibility rule revision:
eligible at assignment?: YES | NO | UNKNOWN
ineligibility / exclusion reason:
assigned migration path:
proposed product / package / Price / terms revisions:
earliest permissible effective window:
comparison group / no-change baseline:
assignment authority / evidence:
duplicate customer / channel check:
overlapping migration check:
prior pending price change:
late state change policy:
withdraw / pause reason:
  • cohort は outcome、renewal、complaint、payment を見る前に固定した。
  • channel、region、contract、Price snapshot、offer、renewal、payment state を含む。
  • eligibility UNKNOWN を分母から消していない。
  • offer phase、installment / commitment、grace / retry、pending change を確認した。
  • 同一 customer の重複 channel、duplicate entitlement、overlapping migration を止めた。
  • Google legacy cohort、Apple preserved price、Stripe / Paddle subscription snapshot を同じ概念に潰していない。
Section titled “書式 6 — Applicability / notice / consent determination”

provider capability、current rule、current agreement、customer state を照合し、未確認なら live migration を止める。

pricing_change_contract_id / contract_version:
applicability_contract_id / applicability_revision:
customer account / subscription / assignment IDs: opaque
channel / storefront-or-region / currency:
proposed change components:
proposed migration path:
intended platform / subscription effective time:
owner / legal-or-policy reviewer:
provider source snapshot IDs:
provider rule checked_at / valid_until:
current agreement / terms revision:
agreement change authority evidence:
consumer / business customer classification:
jurisdiction / tax location confidence:
current customer state / renewal date:
prior price change / notice / consent history:
offer / trial / commitment / grace / retry state:
applicability result: APPLIES | DOES_NOT_APPLY | UNKNOWN
grandfather / preserve option:
notice required?: YES | NO_VERIFIED | UNKNOWN
notice minimum lead / calculation source:
notice channels required:
developer in-app notice required?:
notice content requirements:
consent state:
opt-out eligibility / certification:
non-response treatment:
effective-date calculation:
failure if no acceptance:
cancel / expiry / retain behavior:
notice artifact ID / revision:
notice planned_at / sent_at / delivered_at / viewed_at:
consent request ID:
consent accepted / declined / expired receipt:
provider status / webhook / server notification:
customer-authoritative acceptance:
conflict among source / agreement / provider state:
first UNKNOWN field:
decision: STOP_AND_REMEDIATE | PAUSE | UNKNOWN | KEEP_CURRENT | NEW_CUSTOMERS_ONLY | VOLUNTARY_UPGRADE | BOUNDED_MIGRATE
recheck trigger / expiry:
Stripe:
Is this seller-initiated update or customer portal choice?:
Does current agreement permit the exact change?:
What notice / consent evidence exists outside subscription.updated?:
Is Price replacement, quantity, interval, proration, payment behavior exact?:
Apple App Store Connect:
Preserve current price or apply to existing?:
Storefront / duration / percentage / absolute delta / prior-12-month state?:
Consent-needed or notice-only path at renewal?:
Planned change removable before effective?:
Apple ACA:
Active, auto-renew on, not grace/retry, not offer, supported storefront?:
transaction / item / dependent SKU scope?:
SCHEDULED / PENDING / ACCEPTED status?:
Google Play:
Exact base plan / region / legacy cohort / current price?:
Decrease, opt-in increase, or eligible opt-out?:
365-day frequency / amount / good-standing / terms / in-app notice verified?:
Overlapping migration / OUTSTANDING / CONFIRMED / APPLIED / CANCELED?:
Paddle:
Catalog Price or subscription snapshot is being changed?:
Price-changed email and jurisdictional consent path verified?:
No bulk cohort API assumed?:
Item effective timing vs billing timing independently verified?:
  • source URL、claim、object、region、checked_at、valid_until がある。
  • Console / API が許可したことを contract authority / legal validity と呼んでいない。
  • sent、delivered、viewed、accepted を分けた。
  • non-response は verified opt-out path 以外で consent にしていない。
  • threshold / UI / country list を release 日に再確認する。
  • required consent が pending / unknown なら new price を charge しない。

書式 7 — Communication / reference transaction / fairness review

Section titled “書式 7 — Communication / reference transaction / fairness review”

顧客が旧新 state、理由、選択肢、取り消し方法を比較できる communication を、conversion copy と分けて作る。

pricing_change_contract_id / contract_version:
communication_contract_id / communication_revision:
applicability contract / cohort assignment IDs:
language / locale / accessibility revision:
owner / customer-support reviewer / approver:
audience / channel / delivery method:
subject / heading:
current offer / package / amount / interval:
proposed offer / package / amount / interval:
exact effective date or customer-specific method to obtain it:
what changes:
what stays the same:
what is reduced / removed:
reason stated as verifiable fact:
customer value explanation:
customer options:
keep current / grandfather:
voluntary upgrade / accept:
downgrade / alternate package:
cancel / non-renew:
export / closeout:
contact support:
deadline / no-action consequence:
refund / credit / proration explanation:
tax / fee / currency disclosure:
reference transaction:
reference price customer was entitled to expect:
procedural fairness check:
distributive impact / vulnerable user check:
switching / learning / data-export cost:
loss framing / urgency / scarcity used?:
default / preselection / forced choice:
dark-pattern negative review:
plain-language test:
mobile / TV / web / email parity:
screen-reader / localization test:
support script / escalation path:
complaint taxonomy / owner:
artifact hash / approved_at / expiry:
  • benefit だけでなく amount、interval、effective、removed scope、no-action consequence を同じ prominence で示した。
  • consent-required path で preselected acceptance や silence を使っていない。
  • cancel / decline / keep-current option を隠したり、余分な摩擦を加えていない。
  • cost increase を customer blame、false scarcity、shaming に変換していない。
  • support、accessibility、localization、device coverage を確認した。
  • provider email がある場合も、自社 communication と legal / platform requirement を別 receipt にした。

書式 8 — Billing preview / schedule / proration / failure contract

Section titled “書式 8 — Billing preview / schedule / proration / failure contract”

live update の前に、同じ input と time で preview、schedule、invoice、failure behavior を SANDBOX で固定する。

pricing_change_contract_id / contract_version:
billing_change_plan_id / plan_revision:
preview_id / preview_revision:
environment / provider environment:
provider / account / API version / billing mode:
customer / subscription / item IDs: opaque test refs
current Price snapshot / quantity / interval:
proposed Price / quantity / interval:
discount / trial / offer phase:
tax location / tax behavior:
currency / FX snapshot:
previewed_at / proration_date:
source anchor IDs:
change timing: IMMEDIATE | PERIOD_END | CUSTOMER_RENEWAL | PLATFORM_CALCULATED | UNKNOWN
schedule ID / phase revision: N/A | opaque
schedule start / transition / end behavior:
catalog effective time:
customer-specific subscription effective time:
proration behavior / billing mode:
credit for unused service:
immediate charge:
next invoice adjustment:
recurring amount after change:
tax / fee / discount / rounding:
preview total / currency:
payment behavior on immediate charge:
payment failure behavior:
authentication / mandate required:
pending update / state:
retry / expiry / void behavior:
metered usage / unbilled usage handling:
unpaid current invoice handling:
idempotency key / request reference: opaque
expected webhook / RTDN / notification sequence:
duplicate request negative test:
stale Price / quantity negative test:
wrong interval / anchor negative test:
schedule-overwrite negative test:
TEST-to-LIVE isolation test:
preview vs actual sandbox reconciliation:
unresolved difference / tolerance authority:
human-approved exact live tuple: N/A | opaque approval ref
approval expires_at:
  • preview は actual invoice、charge、consent、cash ではないと表示した。
  • current item ID と quantity を省略して duplicate / reset を起こさない。
  • proration、tax、discount、fee、rounding、billing anchor を確認した。
  • payment failure で commercial state と entitlement が先行しない path を検討した。
  • schedule release と cancel、overlapping migration、latest-wins behavior を provider ごとに確認した。
  • live credential、production ID、actual customer data を fixture / Codex prompt に入れていない。

書式 9 — Release / entitlement / invoice reconciliation

Section titled “書式 9 — Release / entitlement / invoice reconciliation”

commercial state、entitlement、invoice を一つの success flag にせず、bounded release と exact reconciliation を行う。

pricing_change_contract_id / contract_version:
release_candidate_id / release_revision:
billing plan / package / entitlement / communication revisions:
commercial cohort / assignment revision:
environment / accounting environment / provider environment:
owner / engineering / support / billing / independent reviewer:
release scope:
exact eligible account cap:
channel / region / renewal window:
feature flag / batch boundary:
human approval tuple / approved_at / expires_at:
execution actor: HUMAN | APPROVED_AUTOMATION
execution command or console receipt reference: opaque
idempotency / dedupe key:
kill-switch / pause control:
rollback / remediation target:
per-account reconciliation:
account / subscription / item IDs: opaque
assigned path:
applicability state:
notice / consent state:
provider commercial state:
subscription Price snapshot:
package / entitlement expected:
package / entitlement observed:
invoice / transaction expected:
invoice / transaction observed:
payment expected / observed:
refund / credit / dispute:
support / complaint:
reconciliation state:
first mismatch / owner / due_at:
aggregate assigned:
eligible / ineligible / UNKNOWN:
scheduled / applied / canceled / failed:
entitlement matched / mismatched / UNKNOWN:
invoice matched / mismatched / NOT_DUE:
unexpected charge count / amount:
duplicate invoice / entitlement count:
pause trigger matched?:
new exposure stopped_at:
  • exact cohort cap と人の approval tuple が一致する。
  • commercial update 前に applicability、notice、consent、preview が closed である。
  • provider state、entitlement、invoice、payment を別に観測した。
  • mismatch / UNKNOWN を success denominator から消していない。
  • wrong account、unexpected charge、missing access、duplicate action で自動 pause する。
  • release receipt は approval や customer acceptance を置換しない。

書式 10 — Append-only pricing migration event ledger

Section titled “書式 10 — Append-only pricing migration event ledger”

assignment から maturity までの状態遷移を immutable event として残す。current state は ledger から導出する。

pricing_change_contract_id / contract_version:
event_ledger_id / ledger_revision:
event_id / event_revision:
supersedes_event_id: N/A | exact prior event ID
environment / accounting_environment / provider_environment:
account / subscription / item / assignment IDs: opaque
event_type:
COHORT_ASSIGNED | APPLICABILITY_RESOLVED
| NOTICE_PLANNED | NOTICE_SENT | NOTICE_DELIVERED | NOTICE_FAILED
| CONSENT_REQUESTED | CONSENT_ACCEPTED | CONSENT_DECLINED | CONSENT_EXPIRED
| PRICE_SCHEDULED | PRICE_CHANGE_CANCELED | PRICE_EFFECTIVE
| COMMERCIAL_STATE_CHANGED | ENTITLEMENT_CHANGED
| INVOICE_CREATED | INVOICE_FINALIZED
| PAYMENT_ATTEMPTED | PAYMENT_PAID | PAYMENT_FAILED
| PROVIDER_AVAILABLE | PAYOUT_PAID | BANK_CASH_OBSERVED
| CREDIT_CREATED | REFUND_REQUESTED | REFUND_SETTLED | DISPUTE_OPENED
| SUBSCRIPTION_CANCELED | SUBSCRIPTION_EXPIRED
| VALUE_ACCEPTED | VALUE_REJECTED | MATURITY_REACHED
| INCIDENT_OPENED | REMEDIATION_APPLIED | INCIDENT_CLOSED
event state: N/A | UNKNOWN | 0 | FAILED | OBSERVED | NOT_DUE
occurred_at / recorded_at:
source system / source event ID:
source evidence class / source hash:
actor type / actor ref:
old state hash / new state hash:
amount / currency: N/A | exact
package / Price / terms / notice revisions:
causation / correlation link: N/A | exact predecessor ID
idempotency / dedupe key:
late / duplicate / correction flag:
reason / redacted note:
  • event type、actor、occurred_at、recorded_at、environment、source が必須である。
  • accepted consent は required request、exact account、exact change、effective window に結ぶ。
  • event 順序を一律に仮定せず、frozen billing-change path ごとの provider contract と照合する。たとえば Stripe pending_if_incomplete は invoice 作成・支払成功の後に commercial change が適用される。選んだ path と矛盾する順序だけを reject / investigate し、invoice、effective、payment、entitlement、bank の各時計を保存する。
  • late event は current snapshot を再計算するが、過去 event / decision を update しない。
  • duplicate provider event と retry を一つの business outcome に dedupe する。
  • TEST event は REAL chain の predecessor / cash / consent にならない。
  • one account / renewal に competing active migration がある場合 UNKNOWN または incident にする。

書式 11 — Invoice / cash / refund / dispute bridge

Section titled “書式 11 — Invoice / cash / refund / dispute bridge”

表示価格から bank cash までを橋渡しし、refund、credit、fee、tax、FX を mature contribution へ反映する。

pricing_change_contract_id / contract_version:
cash_bridge_id / bridge_revision:
account / subscription / assignment IDs: opaque
environment / accounting environment / provider environment:
base currency / FX source / timestamp:
owner / finance reviewer:
invoice / transaction ID:
invoice created / finalized / due:
gross billed amount / currency:
discount / credit applied:
tax collected for others:
provider / store fee:
net invoice receivable:
payment attempt ID / state:
paid amount / paid_at:
provider pending / settled / available:
payout ID / paid_at:
bank statement line / observed_at:
allocated authoritative bank cash:
gross provider-settled recurring consideration allocated:
refund / credit / adjustment ID:
refund reason / amount / state:
dispute / chargeback ID / amount / state:
FX gain / loss:
duplicate / partial / failed allocation:
reconciliation difference:
recognized recurring value amount:
variable delivery / infra / AI cost:
support / founder-time cost:
allocated migration / communication cost:
incident / remediation cost:
recurring contribution before one-time migration / remediation:
matured realized recurring contribution after allocated one-time cost:
cash maturity state:
refund / dispute maturity state:
unresolved amount / owner / due_at:
  • catalog amount、invoice、payment、provider balance、payout、bank cash を分けた。
  • tax collected for others と fee を seller revenue / contribution から分けた。
  • credit、refund、dispute、partial payment、FX を反映した。
  • provider paid と bank cash を二重計上していない。
  • gross provider-settled recurring consideration は fee / tax 控除前の顧客対価として provider statement から復元し、bank cash と二重加算していない。net payout しか解けない場合は feeを再控除せず UNKNOWN を残した。
  • TEST payment / simulated cash は REAL contribution に入らない。
  • bank 未照合、refund / dispute 未成熟をゼロにしていない。

書式 12 — Renewal / accepted value / contribution / maturity snapshot

Section titled “書式 12 — Renewal / accepted value / contribution / maturity snapshot”

全 assigned account を同じ cutoff で閉じ、価格上昇ではなく mature retained value と contribution を読む。

pricing_change_contract_id / contract_version:
maturity_snapshot_id / snapshot_revision:
commercial cohort / assignment / comparison revisions:
environment / accounting environment:
outcome_cutoff_at / snapshot_as_of / maturity_at:
owner / independent reviewer:
assigned existing accounts:
eligible / ineligible / applicability UNKNOWN:
notice-required / delivered / failed / UNKNOWN:
consent-required / accepted / declined / pending / expired:
migration scheduled / effective / failed / canceled:
entitlement matched / mismatched / UNKNOWN:
renewal due / NOT_DUE:
renewed paid / canceled / expired / payment-failed / UNKNOWN:
accepted recurring value / rejected / unobserved:
support contact / complaint / unexpected-charge accounts:
refund / credit / dispute accounts and amount:
cash matured / refund-dispute matured:
notice delivered rate:
consent completion rate:
effective migration rate:
maturity coverage:
mature retained rate:
accepted recurring value rate:
gross recurring amount:
gross provider-settled recurring consideration:
migrated matured realized recurring contribution, including allocated one-time cost:
comparison matured realized recurring contribution:
realized contribution delta:
primary KPI — matured_realized_recurring_contribution_delta:
new-customer evidence excluded?:
package / entitlement parity or intentional difference:
channel / region / interval / discount mix:
late / duplicate / stale / cross-version events:
TEST-in-REAL count:
first failed / unknown / not-due stage:
claim type / comparison design:
claim cap / uncertainty:
decision: STOP_AND_REMEDIATE | PAUSE | UNKNOWN | KEEP_CURRENT | NEW_CUSTOMERS_ONLY | VOLUNTARY_UPGRADE | BOUNDED_MIGRATE | EXPAND_MIGRATION
decision scope / expiry / next cheapest evidence:
notice delivered rate
= authoritative delivered receipts
/ notice-required eligible existing accounts
consent completion rate
= authoritative accepted consent receipts
/ consent-required eligible existing accounts
effective migration rate
= exact new commercial state + matched entitlement accounts
/ migration-assigned eligible existing accounts
maturity coverage
= accounts whose predeclared renewal + cash + refund/dispute + value maturity is resolved
/ migration-assigned eligible existing accounts
mature retained rate
= accounts past the predeclared cutoff with paid renewal + retained entitlement + resolved value state
/ migration-assigned eligible existing accounts
matured realized recurring contribution
= gross provider-settled recurring consideration allocated to the cohort
- refund / credit / dispute
- provider / store fee and tax collected for others
- variable delivery / infra / AI / data cost
- support / founder-time cost
- allocated one-time migration / communication / incident / remediation cost
matured_realized_recurring_contribution_delta
= migrated cohort matured realized recurring contribution
- frozen no-change comparison matured realized recurring contribution

gross provider-settled recurring consideration は provider がsettleした顧客対価のfee・預りtax控除前grossで、authoritative provider statementからbank movementへ照合する。bank cashを追加収益として足さない。provider / bank資料がnetしか示さずgrossと控除を一意に復元できない場合、feeを推測して再控除せず UNKNOWN にする。

  • denominator は assigned existing cohort から始まり、unsupported / unknown / failed を消していない。
  • renewal due 前、cash 前、refund / dispute window 前を NOT_DUE にした。
  • NOT_DUE を mature-retained denominator から落とさず maturity coverage を併記し、coverage未完了のrateを成功判定へ昇格していない。
  • new-customer conversion と existing renewal outcome を別にした。
  • amount uplift、ARPA、MRR だけで contribution 成功としない。
  • package / entitlement change を price elasticity と誤認していない。
  • causal claim は predeclared comparison と十分な識別がある場合だけに限定した。

書式 13 — Incident / pause / remediation / customer repair

Section titled “書式 13 — Incident / pause / remediation / customer repair”

wrong cohort、unexpected charge、notice / consent failure、entitlement mismatch を revenue incident として即時封じ込める。

pricing_change_contract_id / contract_version:
incident_id / incident_revision:
remediation_id / remediation_revision:
opened_at / detected_at / owner:
environment / accounting_environment / provider_environment:
affected channel / region / cohort / renewal window:
trigger:
WRONG_COHORT | MISSING_NOTICE | MISSING_CONSENT
| WRONG_AMOUNT_OR_CURRENCY | WRONG_TAX_OR_FEE
| DUPLICATE_CHARGE | PRORATION_MISMATCH
| COMMERCIAL_ENTITLEMENT_MISMATCH | ACCESS_LOSS
| OVERLAPPING_MIGRATION | PROVIDER_STATE_DRIFT
| UNEXPECTED_CANCEL_OR_EXPIRY | REFUND_FAILURE
| DATA_OR_SECURITY_EVENT | OTHER
severity / customer harm:
first bad event / source:
predeclared pause trigger matched?:
new schedule / migration stopped_at:
new invoice / charge stopped_at:
entitlement change stopped_at:
automation / feature flag disabled:
provider support / specialist escalation:
affected accounts frozen:
affected-account reconciliation:
wrong commercial state:
wrong entitlement state:
wrong invoice / payment / cash:
notice / consent gap:
refund / credit / fee repair:
access restoration / export / extension:
customer communication draft / approval / receipt:
support / complaint owner:
rollback or forward-fix target:
provider limitation / irreversible event:
remediation executed_at / by:
idempotency / duplicate repair:
reconciliation receipt:
customer repair completed:
root cause:
source / test / review gap:
decision and process superseded:
negative regression tests:
independent review:
resume requirements:
resume decision / exact scope / approved_at:
post-incident maturity / recheck due_at:
pricing_change_contract_id / contract_version:
drill_id / synthetic scenario:
environment: SYNTHETIC | SANDBOX
started_at / contained_at:
new exposure stopped:
affected accounts enumerated:
commercial / entitlement / invoice reconciliation:
refund / credit path tested without live effect:
customer draft held for human approval:
rollback limitation observed:
resume blocked until independent approval:
drill state: N/A | UNKNOWN | 0 | FAILED | OBSERVED | NOT_DUE
gap / owner / next drill due_at:
  • kill-switch は必要な evidence、invoice、consent、cash ledger を自動削除しない。
  • irreversible provider event を「元に戻した」と記録せず、新 price change、refund、credit、access extension 等の forward repair とする。
  • customer communication、refund、cancel、resume は exact human approval と result receipt を持つ。

書式 14 — Weekly decision / Codex handoff / independent review

Section titled “書式 14 — Weekly decision / Codex handoff / independent review”

同じ cutoff で source、cohort、notice、consent、billing、cash、maturity、incident を閉じ、次の一 action を決める。

pricing_change_contract_id / contract_version:
weekly_review_id / review_revision:
review period:
outcome_cutoff_at / snapshot_as_of / maturity_at:
owner / independent reviewer / reviewed_at:
current / proposed offer-package-price revisions:
channel / region / cohort / assignment revisions:
source snapshots checked / expired / conflicting:
applicability resolved / UNKNOWN:
notice required / delivered / failed:
consent required / accepted / declined / pending:
scheduled / effective / canceled / failed migrations:
commercial-entitlement-invoice reconciliation:
paid / provider available / bank cash:
refund / credit / dispute / complaint:
renewal / accepted value / maturity:
full-loaded contribution / comparison / uncertainty:
open incident / wrong-customer exposure:
late / duplicate / stale / cross-version event:
TEST-in-REAL contamination:
first failed / unknown / not-due stage:
loss limit consumed / remaining:
decision: STOP_AND_REMEDIATE | PAUSE | UNKNOWN | KEEP_CURRENT | NEW_CUSTOMERS_ONLY | VOLUNTARY_UPGRADE | BOUNDED_MIGRATE | EXPAND_MIGRATION
decision scope / claim cap:
execution scope: NO_EXECUTION_AUTHORITY | NEXT_CONTRACT_PROPOSAL_ONLY
one action / owner / due_at:
requested next-cohort cap:
proposed exact next-contract cohort cap:
cash / refund / support / customer exposure cap:
human approval required for new contract:
pause / remediation / recheck trigger:
next cheapest evidence:
Codex handoff ID / revision:
pricing_change_contract_id / contract_version:
task / expected artifact:
allowed files / sources / systems:
forbidden files / data / systems:
environment: SYNTHETIC | SANDBOX | LIMITED_LIVE | LIVE
accounting_environment: TEST | REAL
source cutoff / snapshot / maturity:
exact offer / package / entitlement / Price revisions:
exact channel / region / cohort / assignment revisions:
exact applicability / notice / consent / billing plan revisions:
allowed work:
official-source diff | redacted customer-state matrix
| communication draft | preview parser | schema / query
| synthetic fixture | negative test | reconciliation
| DQ report | bounded decision memo
prohibited autonomous work:
create / update / archive production Price
| update subscription or legacy cohort
| schedule / release / cancel live billing
| send notice or infer consent
| finalize invoice / charge / refund / credit
| change entitlement / access / terms
| use production credential or customer payload
required positive tests:
required negative tests:
wrong-cohort / duplicate-account tests:
notice / consent missing / expiry tests:
Price / quantity / interval / proration tests:
commercial-entitlement-invoice mismatch tests:
payment-failure / refund / overlap tests:
TEST-to-REAL isolation tests:
PII / credential / secret scan:
bounded output / redaction rule:
draft artifact hash:
test receipt / result:
unresolved assumptions / unknowns:
human reviewer / approval scope:
approved exact live-effect tuple: N/A | opaque
approval expires_at:
release / pause / remediation reference:
Independent review ID / revision:
reviewer independence / conflict:
official source freshness / exact claim checked:
TEST / REAL boundary checked:
decision unit / baseline / claim cap checked:
value / offer evidence checked:
package / entitlement diff checked:
Price / fee / tax / proceeds checked:
cohort / contract / channel assignment checked:
applicability / notice / consent checked:
communication / fairness / accessibility checked:
preview / schedule / proration / failure checked:
commercial / entitlement / invoice reconciliation checked:
event ordering / duplicate / late event checked:
cash / refund / dispute checked:
renewal / maturity / contribution checked:
incident / remediation / resume checked:
Codex scope / live authority / redaction checked:
review decision: PASS | PAUSE | UNKNOWN | STOP
findings / severity / owner / due_at:
accepted residual risk / human authority:
reviewed_at / expires_at / recheck trigger:
  • precedence は STOP_AND_REMEDIATE > PAUSE > UNKNOWN > KEEP_CURRENT / NEW_CUSTOMERS_ONLY / VOLUNTARY_UPGRADE > BOUNDED_MIGRATE > EXPAND_MIGRATION で、revenue upside が veto を上書きしない。
  • source、cohort、notice、consent、billing、cash を同じ cutoff で読んだ。
  • BOUNDED_MIGRATE / EXPAND_MIGRATION は exact channel / region / contract / cohort / renewal / exposure に限定した。
  • next_cohort_n は NEXT_CONTRACT_PROPOSAL_ONLY で、current frozen cohort への追加 assignment / effect に使えない。
  • Codex output を production mutation、communication、consent、charge、refund、entitlement へ自動昇格していない。
  • independent reviewer が wrong cohort、silent opt-out、duplicate charge、package mismatch、maturity を確認した。
  • approval は exact tuple と expiry を持ち、一般的な「価格改定OK」ではない。

Fully synthetic TEST example — Moonlit Memo

Section titled “Fully synthetic TEST example — Moonlit Memo”

以下は書式間の join と fail-closed behavior を示すだけの完全架空例である。Moonlit Memo、account、ID、金額、日付、件数、結果はすべて存在しない。provider API を呼んでおらず、通知日数・価格・率・decision の推奨ではない。

fixture_id: FIXTURE_PC_001
fictional product: Moonlit Memo
pricing_change_contract_id / contract_version: pc_TEST_moonlit_001 / 1
environment: SANDBOX
accounting_environment: TEST
provider_environment: TEST
base_currency: JPY
all accounts: acct_TEST_001 ... acct_TEST_008
all Price IDs: price_TEST_current / price_TEST_candidate
all cash: SIMULATED_ONLY
live authority: NONE
fixture generated_at: 2031-02-01T00:00:00Z (fictional clock)
decision question: eight synthetic existing accountsをcandidate packageへ移せるか
current offer: Fog / JPY 700 monthly / 100 synthetic notes
candidate offer: Lantern / JPY 950 monthly / 300 synthetic notes + fictional export
paths: NEW_CUSTOMERS_ONLY | VOLUNTARY_UPGRADE | APPLY_AT_RENEWAL
frozen no-change comparison: all eight synthetic accounts remain on Fog
maximum accounts: 8 synthetic
maximum real cash / customer exposure: 0
hard veto: any REAL ID, missing applicability, missing consent, preview mismatch
decision before evidence: UNKNOWN
customer job: fictional weekly research memoを保存・exportする
current accepted outcome: synthetic memo saved and retrieved
candidate added outcome: synthetic export completed
evidence: 8 scripted TEST sessions; no real customer observation
claim cap: sandbox workflow description only
prohibited claim: willingness to pay, retention, elasticity, optimal price
current package: pkg_TEST_fog_v1
candidate package: pkg_TEST_lantern_v1
retained: save, retrieve
expanded: note limit 100 -> 300
added: fictional export
removed: none
entitlement flags: ent_TEST_fog_v1 -> ent_TEST_lantern_v1
rollback target: ent_TEST_fog_v1
current catalog Price: price_TEST_current / JPY 700 / month
candidate catalog Price: price_TEST_candidate / JPY 950 / month
quantity: 1
tax behavior: UNKNOWN
provider fee: UNKNOWN
seller proceeds: UNKNOWN
contribution: UNKNOWN
meaning: arbitrary fixture amounts; not a benchmark or quote
cohort: cohort_TEST_fog_renewal_A
assigned: acct_TEST_001 ... acct_TEST_008 before outcomes
channel: DIRECT_WEB_STRIPE-shaped simulator, not Stripe
contract revision: terms_TEST_1
contract change authority: UNKNOWN
assigned path: VOLUNTARY_UPGRADE rehearsal only
REAL eligibility: NO
Section titled “6. Synthetic applicability / notice / consent”
provider source snapshot: STRIPE_SUBSCRIPTION_CHANGE_2026_08_03
provider mechanics applicability: simulated only
agreement authority: UNKNOWN
notice required: UNKNOWN
consent state: UNKNOWN
non-response treatment: never consent
result: PAUSE before any live migration
draft shows: old JPY 700 monthly, new JPY 950 monthly, package diff, fictional effective method
options shown: keep Fog, volunteer for Lantern, cancel rehearsal
dark-pattern test: no preselection, countdown, shame, hidden cancel
delivery: local snapshot only; not sent
approval: NONE
preview ID: preview_TEST_001
input: price_TEST_current -> price_TEST_candidate, quantity 1
proration date: fictional 2031-02-15T00:00:00Z
simulated immediate adjustment: JPY 125
simulated recurring next amount: JPY 950
tax / fee: UNKNOWN
actual provider invoice: none
preview state: TEST OBSERVED; live validity: NONE
release scope: SANDBOX state-machine rehearsal, 8 synthetic accounts
commercial state matched: 8
entitlement matched: 8
invoice matched: N/A; no provider invoice
payment / cash: N/A TEST
live release cap: 0
evt_TEST_001 | COHORT_ASSIGNED | acct_TEST_001 | TEST
evt_TEST_002 | APPLICABILITY_RESOLVED | acct_TEST_001 | UNKNOWN
evt_TEST_003 | NOTICE_PLANNED | acct_TEST_001 | TEST only
evt_TEST_004 | INCIDENT_OPENED | reason=live applicability unknown
evt_TEST_005 | REMEDIATION_APPLIED | action=live path remains disabled

同じ pattern を残り7 synthetic account にだけ生成する。CONSENT_ACCEPTED / INVOICE_FINALIZED / PAYMENT_PAID / BANK_CASH_OBSERVED は存在しない。

gross billed: N/A
payment: N/A
bank cash: N/A
refund / dispute: N/A
simulated amount fields: TEST scenario only
realized contribution: UNKNOWN, not zero
assigned: 8 synthetic
applicability UNKNOWN: 8
live eligible: 0
renewal due: NOT_DUE
accepted recurring value: TEST script only
cash maturity: NOT_DUE
decision: UNKNOWN
reason: contract / notice / consent / tax / fee / cash authority absent
scenario: one synthetic account is mistakenly marked LIVE
trigger: TEST-to-REAL contamination
containment: reject row, stop batch, enumerate affected IDs
customer communication / refund: not executed
resume: prohibited until mapping fixed and independent negative test passes
drill result: OBSERVED in TEST only
weekly decision: UNKNOWN
authorized next live cohort: 0
Codex allowed: source diff, schema, synthetic tests, redacted draft
Codex prohibited: production Price / subscription / notice / consent / charge / refund
independent review: PASS for TEST fixture; NO LIVE APPROVAL
next cheapest evidence: human review of exact real contract and channel, outside fixture

この例の JPY 700 / 950、8 account、scripted outcome、decision は任意の fixture であり、価格研究、顧客調査、provider response、法律上の notice / consent を示さない。

  • ## 書式 1 から ## 書式 14 までが一度ずつ存在する。
  • 14 書式すべてが stable key pricing_change_contract_id / contract_version を持つ。
  • blank form と fully synthetic example を視覚的・意味的に分離した。
  • example は TEST / SANDBOX だけで、REAL revenue、cash、consent、customer outcome に混ぜていない。
  • live billing を実行しない注意と、人の exact approval boundary がある。
  • Price、package、entitlement、terms、cohort、notice、consent、schedule、invoice、payment、cash を別 object にした。
  • current catalog Price と existing subscription Price snapshot を分けた。
  • change component は amount 以外の interval、quantity、usage、discount、tax、package、terms を含む。
  • existing cohort は outcome 前に channel、region、contract、renewal、payment state で凍結した。
  • new-customer evidence を existing-customer retention / elasticity に外挿していない。
  • Stripe Price replacement、subscription item、quantity、schedule、preview、pending update の source anchor がある。
  • Apple preserve / apply、threshold、notice / consent、renewal、ACA item state の source anchor がある。
  • Google legacy cohort、current base-plan migration、opt-in / constrained opt-out、RTDN state の source anchor がある。
  • Paddle subscription Price snapshot、complete item list、preview、email / consent boundary、history の source anchor がある。
  • current official source を particular-customer applicability や legal advice に昇格していない。
  • notice sent / delivered / viewed と consent required / pending / accepted / declined / expired を分けた。
  • non-response を verified opt-out path 以外で consent にしていない。
  • provider scheduled date と customer-specific charged renewal を分けた。
  • preview、schedule、commercial state、entitlement、invoice、payment、cash の時計を分けた。
  • schedule release / cancel、overlap、irreversibility を generic rollback にしていない。
  • wrong cohort、unexpected charge、duplicate invoice、access loss、missing notice / consent を incident trigger にした。
  • invoice、provider balance、payout、bank cash、refund、credit、dispute を二重計上していない。
  • full-loaded contribution に fee、tax collected for others、variable cost、support、migration、incident cost を含めた。
  • N/A / UNKNOWN / 0 / FAILED / OBSERVED / NOT_DUE を数値ゼロへ潰していない。
  • primary KPI matured_realized_recurring_contribution_delta を、maturity 後の settled cash と full-loaded cost から算定した。
  • decision precedence STOP_AND_REMEDIATE > PAUSE > UNKNOWN > KEEP_CURRENT / NEW_CUSTOMERS_ONLY / VOLUNTARY_UPGRADE > BOUNDED_MIGRATE > EXPAND_MIGRATION を revenue upside より優先した。
  • BOUNDED_MIGRATE / EXPAND_MIGRATION は exact offer、channel、region、contract、cohort、renewal、exposure に限定される。
  • EXPAND_MIGRATION / next_cohort_n は NEXT_CONTRACT_PROPOSAL_ONLY で、新しい contract version と human approval なしに実行できない。
  • Codex handoff は credential、PII、live customer payload、production mutation を禁止する。
  • independent review が source freshness、cohort、consent、billing、cash、maturity、incident、TEST / REAL を確認する。

この pack を埋めても、customer value、willingness to pay、contract change authority、notice / consent の十分性、provider acceptance、retention、causal price elasticity、seller proceeds、bank cash、positive contribution は自動的に証明されない。最終 action は current source、actual agreement、exact customer / channel / region state、provider evidence、必要な専門家 review、人の責任に基づいて決める。