2つの値の変化率を計算
この計算ツールは、新しい値が元の基準値からどれだけ変化したかを求めます。旧値と新値を入力すると、算術差、符号付きの変化率、増加・減少・変化なしの判定を返します。正の割合は基準より上への変化、負の割合は下への変化を示します。計算は決定論的で、丸める桁数を指定でき、画面上でもAPI経由でも利用できます。
無料で実行
基準値と比較値を正しく入力します
旧値は元の測定値であり、計算式の分母です。その後に新値を指定します。順序は重要です。80から100への変化は25パーセントの増加ですが、100から80への変化は20パーセントの減少です。どちらも正または負の有限値を指定できますが、旧値をゼロにはできません。ゼロ除算では有限の変化率を定義できないためです。データ上ゼロに意味がある場合は、絶対差を報告するか、その分野に適した比較規則を使用してください。小数桁は0から12まで指定でき、結果には監査しやすいよう入力値も含まれます。
符号付き割合と方向を読み取ります
新値から旧値を引き、その差を旧値で割って100を掛けます。基準が正なら、正の結果は増加、負の結果は減少、ゼロは変化なしです。算術差も同時に返されます。旧値が負の場合は注意が必要です。分母の数学的な符号により、改善や悪化という日常的な表現と一致しないことがあります。たとえば-100から-50への変化は、新値のほうが大きくても、この式では-50パーセントです。損失、温度、残高、誤差などでは、結果とともに基準の規則を明示してください。
報告と自動処理で適切に使用します
変化率は、各測定値の出発点に対する動きを表すため、尺度が異なるデータの比較に役立ちます。月間アクセス数、価格、在庫、実験指標、消費量、得点など、意味のあるゼロ以外の基準がある場面で使用してください。期間と単位は統一します。変化率とパーセントポイントを混同してはいけません。20%から25%への上昇は5ポイントですが、相対的な増加率は25%です。自動処理では入力値、差、割合、方向をまとめて保存し、丸め済みの値ではなく元データから計算してください。ブラウザーとAPIは同じ純粋なアルゴリズムを使用します。
活用例
事業指標を追跡します
売上、注文、アクセス数、在庫を前期間と比較し、変化の方向も保持します。
実験結果の動きを説明します
基準からの動きを測り、相対差と絶対差の両方を残します。
定期レポートを自動化します
ダッシュボード、通知、出力、定期要約に一貫した変化率項目を生成します。
よくある質問
どの計算式を使用しますか?
((新値 - 旧値) / 旧値) × 100を使用し、符号付きの結果を返します。
旧値をゼロにできないのはなぜですか?
旧値が分母だからです。ゼロ除算は未定義で、有限の変化率を得られません。
負の結果は何を意味しますか?
正の基準では新値が旧値より小さいことを示します。負の基準は慎重に解釈してください。
パーセントポイントの変化と同じですか?
異なります。20%から25%への変化は5ポイントですが、相対的な増加率は25%です。
APIでの計算料金はいくらですか?
APIリクエスト1回につき$0.002です。同じ決定論的計算をブラウザーでも実行できます。
丸めを調整できますか?
はい。小数桁を0から12まで指定でき、初期値は6桁です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/percent-change \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"old_value":80,"new_value":100}'const res = await fetch("https://api.kit.forhosting.com/stat/percent-change", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"old_value": 80,
"new_value": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/percent-change",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"old_value": 80,
"new_value": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/percent-change", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"old_value":80,"new_value":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"old_value":80,"new_value":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/percent-change", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"old_value": 80,
"new_value": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.percent_change",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |