給与明細・請求書・各種の明細

給与明細、旅費精算書、通帳やローンの明細、公共料金の請求、健診の結果、成績証明書、納品書、予約の確認書。暮らしと仕事の書類は、ほとんどが数字と日付でできています。誤りは、数字どうしが合わないことと、日付の順が逆になることです。 chaff はそれを機械で見つけます。どの数字が正しいかは chaff には分からず、元の資料が決めます。

明細でよく起きること

明細は、先月の分を写して、いくつかの数字だけを書き換えて作ることがよくあります。

誤り例
控除を直したのに差引額を直していない控除の一つを直したが、「差引支給額」は前のまま
合計が内訳の和にならない行を一つ直したが、合計を直していない
番号の 2 桁が入れ違う上では社員番号 40718、下では 40178
日付の順が逆出発日より前の帰着日、チェックインより前のチェックアウト
率が数字と合わない残高に利率を掛けた額にならない利息

読み手は必要な数字だけを見て、計算し直しません。

どのジャンルを使うか

明細のためのジャンルはありません。数字を知らせる書類(給与明細、通帳や口座の明細、請求書、健診の結果、成績証明書、会計報告)は business/report を使います。読み手に決めてもらう見積書や価格表は business/proposal を使います。数字と日付のチェックは、この 2 つでも、ほかの業務のジャンルでも同じように動きます。ジャンルで変わるのは、画面の初めの手引きと、いくつかの言葉づかいのルールです。

npx chaffjs kyuyo.md --genre business/report    kyuyo.md を報告書として見る(この 1 回だけ)
npx chaffjs init --genre business/report        このフォルダーの chaff.yaml にジャンルを書く

chaff が見ること、見ないこと

下の表は、どの行もその種類の短い文書に chaff をかけて確かめました。最後の列は、chaff が実際に出した指摘です。

書類比べるものchaff の指摘
給与明細差引支給額と、総支給額から控除を引いた額(net-amount-mismatch)「219,920円」は、総額から控除合計を引くと 219,290円 です
旅費精算書、見積書、請求書数量×単価と金額、合計と内訳(line-amount-mismatch、total-mismatch)金額「18,000円」が、数量×単価(2 × 9,500円 = 19,000円)と合いません
通帳・口座の明細今回残高と、前回残高・入金・出金(closing-balance-mismatch)「216,556円」は、初めの残高に入金を足し出金を引くと 215,656円 です
電気料金のお知らせ使用量と、指示数の差(meter-usage-mismatch)指示数の差(31,420 − 31,050 = 370)が、使用量「390kWh」と合いません
ローンの案内お支払総額と、毎月の額×回数(installment-total-mismatch)支払額を足すと 21,200円 × 36 = 763,200円 で、お支払総額 736,200円 と合いません
健診の結果BMI と、身長・体重(bmi-mismatch)「BMI 25.0」は、身長と体重からは 22.5 です
成績証明書GPA と、科目の評価・単位数(gpa-mismatch)GPA「3.80」は、科目の評価と単位数からは 3.25 です
納品書同じ行の納品数量と発注数量(delivered-over-ordered)納品数量「600枚」が、同じ行の発注数量「500枚」より多くなっています
パッキングリスト同じ行の正味重量と総重量(net-over-gross)正味重量「42.0kg」が、同じ行の総重量「40.5kg」より重くなっています
会員ランクのお知らせランクと、それを決めるポイント(tier-threshold-mismatch)ランク「ゴールド」の基準は「50,000ポイント以上」ですが、「42,400ポイント」は「シルバー」の基準に当たります
予約の確認書、旅程順に来るはずの 2 つの日付(due-before-issue)「チェックアウト」(2026年11月10日)が、「チェックイン」(2026年11月12日)より前です
どの書類でも2 通りに書いた予約番号・証券番号・社員番号(reference-number-variant)番号「PL-48231」は、「PL-48213」の隣り合う文字が入れ違っています

このチェックがまとめてどう働くか、この種類の指摘が何を言っているかは、数字と日付の食い違いにあります。

見ないことも決めてあります。

  • 文章は書き換えません。直すのは書いた人です。
  • 数字が本当かは見ません。ホテル代が本当に 19,000円 だったかは、領収書が決めます。
  • 税率、給与の決まり、値段は知りません。文書に書いた数字を、同じ文書のほかの所と比べるだけです。例外は日本語の不動産の売買の精算書で、「消費税込み」とだけ書いて税率を書いていない仲介手数料を、消費税 10% で確かめます(formula-amount-mismatch、文書の種類を決めるの property-sale)。
  • 文の中の数字は、表や名前の付いた行の数字ほどは読みません(chaff が読まないもの)。

かけてみる

準備がまだなら、先に準備するを済ませます。次の給与明細を kyuyo.md という名前で保存しました。名前は架空のものです。

# 給与明細書(2026年10月分)

氏名:青木 春香
社員番号:40718
支給対象期間:2026年10月1日〜2026年10月31日
支給日:2026年9月25日

## 支給

| 項目 | 時間 | 単価 | 金額 |
| --- | --- | --- | --- |
| 基本給 | 160 | 1,500円 | 240,000円 |
| 残業手当 | 12 | 1,875円 | 22,500円 |
| 合計 | | | 262,500円 |

## 控除

| 項目 | 金額 |
| --- | --- |
| 所得税 | 6,420円 |
| 健康保険料 | 13,000円 |
| 厚生年金保険料 | 23,790円 |
| 控除合計 | 43,210円 |

## 差引

- 総支給額:262,500円
- 控除合計:43,210円
- 差引支給額:219,920円

この明細についてのお問い合わせは、社員番号40178を添えて人事部までお願いします。

明細を置いたフォルダーで、次のように打ちます。

npx chaffjs kyuyo.md --genre business/report --compact    kyuyo.md を見て、指摘を 1 件ずつ短く出す
$ npx chaffjs kyuyo.md --genre business/report --compact

kyuyo.md   business/report · 日本語   ジャンルは --genre から

  6:5     error   「支給日」の 2026年9月25日 が、「支給対象期間」の始め 2026年10月1日 より前です
                  due-before-issue
  29:9    warning 「219,920円」は、総額から控除合計を引くと 219,290円 です
                  net-amount-mismatch
  31:22   warning 番号「40178」は、「40718」の隣り合う文字が入れ違っています
                  reference-number-variant

指摘 3 件、動いていない rule 69 件

指摘の意味

行指摘意味確かめる所
6due-before-issue支給日が、支給対象期間の始まりより前給与の支払いの決まり
29net-amount-mismatch262,500円 から 43,210円 を引くと 219,290円 で、219,920円 ではない控除の表と、実際に振り込んだ額
31reference-number-variant40178 は、40718 の 2 桁が入れ違ったもの社員の台帳

振り込んだ額は 219,290円 だったので、直すのは差引支給額です。ここでも 2 桁が入れ違っていました。 31 行目は、上の行ではなく社員の台帳を見て直します。入れ違えたのは、どちらの行でもあり得るからです。

ふつうは誤りでもここでは正しいとき

支給日が支給対象期間の始まりより前なら、ふつうは日付の誤りです。ただ、この会社は給与を前の月の 25 日に、その月の分を前払いするので、この日付は正しい日付です。日付のある段落のすぐ上に次の行を置き、理由を書きます。

<!-- stet: due-before-issue — 給与は前の月の 25 日に、その月の分を前払いする -->
氏名:青木 春香

stet は、その箇所の指摘を黙らせる印です。— の後に理由を書きます。 Markdown のコメントなので、明細を読む人には見えません。もう一度かけると、支給日の指摘は消え、ほかの 2 件は残ります。

$ npx chaffjs kyuyo.md --genre business/report --compact

kyuyo.md   business/report · 日本語   ジャンルは --genre から   stet 1 件

  30:9    warning 「219,920円」は、総額から控除合計を引くと 219,290円 です
                  net-amount-mismatch
  32:22   warning 番号「40178」は、「40718」の隣り合う文字が入れ違っています
                  reference-number-variant

指摘 2 件、動いていない rule 69 件

チームの給与明細がどれもこの払い方なら、明細ごとに stet を書く代わりに、チームとしてルールを変えることもできます。 npx chaffjs relax due-before-issue --why "理由" は、指摘を error から warning に下げ、実行を失敗させなくします。 npx chaffjs off due-before-issue --why "理由" は止めます。チェックアウトとチェックインのような、ほかの日付の組も一緒に止まります。どちらも理由を chaff.yaml に残します(ルールの強さを変える)。1 か所だけなら、stet の方が狭く効きます。

直したあと

差引支給額と社員番号を直し、支給日には stet を残しました。

# 給与明細書(2026年10月分)

<!-- stet: due-before-issue — 給与は前の月の 25 日に、その月の分を前払いする -->
氏名:青木 春香
社員番号:40718
支給対象期間:2026年10月1日〜2026年10月31日
支給日:2026年9月25日

## 支給

| 項目 | 時間 | 単価 | 金額 |
| --- | --- | --- | --- |
| 基本給 | 160 | 1,500円 | 240,000円 |
| 残業手当 | 12 | 1,875円 | 22,500円 |
| 合計 | | | 262,500円 |

## 控除

| 項目 | 金額 |
| --- | --- |
| 所得税 | 6,420円 |
| 健康保険料 | 13,000円 |
| 厚生年金保険料 | 23,790円 |
| 控除合計 | 43,210円 |

## 差引

- 総支給額:262,500円
- 控除合計:43,210円
- 差引支給額:219,290円

この明細についてのお問い合わせは、社員番号40718を添えて人事部までお願いします。
$ npx chaffjs kyuyo-fixed.md --genre business/report --compact

kyuyo-fixed.md   business/report · 日本語   ジャンルは --genre から   stet 1 件


指摘 0 件、動いていない rule 69 件

指摘が 0 件なのは、明細の中で数字が合っているということです。働いた時間や振り込んだ額と合っているかは、これまでどおり給与の担当が確かめます。

次に読むページ