公開ページの総額から料金の階段(閾値と単価)を逆算し、変更の前後を対照群つきで判定する
管理画面の設定値ではなく客が見る画面の総額から料金構造を割り出す計測器の作り方。両端2点で割ると実在しない単価が出る罠、同名別商品の取り違え、取れなかったを0と混同する罠を潰し、前後比較は中央値+対照群で exit 0/1/2 に落とす。
約3.9万トークンの節約 (API料金換算で約59円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「公開ページの総額から料金の階段(閾値と単価)を逆算し、変更の前後を対照群つきで判定する」は、データ収集カテゴリのAI指示書(MDファイル)です。管理画面の設定値ではなく客が見る画面の総額から料金構造を割り出す計測器の作り方。両端2点で割ると実在しない単価が出る罠、同名別商品の取り違え、取れなかったを0と混同する罠を潰し、前後比較は中央値+対照群で exit 0/1/2 に落とす。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約3.9万トークン(API料金換算で約59円)・87%のトークンを節約できます。
- カテゴリ
- データ収集
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約4.5万トークン
- この巻物使用時
- 約6,000トークン
- 節約量
- 約3.9万トークン (約59円)
- 更新日
- 2026-09-04
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/md-fa8a35ca/raw を読み込んで、この指示書どおりに実装して"
中身
公開ページの実表示から「料金の階段」を逆算し、変更の前後を対照群つきで比べる
管理画面の設定値ではなく、客が実際に見ている画面の総額から料金構造(閾値と単価)を割り出し、 設定変更の効果を exit code で判定するための指示書。宿泊・チケット・レンタル・SaaS の人数課金など、 「N を増やすと総額が増える」形の料金すべてに使える。
この指示書が防ぐ失敗
- 両端2点で割って、実在しない単価を報告する 最小 N と最大 N の総額差を N 差で割ると滑らかな数字が出るが、料金表が階段だとその数字は どの区間にも存在しない。実例: 総額が N=2,3,4 で同額、N=5 から段が付く料金で、両端割りは 「750/人」を出した。実体は「4 まで無料・5 から 1,500/人」。この嘘を信じると、既に正しく 設定されている項目を「未反映」と誤判定して二重に触ることになる。
- 同じ名前の別ユニットを比べる 一覧型ページは N によって表示される商品が入れ替わる。名前だけを鍵にすると、N=2 のときの 「標準プラン(定員6)」と N=6 のときの「標準プラン(定員12)」を突き合わせて嘘の差額が出る。
- 取れなかったを 0 と混同する 抽出に失敗した点を「差なし」として扱うと、変更が入っていないのに「入った」と読める。
- 1回の順位・1回の価格で語る 検索順位は測定ごとに揺れる。前後比較は中央値と、影響を受けないはずの帯(対照群)が 一緒に動いていないかの検定をセットにしないと、市場の揺れを効果と誤認する。
作るもの(2本)
A. 料金階段の計測器(exit 0/1/2)
node tools/price-step-meter.mjs --url-template "<URL テンプレート>" --vary 2,3,4,5,6 \
--expect-unit 1500 --expect-threshold 4 --json out.json
実装の要点:
- 入力は連続にする。
2,3,4,5,6のように隙間なく測る。隙間があると閾値は範囲でしか 決まらない。範囲でしか決まらないときはpinned: falseを出力に必ず入れる。 - 各点で headless ブラウザ(playwright 等)でページを開き、描画待ちを置いてから
innerTextを取る。API ではなく実表示を読むのが目的。 - 総額の抽出はラベル基準にする。数字の最大値を拾うような当て推量はしない。
取れなかった点は
method: 'none'として記録し、その場で exit 2。代替推定をしない。 - 一覧型ページでは、商品名の行を上方向に探し、画面部品の行を除外する (「すべて表示」「詳細を見る」「〜を選択」など。これらは商品名と同じ語を含むことがある)。 鍵は 商品名+容量(定員・席数など) の組にする。名前だけでは衝突する。
- 容量表記は上にも下にもある。単品ページでは価格枠の下にしか出ないことがある。 上方向を探して見つからなければ下方向も探す。
- 逆算は隣接区間の増分で行う:
step(n_i → n_j) = (総額_j − 総額_i) / (n_j − n_i) / 単位数(泊数・日数など)- 増分が 0 の区間 = 加算なし
- 増分が出る最初の区間の下端 = 閾値
- 加算ありの区間の増分の中央値 = 単価
- 加算ありの区間どうしで増分がばらつく → 1つの数字で語れない形なので exit 2
- 複数商品があるなら商品ごとに閾値と単価を出し、商品間で一致しているかも確認する。 食い違えば exit 2(設定が商品ごとに違うか、抽出が壊れている)。
- 判定より先に表を全部出力する。測定不能で落ちるときこそ、何をどう読んだかが残っていないと 原因を追えない。
出力例:
区間 2→3 | 増分=0
区間 3→4 | 増分=0
区間 4→5 | 増分=1500
区間 5→6 | 増分=1500
商品 A | 閾値=4 | 単価=1500
判定: 一致(1500)
B. 前後比較(対照群つき・exit 0/1/2)
順位・露出・転換率など「変更で動くはずの指標」を、変更前後で複数回測って比べる。
node tools/rank-compare.mjs --before b1.json --before b2.json --before b3.json \
--after a1.json --after a2.json --after a3.json --margin 0.05
実装の要点:
- 1回では判定しない。片側 3 回程度を集め、指標はパーセンタイル
(
順位 ÷ 母数)に正規化してから中央値を取る。母数が回ごとに違っても比べられる。 - 対照群を必ず持つ。料金の閾値が 4 なら、
N ≤ 閾値の帯は理屈上影響を受けない。 その帯を対照群として同じ計算をする。 - 判定:
- 影響を受ける帯が margin を超えて改善 → exit 0
- 改善なし・悪化 → exit 1
- 対照群も同じ向きに margin を超えて動いた → exit 2(効果と市場の揺れを切り分けられない)
- 前後で条件(日付・地理範囲・帯の一覧)が違う、測定回数が足りない → exit 2
- 「不在」は最下位相当(パーセンタイル 1.0)として扱い、absent の回数を必ず併記する。 在庫切れなど正当な理由で出ないケースがあるので、不在を症状と決めつけない。
- 自己検定: before と after に同じファイルを渡して delta が 0 になることを確認してから使う。 合成データで「対照群も動いた」ケースを作り、exit 2 が実際に出ることも確認する。
手順(このまま AI に渡せる)
- 対象ページの URL 形式と、変えるパラメータ(人数・枚数・席数)を確定する。
- まず1点だけ実際に開き、本文テキストをファイルに保存して目で見る。 ラベル(総額・容量)の実際の表記と、一覧型か単品型かをここで決める。推測で正規表現を書かない。 通貨記号の位置(前置か後置か)と括弧が全角か半角かもここで確認する。
- A を実装し、既に正しい設定になっていると分かっている対象で exit 0 が出ることを確認する (=対照群での検定)。これをせずに「異常」を報告しない。
- 変更前の値と指標を測って保存する(生 JSON をリポジトリに残す)。
- 設定を変更する。管理画面がログイン必須で自動化できない場合、そこだけは人に頼む。 その際は URL・変更する項目名・期待値・「変えられなかった場合の逃げ道」を1通に書く。 見たことのない画面の手順を創作しない(先にスクリーンショットを1枚もらう)。
- A を
--expect-*付きで叩いて exit 0 を確認 → B で前後比較 → exit code で報告する。
報告の作法
- 「反映した」ではなく「この画面のこの数字がこうなった」と、読み戻した値で言う。
- 0 件・0 円を報告するときは、その 0 が何を数えた 0 かを必ず併記する (母数・列挙数・抽出方法)。抽出に失敗した 0 と、本当に 0 の 0 は区別が付かない。
- 測定不能(exit 2)は失敗ではなく情報。無理に 0 か 1 に丸めない。
よくある質問
+「公開ページの総額から料金の階段(閾値と単価)を逆算し、変更の前後を対照群つきで判定する」とは何ですか?
管理画面の設定値ではなく客が見る画面の総額から料金構造を割り出す計測器の作り方。両端2点で割ると実在しない単価が出る罠、同名別商品の取り違え、取れなかったを0と混同する罠を潰し、前後比較は中央値+対照群で exit 0/1/2 に落とす。
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約4.5万トークンかかりますが、この巻物を使えば約6,000トークンで済みます。差し引き約3.9万トークン(API料金換算で約59円)・87%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
定期スクレイピング→Googleスプレッドシート自動集計MD
競合価格・在庫・ランキングなどを毎日自動取得してスプレッドシートに蓄積するバッチを AI に作らせる指示書。robots.txt 尊重・レート制限・差分検知のベストプラクティス込み。
Androidアプリの通知をローカルPCへ取り込む(公式API非対応のチャット向け)
公式APIが無いチャットサービスの投稿を、Android通知経由で手元PCに集める指示書。着手前に『その通知が本当に発生するか』をADBの通知履歴で検証する手順、fail-closedなallowlist設計、個人名を残さない診断ログ、LLM要約の壊れ方と対策までを含む。
外部サイトの「異常」を報告する前に計測器を対照群で検定する
自社の掲載が検索に出ない・売切表示になる等を疑ったとき、対照群をツールに実装して測定不能をexit 2で止める手順。UA未設定で空ページを掴む罠、分母が列挙可能かの見方、履歴のない画面で「いつ落ちたか」を測らない原則つき。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア