固定バスケットから消費者物価指数を計算
この消費者物価指数計算機は、同じ商品・サービスのバスケットを基準年価格と現在価格でそれぞれ評価します。現在のバスケット費用を基準時の費用で割り、その比率を百倍します。各品目について固定数量と二つの価格を入力すると、両方の合計費用、消費者物価指数、価格変化率を確認できます。数量を一定に保つため、購入内容の変化ではなく、価格そのものの動きを捉えられます。
無料で実行
数量が変わらないバスケットを作成します
消費者物価指数の出発点は、対象とする消費パターンを表すバスケットです。商品やサービスを一度ずつ登録し、分かりやすい名称と対象期間に購入する数量を入力してください。基準時と現在の評価には、まったく同じ数量を使います。たとえば基準時にパン十個、現在は八個として計算すると、価格変化と数量変化が混ざり、固定バスケット指数ではなくなります。キロワット時、キログラム、月額サービスの按分などでは小数の数量も利用できますが、数量は必ず正でなければなりません。二つの時点で通貨と単位をそろえてください。基準価格が一キログラム当たり、現在価格が一袋当たりの場合は、先に同じ単位へ換算する必要があります。目的に合う代表的な分類を選び、バスケットの範囲を記録してください。本計算機は最大千品目を一度の明確な手順で評価し、季節調整や代替処理は行いません。
指数の式と結果を理解します
各行について、固定数量に基準年の単価を掛けて品目の基準価額を求めます。同じ数量に現在の単価を掛け、現在価額も別に求めます。それぞれを合計すると、基準バスケット費用と現在バスケット費用になります。消費者物価指数は、現在費用を基準費用で割って百倍した値です。指数が百なら、両時点のバスケット費用は同じです。百を上回れば全体として値上がり、下回れば値下がりを示します。表示する価格変化率は指数から百を引いた値なので、112.5 は基準時から 12.5 パーセントの上昇です。数量または価格が大きい品目ほど結果への影響も大きくなります。ゼロの参照額では割り算が定義できないため、基準バスケット費用は正でなければなりません。丸めは全精度で合計した後、返却値にだけ適用します。
比較結果を慎重に解釈します
算出値は入力されたバスケットの価格指数であり、必ずしも公的な全国消費者物価指数ではありません。統計機関は、価格調査、支出ウェイト、品質調整、代替規則、季節的手法、定期的な品目改定などを用います。それでも、対象範囲が明確で一貫していれば、個人用、事業用、教材用のバスケットは有用です。同じ基準年と複数の現在時点を比べる際は、品目定義と数量を変えないでください。商品がなくなった場合は、容量や品質を黙って変更せず、比較可能な代替品を選び記録します。指数の上昇は固定バスケットの費用増を示しますが、どの品目が原因か、家計の購入行動が変わったかまでは説明しません。解釈には元の価格も確認してください。本ツールは再現可能な例、社内費用の監視、ラスパイレス型指数の学習に適しています。API は1回 $0.002 で、ブラウザーではローカル実行できます。結果と一緒にバスケット仕様も保存してください。
活用例
家計バスケットを追跡する
食品、交通、住居、サービスを一貫して定義し、選択した基準期間と費用を比較します。
調達価格を監視する
固定投入量を契約時と現在の仕入価格で評価し、広範なコスト変動を要約します。
指数の考え方を教える
数量がウェイトとして働き、固定バスケットが価格変化と数量変化を分ける仕組みを示します。
よくある質問
どのような計算式を使いますか?
現在価格による固定バスケット費用を基準年価格による費用で割り、百倍します。
指数が 100 とは何を意味しますか?
現在価格と基準年価格で、バスケットの合計費用が同じであることを意味します。
時点間で数量を変えられますか?
いいえ。同じ数量を両価格に適用し、購入量の変化ではなく価格変化を測ります。
価格がゼロの品目を使えますか?
はい。ただし個別価格がゼロでも、基準年バスケットの合計費用は正でなければなりません。
公的な全国 CPI と同じですか?
必ずしも同じではありません。公的指数では標本調査、品質調整、代替などの統計処理も行われます。
利用料金はいくらですか?
API は1回 $0.002 です。ブラウザー版では同じ決定論的な計算をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/econ/cpi-from-basket \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"basket":[{"name":"Bread","quantity":10,"base_price":2,"current_price":2.5},{"name":"Milk","quantity":5,"base_price":3,"current_price":3.3},{"name":"Bus fares","quantity":20,"base_price":1.5,"current_price":1.8}]}'const res = await fetch("https://api.kit.forhosting.com/econ/cpi-from-basket", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"basket": [
{
"name": "Bread",
"quantity": 10,
"base_price": 2,
"current_price": 2.5
},
{
"name": "Milk",
"quantity": 5,
"base_price": 3,
"current_price": 3.3
},
{
"name": "Bus fares",
"quantity": 20,
"base_price": 1.5,
"current_price": 1.8
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/econ/cpi-from-basket",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"basket": [
{
"name": "Bread",
"quantity": 10,
"base_price": 2,
"current_price": 2.5
},
{
"name": "Milk",
"quantity": 5,
"base_price": 3,
"current_price": 3.3
},
{
"name": "Bus fares",
"quantity": 20,
"base_price": 1.5,
"current_price": 1.8
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/econ/cpi-from-basket", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"basket":[{"name":"Bread","quantity":10,"base_price":2,"current_price":2.5},{"name":"Milk","quantity":5,"base_price":3,"current_price":3.3},{"name":"Bus fares","quantity":20,"base_price":1.5,"current_price":1.8}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"basket":[{"name":"Bread","quantity":10,"base_price":2,"current_price":2.5},{"name":"Milk","quantity":5,"base_price":3,"current_price":3.3},{"name":"Bus fares","quantity":20,"base_price":1.5,"current_price":1.8}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/econ/cpi-from-basket", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"basket": [
{
"name": "Bread",
"quantity": 10,
"base_price": 2,
"current_price": 2.5
},
{
"name": "Milk",
"quantity": 5,
"base_price": 3,
"current_price": 3.3
},
{
"name": "Bus fares",
"quantity": 20,
"base_price": 1.5,
"current_price": 1.8
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "econ.cpi_from_basket",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |