送料の利益・損失と利益率を計算
送料として受け取った金額が、そのまま利益になるとは限りません。購入時にお客様へ請求した送料とは別に、配送会社への支払いと梱包材の消費が発生します。この計算ツールでは、同じ発送に関する3つの金額を比較できます。お客様への請求額、配送会社の実費、梱包材費を入力すると、実際の発送費用、利益または損失、送料収入がある場合の利益率を確認できます。
無料で実行
同じ発送に対応する金額を入力します
商品の価格や注文合計ではなく、お客様に実際に請求した送料を使用します。次に、同じ荷物について配送会社へ支払った金額と、箱、封筒、テープ、ラベル、緩衝材、保冷材など、使用した梱包材の費用を入力してください。3つの金額は同じ通貨、同じ税務基準にそろえます。送料無料の場合は送料に0を入力すると、配送と梱包の支出が損失として表示されます。見積もりの送り状料金は、住所訂正、容積重量、住宅向け配達などで変わることがあるため、可能であれば配送会社の最終請求額を使用してください。月単位で購入した梱包材の全額を1件に割り当てず、まず1個当たりの妥当な費用に換算します。該当しない費用には0を使用できますが、通貨記号や桁区切りを含まない有限の0以上の数値が必要です。
利益、損失、利益率を正しく読み取ります
配送会社の費用と梱包材費を合計して実際の発送費用を求め、その合計をお客様への送料請求額から差し引きます。正の値は利益、負の値は損失、0は収支均衡であり、結果欄にも分類が表示されます。送料請求額が0より大きい場合、利益または損失を請求額で割り、百を掛けて利益率を算出します。たとえば、請求額が12.99、配送費が8.40、梱包材費が1.35なら、実費は9.75、利益は3.24、利益率は約24.94パーセントです。送料無料では0で割れないため利益率を省略しますが、絶対額の損失は確認できます。出力は小数第2位に丸めます。この割合は送料収入に対する利益率であり、費用を分母にする値上げ率とは異なります。
配送方針の判断に活用します
絶対額と利益率を合わせて確認してください。正のマージンは梱包作業や後日の調整を補えますが、過大な送料は購入率を下げたり、マーケットプレイスの規則に抵触したりする場合があります。送料無料や送料補助が商品利益、顧客獲得、最低注文額を支えるなら、損失は意図的なこともあります。その場合は販促費として扱い、注文全体で吸収できるか確認します。配送サービス、地域、荷物サイズ、販売経路ごとに計算すると、平均値では見えない傾向を把握できます。対象はお客様への送料、配送会社、梱包材のみです。倉庫作業、保険、関税、決済、返品、再発送、保管、ソフトウェア、商品利益は自動的に含みません。監査では、結果を注文、配送請求書、梱包材費の根拠とともに保存してください。同じ入力からは常に同じ結果が得られ、API計算1回の料金は$0.002です。
活用例
完了した注文を監査
購入時の送料を、配送会社の最終請求と使用した梱包材に照らして確認します。
一律送料を検証
同じ送料設定が、どの発送条件で利益または損失になるか調べます。
送料無料を評価
お客様が送料を払わない場合に商品利益が負担する費用を算出します。
よくある質問
どの計算式を使用しますか?
実費は配送費と梱包材費の合計です。利益または損失は請求送料から実費を引き、利益率はその結果を請求送料で割って百を掛けます。
送料無料の場合はどうなりますか?
送料に0を入力します。実費は損失として表示され、収入が0のため利益率は省略されます。
梱包作業費も含めますか?
梱包材費欄は消耗品を想定しています。信頼できる発送1件当たりの金額がある場合に限り、作業費を含めてください。
配送会社の料金を取得しますか?
いいえ。評価する発送に対応する実費または見積額をご入力ください。
利益率と値上げ率は同じですか?
いいえ。利益率は送料収入を分母にし、値上げ率は通常、費用を分母にします。
APIの利用料金はいくらですか?
1回のリクエストは$0.002です。Web版も同じ決定論的な計算を使用します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/ecom/shipping-margin \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"shipping_fee":12.99,"carrier_cost":8.4,"packaging_cost":1.35}'const res = await fetch("https://api.kit.forhosting.com/ecom/shipping-margin", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"shipping_fee": 12.99,
"carrier_cost": 8.4,
"packaging_cost": 1.35
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ecom/shipping-margin",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"shipping_fee": 12.99,
"carrier_cost": 8.4,
"packaging_cost": 1.35
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ecom/shipping-margin", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"shipping_fee":12.99,"carrier_cost":8.4,"packaging_cost":1.35}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"shipping_fee":12.99,"carrier_cost":8.4,"packaging_cost":1.35}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ecom/shipping-margin", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"shipping_fee": 12.99,
"carrier_cost": 8.4,
"packaging_cost": 1.35
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.shipping_margin",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |