7.11.1 条文
老齢基礎年金の額は、七十八万九百円に改定率(次条第一項の規定により設定し、同条(第一項 を除く。)から第二十七条の五までの規定により改定した率をいう。以下同じ。)を乗じて得た額
(その額に五十円未満の端数が生じたときは、これを切り捨て、五十円以上百円未満の端数が生じ たときは、これを百円に切り上げるものとする。)とする。ただし、保険料納付済期間の月数が四 百八十に満たない者に支給する場合は、当該額に、次の各号に掲げる月数を合算した月数(四百八 十を限度とする。)を四百八十で除して得た数を乗じて得た額とする。
一 保険料納付済期間の月数
二 保険料四分の一免除期間の月数(四百八十から保険料納付済期間の月数を控除して得た月数を 限度とする。)の八分の七に相当する月数
三 保険料四分の一免除期間の月数から前号に規定する保険料四分の一免除期間の月数を控除して 得た月数の八分の三に相当する月数
四 保険料半額免除期間の月数(四百八十から保険料納付済期間の月数及び保険料四分の一免除期 間の月数を合算した月数を控除して得た月数を限度とする。)の四分の三に相当する月数
五 保険料半額免除期間の月数から前号に規定する保険料半額免除期間の月数を控除して得た月数 の四分の一に相当する月数
六 保険料四分の三免除期間の月数(四百八十から保険料納付済期間の月数、保険料四分の一免除 期間の月数及び保険料半額免除期間の月数を合算した月数を控除して得た月数を限度とする。)の 八分の五に相当する月数
七 保険料四分の三免除期間の月数から前号に規定する保険料四分の三免除期間の月数を控除して 得た月数の八分の一に相当する月数
八 保険料全額免除期間(第九十条の三第一項の規定により納付することを要しないものとされた 保険料に係るものを除く。)の月数(四百八十から保険料納付済期間の月数、保険料四分の一免除 期間の月数、保険料半額免除期間の月数及び保険料四分の三免除期間の月数を合算した月数を控除 して得た月数を限度とする。)の二分の一に相当する月数
7.11.2 論理式
# f27 第二十七条 年金額 from math import *
from essentials import * # honnin_ladyA from f5 import * #第五条保険料免除期間
保険料納付済月数=月数(保険料納付済期間)
保険料四分の一免除月数=月数(保険料四分の一免除期間)
保険料半額免除月数=月数(保険料半額免除期間)
保険料四分の三免除月数=月数(保険料四分の三免除期間)
保険料全額免除月数_学生を除く=月数(保険料全額免除期間_学生を除く) a1=保険料納付済月数
a2=min(保険料四分の一免除月数,480-a1)*(7/8) a3=(保険料四分の一免除月数-a2)*(3/8)
a4=min(保険料半額免除月数,480-(保険料納付済月数+保険料四分の一免除月数))*(3/4) a5=(保険料半額免除月数-a4)*(1/4)
a6=min(保険料四分の三免除月数,
480-(保険料納付済月数+保険料四分の一免除月数+保険料半額免除月数))*(5/8) a7=(保険料四分の三免除月数-a6)*(1/8)
a8=min(保険料全額免除月数_学生を除く,
480-(保険料納付済月数+保険料四分の一免除月数+保険料半額免除月数
+保険料四分の三免除月数))*(1/2) 合算月数=a1+a2+a3+a4+a5+a6+a7+a8
減額係数=min(合算月数,480)/480
基準額=floor((780900*改定率+50)/100)*100
老齢基礎年金額=基準額 if 保険料納付済月数>=480 else 減額係数*基準額
7.11.3 検証
# v27
# 年金原簿honnin_ladyAのもとでの年金額の計算 from time import *
start=time()
from essentials import * # honnin_ladyA,definitions from f27 import *
print("保険料納付済月数",保険料納付済月数)
print("保険料四分の一免除月数",保険料四分の一免除月数) print("保険料半額免除月数",保険料半額免除月数)
print("保険料四分の三免除月数",保険料四分の三免除月数)
print("保険料全額免除月数_学生を除く",保険料全額免除月数_学生を除く) print("合算月数",合算月数)
print("減額係数",減額係数)
print("老齢基礎年金額", 老齢基礎年金額)
# 保険料納付済月数 432
# 保険料四分の一免除月数 0
# 保険料半額免除月数 12
# 保険料四分の三免除月数 0
# 保険料全額免除月数_学生を除く 0
# 合算月数 441.75
# 減額係数 0.9203125
# 老齢基礎年金額 717199.53125
# 21.02154016494751 sec
7.11.4 ノート
• 条文自身は簡単な数式に変換可能であり,論理的な観点からは難解なところはない.
• しかし,内容に関しては,奇妙なことに,条文で書かれていること,年金機構HPに書かれ いること,また,注釈書TACに書かれていることが全て異なっている.実務で運用されて いることから年金機構HPに書かれていることが正しく,条文との違いは附則として何処か に規定されている考えられるが調べてはいない.ここでは条文に忠実に論理式化を行った.
• 検証 v27では,A 女史の年金原簿 honnin_ladayA を用いている.日付けは,1900 年 1 月 1 日を起点とする日数,月数により表し,簡単化のために1年360日,1 月 30 日 としている.また,保険料免除に必要な世帯主と配偶者の収入に関する記録としては haiguusha_ladyA,setainushi_ladyAを用いている.
• v27で行われていることは、基本的にはPythonのなかでの老齢基礎年金額の計算である が,それに使われる基本データ保険料納付済月数,保険料四分の一免除月数,...などは関 数月数により充足性判定により得られたものである.月数は,保険料納付済期間,...など の月に関して述語が,月0から499のなかでTrueになる月数を数えたものである.
• 月数の定義は,定義集defintions_ladayAに与えられているが,これは小さな年金原簿 を対象にしたdefinitionsにあるナイーブなものに比べると計算効率がよいものになって いる.