Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

price-dial

値付けのダイヤルを回して、手取りがいくらになるかを見る。 KDP・Stripe・GitHub Sponsors のように、控除のルールが違うチャネルを1つの計算に載せる。

日本の消費税と各プラットフォームの手数料を、根拠の質を落とさずに扱うことが目的。

⚠️ 開発初期。いま動くのは Amazon.co.jp の KDP ロイヤリティだけ。

なぜ作ったか

台帳にこう書いてあった。

商品 価格 粗利/件 根拠
Kindle本 (JP, Select) ¥1,250 ¥875 ✅ 実測

1,250 × 0.7 = 875。合っているように見えるが、KDP はロイヤリティ率を税込価格ではなく 税抜価格に掛ける。実際は ¥787 で、11% ずれていた。しかも「✅ 実測」の札が付いていた。 札は付いていたが、中身は暗算だった。

この数字は広告の損益分岐に使われていた。間違った数字より、間違った数字が 「実測」に見えていたことのほうが問題だった。

だから price-dial は2つのことを同時にやる。

  1. 控除の連鎖を正しく計算する(税 → 手数料 → 手取り)
  2. その結果をどれだけ信用してよいかを、値と一緒に運ぶ

使う

from pricedial.channels.kdp import jp_royalty

r = jp_royalty(1250, rate=0.70, file_size_mb=7.71)
print(r.explain())
⚠️ KDP JP ロイヤリティ (¥1,250 / 70%): 787.74 JPY
  消費税 (10/110 × 税込価格): −113.64
  ロイヤリティ 70%: ×0.7
  配信コスト: −7.71
  ! あと 2.29MB 増やすと配信コストが ¥0 になる (いまは −¥8)。日本では重いほうが手取りが多い

先頭の ⚠️ は「計算式は公式で裏が取れているが、実観測がまだ無い」の意味。 35% の本なら (実際の入金額と一致することを確認済み)になる。

Claude から直接引くこともできる。

pip install -e ".[mcp]"
claude mcp add price-dial -- python3 -m pricedial.mcp_server

道具は5つ。手取り (kdp_jp_takehome)、価格を振って崖を探す (kdp_jp_dial)、 広告の損益分岐 (kdp_jp_breakeven)、レポートからの逆算 (kdp_jp_reconcile)、 evidence の説明 (evidence_guide)。詳細は docs/guide/mcp.md

根拠の質は計算に付いて回る

Evidence は3段階で、演算のたびに弱いほうへ落ちる。上がることはない。

意味
✅ MEASURED 実測。レポートの数字を割って出した値だけがここに入る
⚠️ PARTIAL 計算式は裏が取れているが、実観測がまだ無い
🔴 ASSUMED 仮値。この数字で金を動かさない

実測 ¥477 に仮の継続月数を掛けたら、出てくる LTV は仮値になる。 これを型で担保する。人間の注意力は当てにしない。

設計 — 3層に分ける

混ぜると、決定論の出力と仮値の出力が同じ見た目で出てくる。

中身 性質
1. 手取り 表示価格 → 税 → 手数料 → 手取り **決定論。**全チャネルのルールが公開されている
2. 採算 粗利 → LTV → 許容CAC 商品による。1回売りは確定、継続課金は継続月数が要る
3. いくらにするか 競合・価格帯規制・相場 計算の仕事ではない。docs/methodology.md

いま実装があるのは層1だけ。層2は層1が固まってから。層3は書き物。

GitHub Sponsors は層1にしか乗らない。支援は対価の交換ではないので、 ティア金額は原価から決まらないし、LTV や許容CAC の枠組みが当てはまらない。

対応チャネル

チャネル 状態
KDP Amazon.co.jp (70% / 35%) ✅ 実装済み・実入金と一致
Stripe (self-handle / Managed Payments) ⬜ 次に着手
GitHub Sponsors ⬜ 未着手(手数料が公式未確認)
KDP 他マーケットプレイス ⬜ 未着手(税の扱いが国ごとに違う)

順番と理由は docs/roadmap.md

テストは実測で固定してある

tests/test_kdp_jp.py に並んでいるのは、KDPレポートから royalty ÷ net_orders で割り出した実際の入金額。想定値は1つも入っていない。4つの観測窓すべてで 同じ値が出ることを確認している。

このテストは書いた直後に自前のバグを2件捕まえた。KDP は四捨五入で入金する (¥1,250 の 35% は 397.73 だが入金は ¥398)。切り捨てで実装していた。

python3 -m pytest tests/ -q

実データは入っていない

このリポジトリに入るのは公開情報だけ — 各プラットフォームの控除ルール、 計算ロジック、考え方。実売数・ロイヤリティ実額・LTV・広告費は入れない。

線引きはこれ。

他人が Amazon / GitHub で見られる数字は public。 自分のレポートにしか出ない数字は private。

隠すのは .gitignore の仕事だが、ここではそもそも置かない。一度入れると 履歴に残るし、数字は API キーと違って目立たないので気づかれない。

ドキュメント

使い方

getting-started インストールと最初の1回
kdp-jp 値付け・広告判定・実測の作り方
mcp Claude から直接引く

技術と制度の解説

kdp-royalty-jp KDP 日本のロイヤリティ制度
evidence-propagation 根拠の質を型で運ぶ設計
mcp-fastmcp MCP / FastMCP と docstring の役割
methodology 値付けの考え方 (3層)
roadmap 次に何を足すか、何をやらないか

ライセンス

MIT

About

値付けのダイヤルを回して手取りを見る。日本の消費税とプラットフォーム手数料を、根拠の質を落とさずに計算する

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages