給与明細・請求書・各種の明細
給与明細、旅費精算書、通帳やローンの明細、公共料金の請求、健診の結果、成績証明書、納品書、予約の確認書。暮らしと仕事の書類は、ほとんどが数字と日付でできています。誤りは、数字どうしが合わないことと、日付の順が逆になることです。 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 件
指摘の意味
| 行 | 指摘 | 意味 | 確かめる所 |
|---|---|---|---|
| 6 | due-before-issue | 支給日が、支給対象期間の始まりより前 | 給与の支払いの決まり |
| 29 | net-amount-mismatch | 262,500円 から 43,210円 を引くと 219,290円 で、219,920円 ではない | 控除の表と、実際に振り込んだ額 |
| 31 | reference-number-variant | 40178 は、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 件なのは、明細の中で数字が合っているということです。働いた時間や振り込んだ額と合っているかは、これまでどおり給与の担当が確かめます。
次に読むページ
- 数字と日付のチェックの働きと、読まないものは、数字と日付の食い違いにあります。
- 画面の読み方と、指摘への 3 つの応じ方は、はじめかたにあります。
- どのルールも、ルールの一覧で説明しています。
- ほかの種類の文書は、文書の種類ごとにできることに戻って選びます。