「来年度の単価が出たら、どこを直せばいいですか」
前の版のツールには、設定画面に「単価設定(毎年度更新)」という欄があります。技師(C)の日額を入れて保存すると、時間単価が日額÷8で計算され、すべてのタブに反映されます。答えは「この欄だけ」のはずでした。
試しに、日額を43,500円にして保存します。画面の金額は変わりました。ところが一度閉じて開き直すと、欄は42,500円に戻っていました。
前回は、6つのタブの物差しを3種類にまとめるところまででした。計算の中身はこれで一通りです。今回は計算の外側。単価の更新、帳票、台帳。計算が合ったあとに残る仕事を見ていきます。
単価の欄は、画面とコードの2か所にあった
開き直したときに動く処理の中に、こう書いてありました。
// 42,500円以外の旧単価を強制上書き
const VALID_UNIT = 42500;
if (CFG.unit_day !== VALID_UNIT) {
CFG.unit_day = VALID_UNIT;
CFG.unit_hour = VALID_UNIT / 8;
}
設定はブラウザに保存されるので、前の年度の単価がパソコンごとに残ります。単価が改定された年に、古い値のまま計算されるのを防ぐために入れた処理だと思います。入れたときの経緯は、正直もう覚えていません。その年はそれで正しかったはずです。
ただ、この処理が残っている限り、画面の欄で来年の単価を入れても、次に開いたときに42,500円へ戻されます。単価を本当に変えられるのは、画面ではなくコードの中の1行でした。「毎年度更新」の欄は、1年目の修正で飾りになっていたことになります。
もう1つ、似た癖があります。台帳から過去の案件を開き直すと、登録したときの設定(単価を含む)がまるごと画面に戻ります。その案件を当時の条件で再現するには正しい動きです。ただし戻した単価はそのまま残るので、続けて新しい案件を計算すると、去年の単価で計算されます。今年は全部42,500円なので表に出ていないだけで、単価が変わった年に出てくるずれです。
単価の欄の数字が変わると、どのくらい動くのか。同じ100人・時間で、日額だけを1,000円変えてみます(43,500円は仮の値です)。
| 技師(C)日額 | 直接人件費 | 業務価格 | 委託料(税込) |
|---|---|---|---|
| 42,500円 | 531,250円 | 1,282,000円 | 1,410,200円 |
| 43,500円(仮) | 543,750円 | 1,313,000円 | 1,444,300円 |
100人・時間で3万円あまり。1件なら小さく見えますが、年度内の全部の案件に同じ向きで乗ります。
全国版では、単価・年度・出典の3つを1つの画面に置き、保存した値をコードが上書きしないようにしました。
// 設定(単価・年度):この画面だけで毎年差し替える
const CFG_DEFAULT = {
year: '令和8年度',
day: 42500,
src: '設計業務委託等技術者単価(令和8年3月から適用)技師(C)'
};
出典の欄を足したのは、単価が「いつの、どの表の値か」を数字と一緒に持たせるためです。帳票にもこの3つを出します。

帳票は、内側の紙と外に出す紙の2種類
前の版は、どのタブでも帳票を2種類出せました。
| 帳票 | 書いてあるもの | 読む人 |
|---|---|---|
| 算定書(内部用) | 人・時間から直接人件費、経費、委託料まで | 発注する側 |
| 外に出す設計書 | 業務の範囲と人・時間まで(金額は書かない) | 受ける側 |
外に出すほうは、人・時間で止めています。端数の記事で書いたとおり、前の版は人・時間を項目ごとに小数第2位で丸めてから合計する形に揃えました。そうすると、外に出した人・時間に公表されている単価と経費率を掛ければ、委託料が1円単位で再現できます。金額を書かなくても、数え方は全部見えている。帳票の側から見ると、この丸めはそのためにありました。
ところが、6つのうち1つだけ、外に出す設計書に人・時間が出てこないタブがありました。解体です。
並んでいるのは、設計対象の工事費、表から引いた標準日数、係数、そして直接人件費の金額。前回書いたとおり、解体のタブは工事費から人・日を引く別の骨組みでした。人・時間を数えていないので、外に出す紙にも人・時間が書けない。代わりに金額が出ていました。
計算の骨組みのずれは、帳票にもそのまま出ます。全国版で解体を行ごとの積み上げにすれば、外に出す紙も他のタブと同じ形に揃います。

台帳に、人・時間が残っていなかった
前の版には、計算した案件を登録する台帳がありました。登録番号、業務名称、種別、担当者、金額。Excelで開けるCSVにも出せます。
CSVの列は13本です。
| 列 | 中身 |
|---|---|
| 1〜5 | 登録番号、積算日、業務名称、施設名・所在地、業務種別 |
| 6〜8 | 建築物の類型、床面積、工事費 |
| 9〜10 | 担当者、備考 |
| 11〜13 | 業務価格、消費税、委託料 |
人・時間の列がありません。単価の列もありません。
実務では、この台帳で過去の似た案件を探して、次の案件の金額を見込む根拠にしていました。そのとき並べて比べていたのも、金額でした。
台帳の中には、入力した値と、そのときの設定がまるごと残っています。開き直して計算し直せば人・時間は出ます。ただ、表として並べたときに見えるのは金額だけです。
このブログで何度も書いてきたのは、告示第8号が数えているのは人の手間で、金額は最後に単価を掛けた結果だということでした。それなのに、自分の台帳は結果のほうだけを並べていた。去年の案件と今年の案件を比べるとき、金額の差が単価の改定によるものか、手間の見込みが変わったからなのか、この表からは分かりません。
全国版では、台帳の1行にこう残すことにします。
const row = {
hours: 316.49, // 業務人・時間数(主役)
unitDay: CFG.day, // 掛けた単価
unitSrc: CFG.src, // 単価の出典
year: CFG.year, // 年度
version: 'v0.1', // 計算したツールの版
fee: { A, B, C, Y } // 金額は結果として
};
人・時間を先に、金額を後ろに。単価と出典と版を同じ行に持たせておけば、単価が変わった年も、ツールの式を直した年も、どの数字が何に由来するかを後から辿れます。
もう1つ、前の版の台帳はネットワーク上の共有ファイルで複数のパソコンから使えるようにしていました。登録番号はパソコンごとに「手元の最大番号+1」で振っていたので、2台が同時に登録すると同じ番号ができ、合わせるときに片方が消える作りでした。全国版の試作では共有の機能は外し、ブラウザの中だけに保存します。

自分の記録に当てはめるなら
過去の設計料の記録を1件、開いてみてください。見積書でも、発注の起案でも、台帳の1行でも構いません。
そこに、人・時間と、掛けた単価が書いてありますか。
書いてあれば、単価が変わっても、去年の数字を今年の単価で読み直せます。金額しか残っていなければ、その差が手間の差なのか単価の差なのかは、計算した本人にしか分かりません。そして本人も、1年たてば覚えていません。
計算ツールの仕事は、計算が合ったところで終わりではありません。どの単価で、どの版で数えたかを、数字と一緒に残すところまでだと思っています。

計算ツールの連載は、ここで一区切りにします。次からは、PythonやSQL、データベースの学びのほうを書いていきます。勉強したことが、作っているアプリケーションのどこで効いたのか。そこに結びつけながら。
参照:設計業務委託等技術者単価(令和8年3月から適用、国土交通省)/官庁施設の設計業務等積算要領(令和6年改定・令和6年3月26日 国営整第210号)