diff --git "a/openfisca_japan/tests/generated/\345\255\220\350\202\262\343\201\246\346\224\257\346\217\264\345\210\266\345\272\246\343\203\206\343\202\271\343\203\210.yml" "b/openfisca_japan/tests/generated/\345\255\220\350\202\262\343\201\246\346\224\257\346\217\264\345\210\266\345\272\246\343\203\206\343\202\271\343\203\210.yml" index 56cfc0f3..c3e51e64 100644 --- "a/openfisca_japan/tests/generated/\345\255\220\350\202\262\343\201\246\346\224\257\346\217\264\345\210\266\345\272\246\343\203\206\343\202\271\343\203\210.yml" +++ "b/openfisca_japan/tests/generated/\345\255\220\350\202\262\343\201\246\346\224\257\346\217\264\345\210\266\345\272\246\343\203\206\343\202\271\343\203\210.yml" @@ -6,7 +6,7 @@ 親一覧: - 親1 子一覧: [] - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -23,7 +23,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -42,7 +42,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6600000 世帯員: 親1: @@ -61,7 +61,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 8959999 世帯員: 親1: @@ -80,7 +80,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 8960000 世帯員: 親1: @@ -100,7 +100,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6979999 世帯員: 親1: @@ -122,7 +122,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6980000 世帯員: 親1: @@ -144,7 +144,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 9339999 世帯員: 親1: @@ -166,7 +166,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 9340000 世帯員: 親1: @@ -189,7 +189,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: @@ -214,7 +214,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7360000 世帯員: 親1: @@ -239,7 +239,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 9719999 世帯員: 親1: @@ -264,7 +264,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 9720000 世帯員: 親1: @@ -290,7 +290,7 @@ - 第2子 - 第3子 - 第4子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7739999 世帯員: 親1: @@ -318,7 +318,7 @@ - 第2子 - 第3子 - 第4子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7740000 世帯員: 親1: @@ -346,7 +346,7 @@ - 第2子 - 第3子 - 第4子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 10099999 世帯員: 親1: @@ -374,7 +374,7 @@ - 第2子 - 第3子 - 第4子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 10100000 世帯員: 親1: @@ -403,7 +403,7 @@ - 第3子 - 第4子 - 第5子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 8119999 世帯員: 親1: @@ -434,7 +434,7 @@ - 第3子 - 第4子 - 第5子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 8120000 世帯員: 親1: @@ -465,7 +465,7 @@ - 第3子 - 第4子 - 第5子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 10479999 世帯員: 親1: @@ -496,7 +496,7 @@ - 第3子 - 第4子 - 第5子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 10480000 世帯員: 親1: @@ -523,7 +523,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -542,7 +542,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -562,7 +562,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6979999 世帯員: 親1: @@ -585,7 +585,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: @@ -608,7 +608,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -627,7 +627,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -647,7 +647,7 @@ 子一覧: - 第1子 - 第2子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6979999 世帯員: 親1: @@ -670,7 +670,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: @@ -693,7 +693,7 @@ - 親1 子一覧: - 第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6599999 世帯員: 親1: @@ -714,7 +714,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: @@ -739,7 +739,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: @@ -764,7 +764,7 @@ - 第1子 - 第2子 - 第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 世帯員: 親1: diff --git "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" index 1248e1e8..fba8ff03 100644 --- "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" @@ -282,9 +282,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - 住民税ひとり親控除: - '2023-06-01': 300000 + 世帯員: + 親1: + 住民税ひとり親控除: + '2023-06-01': 300000 + 子1: + 住民税ひとり親控除: + '2023-06-01': 0 - name: 住民税におけるひとり親控除2 period: 2023-06-01 @@ -305,9 +309,16 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - 住民税ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税ひとり親控除: + '2023-06-01': 0 + 親2: + 住民税ひとり親控除: + '2023-06-01': 0 + 子1: + 住民税ひとり親控除: + '2023-06-01': 0 - name: 住民税におけるひとり親控除3 period: 2023-06-01 @@ -321,9 +332,10 @@ 所得: '2023-06-01': 4999999 output: - 世帯: - 住民税ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税ひとり親控除: + '2023-06-01': 0 - name: 住民税におけるひとり親控除4 period: 2023-06-01 @@ -341,9 +353,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - 住民税ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税ひとり親控除: + '2023-06-01': 0 + 子1: + 住民税ひとり親控除: + '2023-06-01': 0 - name: 住民税におけるひとり親控除(複数世帯) period: 2023-06-01 @@ -373,11 +389,17 @@ 子2: 誕生年月日: '2013-05-01' output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 住民税ひとり親控除: '2023-06-01': 300000 - 世帯2: + 子1: + 住民税ひとり親控除: + '2023-06-01': 0 + 親2: + 住民税ひとり親控除: + '2023-06-01': 0 + 子2: 住民税ひとり親控除: '2023-06-01': 0 @@ -387,17 +409,18 @@ 世帯: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯員: 親1: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000000 + 寡婦: + '2023-06-01': true output: - 世帯: - 住民税寡婦控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税寡婦控除: + '2023-06-01': 260000 - name: 住民税における寡婦控除2 period: 2023-06-01 @@ -411,9 +434,10 @@ 所得: '2023-06-01': 5000000 output: - 世帯: - 住民税寡婦控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税寡婦控除: + '2023-06-01': 0 - name: 住民税における寡婦控除3 period: 2023-06-01 @@ -421,17 +445,18 @@ 世帯: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯員: 親1: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000001 + 寡婦: + '2023-06-01': true output: - 世帯: - 住民税寡婦控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税寡婦控除: + '2023-06-01': 0 - name: 住民税における寡婦控除(複数世帯) period: 2023-06-01 @@ -440,8 +465,6 @@ 世帯1: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯2: 親一覧: - 親2 @@ -450,16 +473,18 @@ 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000000 + 寡婦: + '2023-06-01': true 親2: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000000 output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 住民税寡婦控除: '2023-06-01': 260000 - 世帯2: + 親2: 住民税寡婦控除: '2023-06-01': 0 @@ -477,9 +502,10 @@ 学生: '2023-06-01': true output: - 世帯: - 住民税勤労学生控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 260000 - name: 住民税における勤労学生控除2 period: 2023-06-01 @@ -493,9 +519,10 @@ 所得: '2023-06-01': 750000 output: - 世帯: - 住民税勤労学生控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 0 - name: 住民税における勤労学生控除3 period: 2023-06-01 @@ -511,9 +538,10 @@ 学生: '2023-06-01': true output: - 世帯: - 住民税勤労学生控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 0 - name: 住民税における勤労学生控除3 period: 2023-06-01 @@ -529,9 +557,10 @@ 学生: '2023-06-01': true output: - 世帯: - 住民税勤労学生控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 260000 - name: 住民税における勤労学生控除4 period: 2023-06-01 @@ -547,9 +576,37 @@ 学生: '2023-06-01': true output: + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 0 + +- name: 住民税における勤労学生控除5(子が控除を受ける) + period: 2023-06-01 + input: 世帯: - 住民税勤労学生控除: - '2023-06-01': 0 + 親一覧: + - 親1 + - 子1 + 世帯員: + 親1: + 誕生年月日: '1973-05-01' + 所得: + '2023-06-01': 5000000 + 子1: + 誕生年月日: '2003-05-01' + 所得: + '2023-06-01': 750000 + 学生: + '2023-06-01': true + output: + 世帯員: + 親1: + 住民税勤労学生控除: + '2023-06-01': 0 + 子1: + 住民税勤労学生控除: + '2023-06-01': 260000 - name: 住民税における勤労学生控除(複数世帯) period: 2023-06-01 @@ -573,11 +630,11 @@ 所得: '2023-06-01': 750000 output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 住民税勤労学生控除: '2023-06-01': 260000 - 世帯2: + 親2: 住民税勤労学生控除: '2023-06-01': 0 diff --git "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\350\252\277\346\225\264\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\350\252\277\346\225\264\346\216\247\351\231\244.yaml" index 103a5cb2..89bbc9d4 100644 --- "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\350\252\277\346\225\264\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\350\252\277\346\225\264\346\216\247\351\231\244.yaml" @@ -7,10 +7,6 @@ 世帯: 障害者控除: 270000 住民税障害者控除: 260000 # 差額 10000 - 勤労学生控除: 270000 - 住民税勤労学生控除: 260000 # 差額 10000 - 配偶者控除: 380000 - 住民税配偶者控除: 330000 # 差額 50000 扶養控除: 380000 住民税扶養控除: 330000 # 差額 50000 親一覧: @@ -22,6 +18,10 @@ 自分: 所得: '2023-06-01': 100000 + 配偶者控除: + '2023-06-01': 380000 + 住民税配偶者控除: + '2023-06-01': 330000 # 差額 50000 誕生年月日: '1983-01-01' 配偶者1: 所得: @@ -30,6 +30,10 @@ 子1: 所得: '2023-06-01': 10000 + 勤労学生控除: + '2023-06-01': 270000 + 住民税勤労学生控除: + '2023-06-01': 260000 # 差額 10000 誕生年月日: '2023-01-01' output: 世帯: @@ -40,8 +44,6 @@ period: 2023-06-01 input: 世帯: - 配偶者特別控除: 380000 - 住民税配偶者特別控除: 330000 # 差額 50000 親一覧: - 自分 - 配偶者1 @@ -49,6 +51,10 @@ 自分: 所得: '2023-06-01': 1000000 + 配偶者特別控除: + '2023-06-01': 380000 + 住民税配偶者特別控除: + '2023-06-01': 330000 # 差額 50000 誕生年月日: '1983-01-01' 配偶者1: 所得: @@ -63,10 +69,6 @@ period: 2023-06-01 input: 世帯: - 寡婦控除: 270000 - 住民税寡婦控除: 260000 # 差額 10000 - ひとり親控除: 350000 - 住民税ひとり親控除: 300000 # 差額 50000 親一覧: - 自分 子一覧: @@ -75,6 +77,14 @@ 自分: 所得: '2023-06-01': 0 + 寡婦控除: + '2023-06-01': 270000 + 住民税寡婦控除: + '2023-06-01': 260000 # 差額 10000 + ひとり親控除: + '2023-06-01': 350000 + 住民税ひとり親控除: + '2023-06-01': 300000 # 差額 50000 誕生年月日: '1983-01-01' 子1: 所得: @@ -91,8 +101,6 @@ period: 2023-06-01 input: 世帯: - ひとり親控除: 350000 - 住民税ひとり親控除: 300000 # 差額 50000 (例外的に10000円で計算) 親一覧: - 自分 子一覧: @@ -103,6 +111,10 @@ '2023-06-01': 0 性別: '2023-06-01': 男性 + ひとり親控除: + '2023-06-01': 350000 + 住民税ひとり親控除: + '2023-06-01': 300000 # 差額 50000 (例外的に10000円で計算) 誕生年月日: '1983-01-01' 子1: 所得: @@ -117,10 +129,6 @@ period: 2023-06-01 input: 世帯: - 寡婦控除: 270000 - 住民税寡婦控除: 260000 # 差額 10000 - ひとり親控除: 350000 - 住民税ひとり親控除: 300000 # 差額 50000 親一覧: - 自分 子一覧: @@ -129,6 +137,14 @@ 自分: 所得: '2023-06-01': 0 + 寡婦控除: + '2023-06-01': 270000 + 住民税寡婦控除: + '2023-06-01': 260000 # 差額 10000 + ひとり親控除: + '2023-06-01': 350000 + 住民税ひとり親控除: + '2023-06-01': 300000 # 差額 50000 性別: '2023-06-01': 女性 誕生年月日: '1983-01-01' @@ -190,10 +206,6 @@ 世帯1: 障害者控除: 270000 住民税障害者控除: 260000 # 差額 10000 - 勤労学生控除: 270000 - 住民税勤労学生控除: 260000 # 差額 10000 - 配偶者控除: 380000 - 住民税配偶者控除: 330000 # 差額 50000 扶養控除: 380000 住民税扶養控除: 330000 # 差額 50000 親一覧: @@ -209,6 +221,14 @@ 自分1: 所得: '2023-06-01': 100000 + 勤労学生控除: + '2023-06-01': 270000 + 住民税勤労学生控除: + '2023-06-01': 260000 # 差額 10000 + 配偶者控除: + '2023-06-01': 380000 + 住民税配偶者控除: + '2023-06-01': 330000 # 差額 50000 誕生年月日: '1983-01-01' 配偶者1: 所得: @@ -307,15 +327,11 @@ input: 世帯一覧: 世帯1: - ひとり親控除: 350000 - 住民税ひとり親控除: 300000 # 差額 50000 (例外的に10000円で計算) 親一覧: - 親1_1 子一覧: - 子1_1 世帯2: - 配偶者特別控除: 380000 - 住民税配偶者特別控除: 330000 # 差額 50000 親一覧: - 親2_1 - 親2_2 @@ -323,6 +339,10 @@ 親1_1: 所得: '2023-06-01': 0 + ひとり親控除: + '2023-06-01': 350000 + 住民税ひとり親控除: + '2023-06-01': 300000 # 差額 50000 (例外的に10000円で計算) 性別: '2023-06-01': 男性 誕生年月日: '1983-01-01' @@ -333,6 +353,10 @@ 親2_1: 所得: '2023-06-01': 1000000 + 配偶者特別控除: + '2023-06-01': 380000 + 住民税配偶者特別控除: + '2023-06-01': 330000 # 差額 50000 誕生年月日: '1983-01-01' 親2_2: 所得: diff --git "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" index 979f3dc5..60327ddd 100644 --- "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" @@ -16,9 +16,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 330000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 330000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除2 period: 2023-06-01 @@ -37,9 +41,13 @@ '2023-06-01': 480001 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -60,9 +68,13 @@ '2023-06-01': 480000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 220000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 220000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除4 period: 2023-06-01 @@ -81,9 +93,13 @@ '2023-06-01': 480000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 220000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 220000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除5 period: 2023-06-01 @@ -102,9 +118,13 @@ '2023-06-01': 480000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除6 period: 2023-06-01 @@ -123,9 +143,13 @@ '2023-06-01': 480000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除7 period: 2023-06-01 @@ -144,9 +168,13 @@ '2023-06-01': 480000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 # 配偶者所得(老人控除対象)の境界値テスト - name: 住民税における配偶者控除(老人控除対象)1 @@ -166,9 +194,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 380000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象)2 period: 2023-06-01 @@ -187,9 +219,13 @@ '2023-06-01': 480001 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -210,9 +246,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 260000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象)4 period: 2023-06-01 @@ -231,9 +271,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 260000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象)5 period: 2023-06-01 @@ -252,9 +296,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 130000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象)6 period: 2023-06-01 @@ -273,9 +321,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 130000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象)7 period: 2023-06-01 @@ -294,9 +346,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 # 老人控除対象の年齢の境界値テスト @@ -317,9 +373,13 @@ '2023-06-01': 480000 誕生年月日: '1954-01-01' # 69歳(2023/12/31時点) output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 330000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 330000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(老人控除対象) period: 2023-06-01 @@ -338,9 +398,13 @@ '2023-06-01': 480000 誕生年月日: '1953-12-31' # 70歳(2023/12/31時点) output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 380000 + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 # 控除対象外の場合 - name: 住民税における配偶者控除(独身) @@ -355,9 +419,10 @@ '2023-06-01': 9000000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者控除: + '2023-06-01': 0 - name: 住民税における配偶者控除(複数世帯) period: 2023-06-01 @@ -389,10 +454,16 @@ '2023-06-01': 480000 誕生年月日: '1953-12-31' # 70歳(2023/12/31時点) output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 住民税配偶者控除: '2023-06-01': 330000 - 世帯2: + 配偶者1: + 住民税配偶者控除: + '2023-06-01': 0 + 親2: 住民税配偶者控除: '2023-06-01': 380000 + 配偶者2: + 住民税配偶者控除: + '2023-06-01': 0 diff --git "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" index fb47e8cf..9e0e49d0 100644 --- "a/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\344\275\217\346\260\221\347\250\216/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" @@ -15,9 +15,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 330000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 330000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除2 period: 2023-06-01 @@ -34,9 +38,13 @@ 所得: '2023-06-01': 1000001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 310000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 310000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除3 period: 2023-06-01 @@ -53,9 +61,13 @@ 所得: '2023-06-01': 1050000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 310000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 310000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除4 period: 2023-06-01 @@ -72,9 +84,13 @@ 所得: '2023-06-01': 1050001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除5 period: 2023-06-01 @@ -91,9 +107,13 @@ 所得: '2023-06-01': 1100000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除6 period: 2023-06-01 @@ -110,9 +130,13 @@ 所得: '2023-06-01': 1100001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 210000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 210000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除7 period: 2023-06-01 @@ -129,9 +153,13 @@ 所得: '2023-06-01': 1150000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 210000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 210000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除8 period: 2023-06-01 @@ -148,9 +176,13 @@ 所得: '2023-06-01': 1150001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 160000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除9 period: 2023-06-01 @@ -167,9 +199,13 @@ 所得: '2023-06-01': 1200000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 160000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除10 period: 2023-06-01 @@ -186,9 +222,13 @@ 所得: '2023-06-01': 1200001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除11 period: 2023-06-01 @@ -205,9 +245,13 @@ 所得: '2023-06-01': 1250000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除12 period: 2023-06-01 @@ -224,9 +268,13 @@ 所得: '2023-06-01': 1250001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 60000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 60000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除13 period: 2023-06-01 @@ -243,9 +291,13 @@ 所得: '2023-06-01': 1300000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 60000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 60000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除14 period: 2023-06-01 @@ -262,9 +314,13 @@ 所得: '2023-06-01': 1300001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 30000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 30000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除15 period: 2023-06-01 @@ -281,9 +337,13 @@ 所得: '2023-06-01': 1330000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 30000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 30000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除16 period: 2023-06-01 @@ -300,9 +360,13 @@ 所得: '2023-06-01': 1330001 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -321,9 +385,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 220000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 220000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除18 period: 2023-06-01 @@ -340,9 +408,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 220000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 220000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除19 period: 2023-06-01 @@ -359,9 +431,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除20 period: 2023-06-01 @@ -378,9 +454,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除21 period: 2023-06-01 @@ -397,9 +477,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 0 + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 # 控除対象外の場合 - name: 住民税における配偶者特別控除(独身) @@ -414,9 +498,10 @@ '2023-06-01': 9000000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 住民税配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 住民税配偶者特別控除: + '2023-06-01': 0 - name: 住民税における配偶者特別控除(複数世帯) period: 2023-06-01 @@ -444,10 +529,16 @@ 所得: '2023-06-01': 1000000 output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 住民税配偶者特別控除: '2023-06-01': 330000 - 世帯2: + 配偶者1: + 住民税配偶者特別控除: + '2023-06-01': 0 + 親2: 住民税配偶者特別控除: '2023-06-01': 110000 + 配偶者2: + 住民税配偶者特別控除: + '2023-06-01': 0 diff --git "a/openfisca_japan/tests/\346\211\200\345\276\227/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\346\211\200\345\276\227/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" index c2f5dba9..bae92320 100644 --- "a/openfisca_japan/tests/\346\211\200\345\276\227/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\346\211\200\345\276\227/\345\220\204\347\250\256\346\216\247\351\231\244.yaml" @@ -282,9 +282,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - ひとり親控除: - '2023-06-01': 350000 + 世帯員: + 親1: + ひとり親控除: + '2023-06-01': 350000 + 子1: + ひとり親控除: + '2023-06-01': 0 - name: ひとり親控除2 period: 2023-06-01 @@ -305,9 +309,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + ひとり親控除: + '2023-06-01': 0 + 子1: + ひとり親控除: + '2023-06-01': 0 - name: ひとり親控除3 period: 2023-06-01 @@ -321,9 +329,10 @@ 所得: '2023-06-01': 4999999 output: - 世帯: - ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + ひとり親控除: + '2023-06-01': 0 - name: ひとり親控除4 period: 2023-06-01 @@ -341,9 +350,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - ひとり親控除: - '2023-06-01': 0 + 世帯員: + 親1: + ひとり親控除: + '2023-06-01': 0 + 子1: + ひとり親控除: + '2023-06-01': 0 - name: ひとり親控除1, 2 (複数世帯) period: 2023-06-01 @@ -376,11 +389,20 @@ 子2_1: 誕生年月日: '2013-05-01' output: - 世帯一覧: - 世帯1: + 世帯員: + 親1_1: ひとり親控除: '2023-06-01': 350000 - 世帯2: + 子1_1: + ひとり親控除: + '2023-06-01': 0 + 親2_1: + ひとり親控除: + '2023-06-01': 0 + 親2_2: + ひとり親控除: + '2023-06-01': 0 + 子2_1: ひとり親控除: '2023-06-01': 0 @@ -396,9 +418,10 @@ 親1: 誕生年月日: '1993-05-01' output: - 世帯: - 寡婦: - '2023-06-01': true + 世帯員: + 親1: + 寡婦: + '2023-06-01': true - name: 寡婦2 period: 2023-06-01 @@ -412,9 +435,10 @@ 親1: 誕生年月日: '1993-05-01' output: - 世帯: - 寡婦: - '2023-06-01': false + 世帯員: + 親1: + 寡婦: + '2023-06-01': false - name: 寡婦3 period: 2023-06-01 @@ -432,9 +456,13 @@ 子1: 誕生年月日: '2013-05-01' output: - 世帯: - 寡婦: - '2023-06-01': false + 世帯員: + 親1: + 寡婦: + '2023-06-01': false + 子1: + 寡婦: + '2023-06-01': false - name: 寡婦控除1 period: 2023-06-01 @@ -442,17 +470,18 @@ 世帯: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯員: 親1: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000000 + 寡婦: + '2023-06-01': true output: - 世帯: - 寡婦控除: - '2023-06-01': 270000 + 世帯員: + 親1: + 寡婦控除: + '2023-06-01': 270000 - name: 寡婦控除2 period: 2023-06-01 @@ -466,9 +495,10 @@ 所得: '2023-06-01': 5000000 output: - 世帯: - 寡婦控除: - '2023-06-01': 0 + 世帯員: + 親1: + 寡婦控除: + '2023-06-01': 0 - name: 寡婦控除3 period: 2023-06-01 @@ -476,17 +506,18 @@ 世帯: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯員: 親1: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000001 + 寡婦: + '2023-06-01': true output: - 世帯: - 寡婦控除: - '2023-06-01': 0 + 世帯員: + 親1: + 寡婦控除: + '2023-06-01': 0 - name: 寡婦控除(複数世帯) period: 2023-06-01 @@ -495,28 +526,28 @@ 世帯1: 親一覧: - 親1 - 寡婦: - '2023-06-01': true 世帯2: 親一覧: - 親2 - 寡婦: - '2023-06-01': true 世帯員: 親1: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000001 + 寡婦: + '2023-06-01': true 親2: 誕生年月日: '1993-05-01' 所得: '2023-06-01': 5000000 + 寡婦: + '2023-06-01': true output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 寡婦控除: '2023-06-01': 0 - 世帯2: + 親2: 寡婦控除: '2023-06-01': 270000 @@ -534,9 +565,10 @@ 学生: '2023-06-01': true output: - 世帯: - 勤労学生控除: - '2023-06-01': 270000 + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 270000 - name: 勤労学生控除2 period: 2023-06-01 @@ -550,9 +582,10 @@ 所得: '2023-06-01': 750000 output: - 世帯: - 勤労学生控除: - '2023-06-01': 0 + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 0 - name: 勤労学生控除3 period: 2023-06-01 @@ -568,9 +601,10 @@ 学生: '2023-06-01': true output: - 世帯: - 勤労学生控除: - '2023-06-01': 0 + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 0 - name: 勤労学生控除3 period: 2023-06-01 @@ -586,9 +620,10 @@ 学生: '2023-06-01': true output: - 世帯: - 勤労学生控除: - '2023-06-01': 270000 + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 270000 - name: 勤労学生控除4 period: 2023-06-01 @@ -604,9 +639,37 @@ 学生: '2023-06-01': true output: + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 0 + +- name: 勤労学生控除5(子が控除を受ける) + period: 2023-06-01 + input: 世帯: - 勤労学生控除: - '2023-06-01': 0 + 親一覧: + - 親1 + - 子1 + 世帯員: + 親1: + 誕生年月日: '1973-05-01' + 所得: + '2023-06-01': 5000000 + 子1: + 誕生年月日: '2003-05-01' + 所得: + '2023-06-01': 750000 + 学生: + '2023-06-01': true + output: + 世帯員: + 親1: + 勤労学生控除: + '2023-06-01': 0 + 子1: + 勤労学生控除: + '2023-06-01': 270000 - name: 勤労学生控除(複数世帯) period: 2023-06-01 @@ -632,10 +695,10 @@ 学生: '2023-06-01': true output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 勤労学生控除: '2023-06-01': 0 - 世帯2: + 親2: 勤労学生控除: '2023-06-01': 270000 diff --git "a/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" index 04fbead3..83af4990 100644 --- "a/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\346\216\247\351\231\244.yaml" @@ -139,9 +139,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 380000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除2 period: 2023-06-01 @@ -158,9 +162,13 @@ 所得: '2023-06-01': 480001 output: - 世帯: - 配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 0 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -179,9 +187,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除4 period: 2023-06-01 @@ -198,9 +210,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除5 period: 2023-06-01 @@ -217,9 +233,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 130000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除6 period: 2023-06-01 @@ -236,9 +256,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 130000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除7 period: 2023-06-01 @@ -255,9 +279,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 0 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 # 配偶者所得(老人控除対象)の境界値テスト @@ -278,9 +306,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者控除: - '2023-06-01': 480000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 480000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象)2 period: 2023-06-01 @@ -299,9 +331,13 @@ '2023-06-01': 480001 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 0 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -322,9 +358,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 320000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 320000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象)4 period: 2023-06-01 @@ -343,9 +383,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 320000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 320000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象)5 period: 2023-06-01 @@ -364,9 +408,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 160000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象)6 period: 2023-06-01 @@ -385,9 +433,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 160000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象)7 period: 2023-06-01 @@ -406,9 +458,13 @@ '2023-06-01': 480000 誕生年月日: '1953-05-01' # 70歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 0 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 # 老人控除対象の年齢の境界値テスト @@ -429,9 +485,13 @@ '2023-06-01': 480000 誕生年月日: '1954-01-01' # 69歳(2023/12/31時点) output: - 世帯: - 配偶者控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 380000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(老人控除対象) period: 2023-06-01 @@ -450,9 +510,13 @@ '2023-06-01': 480000 誕生年月日: '1953-12-31' # 70歳(2023/12/31時点) output: - 世帯: - 配偶者控除: - '2023-06-01': 480000 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 480000 + 配偶者1: + 配偶者控除: + '2023-06-01': 0 - name: 配偶者控除(独身) period: 2023-06-01 @@ -466,9 +530,10 @@ '2023-06-01': 9000000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 配偶者控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者控除: + '2023-06-01': 0 # 複数世帯の配偶者所得のテスト - name: 配偶者所得(複数世帯) @@ -499,10 +564,16 @@ 所得: '2023-06-01': 480000 output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 配偶者控除: '2023-06-01': 260000 - 世帯2: + 配偶者1: + 配偶者控除: + '2023-06-01': 0 + 親2: 配偶者控除: '2023-06-01': 480000 + 配偶者2: + 配偶者控除: + '2023-06-01': 0 diff --git "a/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" "b/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" index d5072d0f..b01c97d9 100644 --- "a/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" +++ "b/openfisca_japan/tests/\346\211\200\345\276\227/\351\205\215\345\201\266\350\200\205\347\211\271\345\210\245\346\216\247\351\231\244.yaml" @@ -15,9 +15,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 380000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除2 period: 2023-06-01 @@ -34,9 +38,13 @@ 所得: '2023-06-01': 950001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 360000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 360000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除3 period: 2023-06-01 @@ -53,9 +61,13 @@ 所得: '2023-06-01': 1000000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 360000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 360000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除4 period: 2023-06-01 @@ -72,9 +84,13 @@ 所得: '2023-06-01': 1000001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 310000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 310000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除5 period: 2023-06-01 @@ -91,9 +107,13 @@ 所得: '2023-06-01': 1050000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 310000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 310000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除6 period: 2023-06-01 @@ -110,9 +130,13 @@ 所得: '2023-06-01': 1050001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除7 period: 2023-06-01 @@ -129,9 +153,13 @@ 所得: '2023-06-01': 1100000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除8 period: 2023-06-01 @@ -148,9 +176,13 @@ 所得: '2023-06-01': 1100001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 210000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 210000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除9 period: 2023-06-01 @@ -167,9 +199,13 @@ 所得: '2023-06-01': 1150000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 210000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 210000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除10 period: 2023-06-01 @@ -186,9 +222,13 @@ 所得: '2023-06-01': 1150001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 160000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除11 period: 2023-06-01 @@ -205,9 +245,13 @@ 所得: '2023-06-01': 1200000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 160000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 160000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除12 period: 2023-06-01 @@ -224,9 +268,13 @@ 所得: '2023-06-01': 1200001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除13 period: 2023-06-01 @@ -243,9 +291,13 @@ 所得: '2023-06-01': 1250000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 110000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 110000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除14 period: 2023-06-01 @@ -262,9 +314,13 @@ 所得: '2023-06-01': 1250001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 60000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 60000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除15 period: 2023-06-01 @@ -281,9 +337,13 @@ 所得: '2023-06-01': 1300000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 60000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 60000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除16 period: 2023-06-01 @@ -300,9 +360,13 @@ 所得: '2023-06-01': 1300001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 30000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 30000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除17 period: 2023-06-01 @@ -319,9 +383,13 @@ 所得: '2023-06-01': 1330000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 30000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 30000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除18 period: 2023-06-01 @@ -338,9 +406,13 @@ 所得: '2023-06-01': 1330001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 0 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除19 period: 2023-06-01 @@ -357,9 +429,13 @@ 所得: '2023-06-01': 480000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 0 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除20 period: 2023-06-01 @@ -376,9 +452,13 @@ 所得: '2023-06-01': 480001 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 380000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 380000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 # 納税者本人(自分)の所得の境界値テスト @@ -397,9 +477,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除21 period: 2023-06-01 @@ -416,9 +500,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 260000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 260000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除22 period: 2023-06-01 @@ -435,9 +523,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 130000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除23 period: 2023-06-01 @@ -454,9 +546,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 130000 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 130000 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除24 period: 2023-06-01 @@ -473,9 +569,13 @@ 所得: '2023-06-01': 950000 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 0 + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 # 控除対象外の場合 - name: 配偶者特別控除(独身) @@ -490,9 +590,10 @@ '2023-06-01': 9000000 誕生年月日: '1993-05-01' # 30歳 output: - 世帯: - 配偶者特別控除: - '2023-06-01': 0 + 世帯員: + 親1: + 配偶者特別控除: + '2023-06-01': 0 - name: 配偶者特別控除1, 23 (複数世帯) period: 2023-06-01 @@ -520,10 +621,16 @@ 所得: '2023-06-01': 950000 output: - 世帯一覧: - 世帯1: + 世帯員: + 親1: 配偶者特別控除: '2023-06-01': 380000 - 世帯2: + 配偶者1: + 配偶者特別控除: + '2023-06-01': 0 + 親2: 配偶者特別控除: '2023-06-01': 130000 + 配偶者2: + 配偶者特別控除: + '2023-06-01': 0 diff --git "a/openfisca_japan/tests/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.yaml" "b/openfisca_japan/tests/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.yaml" index 58ecdaa7..198e0790 100644 --- "a/openfisca_japan/tests/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.yaml" +++ "b/openfisca_japan/tests/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.yaml" @@ -13,14 +13,14 @@ - 世帯1_第1子 - 世帯1_第2子 - 世帯1_第3子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 7359999 # 所得制限限度額未満のため児童手当給付 世帯2: 親一覧: - 世帯2_親1 子一覧: - 世帯2_第1子 - 控除後世帯高所得: + 児童手当の控除後世帯高所得: '2023-06-01': 6600000 # 所得制限限度額以上 所得上限限度額未満のため特例給付 世帯員: 世帯1_親1: diff --git "a/openfisca_japan/variables/\344\275\217\346\260\221\347\250\216.py" "b/openfisca_japan/variables/\344\275\217\346\260\221\347\250\216.py" index e6251d2c..5db3ba18 100644 --- "a/openfisca_japan/variables/\344\275\217\346\260\221\347\250\216.py" +++ "b/openfisca_japan/variables/\344\275\217\346\260\221\347\250\216.py" @@ -12,7 +12,7 @@ from openfisca_core.periods import DAY, period from openfisca_core.variables import Variable # Import the Entities specifically defined for this tax and benefit system -from openfisca_japan.entities import 世帯 +from openfisca_japan.entities import 世帯, 人物 from openfisca_japan.variables.全般 import 性別パターン # NOTE: 項目数が多い金額表は可読性の高いCSV形式としている。 @@ -83,7 +83,7 @@ def formula(対象世帯, 対象期間, parameters): class 住民税ひとり親控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "住民税におけるひとり親控除額" reference = "https://www.tax.metro.tokyo.lg.jp/kazei/kojin_ju.html#gaiyo_07" @@ -92,20 +92,22 @@ class 住民税ひとり親控除(Variable): OpenFiscaではクラス名をアプリ全体で一意にする必要があるため、先頭に「住民税」を追加。 """ - def formula_2020_01_01(対象世帯, 対象期間, parameters): - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) + def formula_2020_01_01(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) # 児童扶養手当の対象と異なり、父母の遺棄・DV等は考慮しない # (参考:児童扶養手当 https://www.city.hirakata.osaka.jp/0000026828.html) - 対象ひとり親 = (対象世帯.nb_persons(世帯.親) == 1) * (対象世帯.nb_persons(世帯.子) >= 1) + 親である = 対象人物.has_role(世帯.親) + 子である = 対象人物.has_role(世帯.子) + 対象ひとり親 = (対象人物.世帯.sum(親である) == 1) * (対象人物.世帯.sum(子である) >= 1) ひとり親控除額 = parameters(対象期間).住民税.ひとり親控除額 ひとり親控除_所得制限額 = parameters(対象期間).住民税.ひとり親控除_所得制限額 - return ひとり親控除額 * 対象ひとり親 * (世帯高所得 < ひとり親控除_所得制限額) + return 親である * ひとり親控除額 * 対象ひとり親 * (所得 < ひとり親控除_所得制限額) class 住民税寡婦控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "住民税における寡婦控除額" reference = "https://www.tax.metro.tokyo.lg.jp/kazei/kojin_ju.html#gaiyo_07" @@ -114,18 +116,18 @@ class 住民税寡婦控除(Variable): OpenFiscaではクラス名をアプリ全体で一意にする必要があるため、先頭に「住民税」を追加。 """ - def formula_2020_01_01(対象世帯, 対象期間, parameters): - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) - 寡婦 = 対象世帯("寡婦", 対象期間) + def formula_2020_01_01(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) + 寡婦 = 対象人物("寡婦", 対象期間) 寡婦控除額 = parameters(対象期間).住民税.寡婦控除額 寡婦控除_所得制限額 = parameters(対象期間).住民税.寡婦控除_所得制限額 - return 寡婦控除額 * 寡婦 * (世帯高所得 <= 寡婦控除_所得制限額) + return 寡婦控除額 * 寡婦 * (所得 <= 寡婦控除_所得制限額) class 住民税勤労学生控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "住民税における勤労学生控除" reference = "https://www.tax.metro.tokyo.lg.jp/kazei/kojin_ju.html#gaiyo_07" @@ -134,22 +136,19 @@ class 住民税勤労学生控除(Variable): OpenFiscaではクラス名をアプリ全体で一意にする必要があるため、先頭に「住民税」を追加。 """ - def formula(対象世帯, 対象期間, parameters): - # 勤労学生控除額は対象人数によらず定額そう - # https://www.city.hirakata.osaka.jp/kosodate/0000000544.html - - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) - 学生 = 対象世帯.any(対象世帯.members("学生", 対象期間)) + def formula(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) + 学生である = 対象人物("学生", 対象期間) 勤労学生控除額 = parameters(対象期間).住民税.勤労学生控除額 勤労学生_所得制限額 = parameters(対象期間).住民税.勤労学生_所得制限額 - 所得条件 = (世帯高所得 > 0) * (世帯高所得 <= 勤労学生_所得制限額) + 所得条件 = (所得 > 0) * (所得 <= 勤労学生_所得制限額) - return 所得条件 * 学生 * 勤労学生控除額 + return 所得条件 * 学生である * 勤労学生控除額 class 住民税配偶者控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "住民税における配偶者控除" reference = "https://www.city.hiroshima.lg.jp/soshiki/26/202040.html" @@ -162,49 +161,51 @@ class 住民税配偶者控除(Variable): https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1182.htm """ - def formula(対象世帯, 対象期間, parameters): + def formula(対象人物, 対象期間, _parameters): # 所得が高いほうが控除を受ける対象となる - 所得一覧 = 対象世帯.members("所得", 対象期間) - 所得降順 = 対象世帯.get_rank(対象世帯, - 所得一覧, condition=対象世帯.has_role(世帯.親)) - 納税者である = 所得降順 == 0 - 納税者の配偶者である = 所得降順 == 1 - 納税者の所得 = 対象世帯.sum(所得一覧 * 納税者である) - 納税者の配偶者の所得 = 対象世帯.sum(所得一覧 * 納税者の配偶者である) - - 納税者の所得区分 = np.select( - [納税者の所得 <= 9000000, - (納税者の所得 > 9000000) * (納税者の所得 <= 9500000), - (納税者の所得 > 9500000) * (納税者の所得 <= 10000000)], + 所得一覧 = 対象人物("所得", 対象期間) + 所得降順 = 対象人物.get_rank(対象人物.世帯, - 所得一覧, condition=対象人物.has_role(世帯.親)) + 控除対象者である = (所得降順 == 0) * 対象人物.has_role(世帯.親) + 控除対象者の配偶者である = (所得降順 == 1) * 対象人物.has_role(世帯.親) + 控除対象者の所得 = 所得一覧 * 控除対象者である + # NOTE: 異なる人物に対する値であるため、人物ではなく世帯ごとに集計(でないと「控除対象者の所得」と要素がずれてしまい計算できない) + 控除対象者の配偶者の所得 = 対象人物.世帯.sum(所得一覧 * 控除対象者の配偶者である) + + 控除対象者の所得区分 = np.select( + [控除対象者の所得 <= 9000000, + (控除対象者の所得 > 9000000) * (控除対象者の所得 <= 9500000), + (控除対象者の所得 > 9500000) * (控除対象者の所得 <= 10000000)], list(range(3)), -1).astype(int) - 納税者の配偶者の所得区分 = np.select( - [納税者の配偶者の所得 <= 480000], + 控除対象者の配偶者の所得区分 = np.select( + [控除対象者の配偶者の所得 <= 480000], [0], -1).astype(int) - 対象所得区分に該当する = (納税者の所得区分 != -1) * (納税者の配偶者の所得区分 != -1) # 控除条件 + 対象所得区分に該当する = (控除対象者の所得区分 != -1) * (控除対象者の配偶者の所得区分 != -1) # 控除条件 # NOTE: その年の12/31時点の年齢を参照 # https://www.nta.go.jp/taxes/shiraberu/taxanswer/yogo/senmon.htm#word5 該当年12月31日 = period(f"{対象期間.start.year}-12-31") - 該当年12月31日の年齢一覧 = 対象世帯.members("年齢", 該当年12月31日) - 納税者の配偶者の年齢 = 対象世帯.sum(該当年12月31日の年齢一覧 * 納税者の配偶者である) - 老人控除対象である = 納税者の配偶者の年齢 >= 70 - 老人控除対象配偶者控除額 = 老人控除対象配偶者_配偶者控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + 該当年12月31日の年齢一覧 = 対象人物("年齢", 該当年12月31日) + 控除対象者の配偶者の年齢 = 該当年12月31日の年齢一覧 * 控除対象者の配偶者である + # NOTE: 自分ではない人物についての計算のため、世帯で計算(でないと要素がずれてしまい計算できない) + 配偶者が老人控除対象である = 対象人物.世帯.sum(控除対象者の配偶者の年齢 >= 70) + 老人控除対象配偶者控除額 = 老人控除対象配偶者_配偶者控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] - 通常配偶者控除額 = 配偶者控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + 通常配偶者控除額 = 配偶者控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] - 配偶者控除額 = np.logical_not(老人控除対象である) * 通常配偶者控除額 + 老人控除対象である * 老人控除対象配偶者控除額 + 配偶者控除額 = np.logical_not(配偶者が老人控除対象である) * 通常配偶者控除額 + 配偶者が老人控除対象である * 老人控除対象配偶者控除額 - 配偶者がいる = 対象世帯.nb_persons(世帯.親) == 2 # 控除条件 + 配偶者がいる = 対象人物.世帯.sum(対象人物.has_role(世帯.親)) == 2 # 控除条件 - return 配偶者がいる * 対象所得区分に該当する * 配偶者控除額 + return 控除対象者である * 配偶者がいる * 対象所得区分に該当する * 配偶者控除額 class 住民税配偶者特別控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "住民税における配偶者特別控除" reference = "https://www.city.hiroshima.lg.jp/soshiki/26/202040.html" @@ -213,39 +214,40 @@ class 住民税配偶者特別控除(Variable): OpenFiscaではクラス名をアプリ全体で一意にする必要があるため、先頭に「住民税」を追加。 """ - def formula(対象世帯, 対象期間, parameters): + def formula(対象人物, 対象期間, _parameters): # 所得が高いほうが控除を受ける対象となる - 所得一覧 = 対象世帯.members("所得", 対象期間) - 所得降順 = 対象世帯.get_rank(対象世帯, - 所得一覧, condition=対象世帯.has_role(世帯.親)) - 納税者である = 所得降順 == 0 - 納税者の配偶者である = 所得降順 == 1 - 納税者の所得 = 対象世帯.sum(所得一覧 * 納税者である) - 納税者の配偶者の所得 = 対象世帯.sum(所得一覧 * 納税者の配偶者である) - - 納税者の所得区分 = np.select( - [納税者の所得 <= 9000000, - (納税者の所得 > 9000000) * (納税者の所得 <= 9500000), - (納税者の所得 > 9500000) * (納税者の所得 <= 10000000)], + 所得一覧 = 対象人物("所得", 対象期間) + 所得降順 = 対象人物.get_rank(対象人物.世帯, - 所得一覧, condition=対象人物.has_role(世帯.親)) + 控除対象者である = (所得降順 == 0) * 対象人物.has_role(世帯.親) + 控除対象者の配偶者である = (所得降順 == 1) * 対象人物.has_role(世帯.親) + 控除対象者の所得 = 所得一覧 * 控除対象者である + # NOTE: 異なる人物に対する値であるため、人物ではなく世帯ごとに集計(でないと「控除対象者の所得」と要素がずれてしまい計算できない) + 控除対象者の配偶者の所得 = 対象人物.世帯.sum(所得一覧 * 控除対象者の配偶者である) + + 控除対象者の所得区分 = np.select( + [控除対象者の所得 <= 9000000, + (控除対象者の所得 > 9000000) * (控除対象者の所得 <= 9500000), + (控除対象者の所得 > 9500000) * (控除対象者の所得 <= 10000000)], list(range(3)), -1).astype(int) - 納税者の配偶者の所得区分 = np.select( - [(納税者の配偶者の所得 > 480000) * (納税者の配偶者の所得 <= 1000000), - (納税者の配偶者の所得 > 1000000) * (納税者の配偶者の所得 <= 1050000), - (納税者の配偶者の所得 > 1050000) * (納税者の配偶者の所得 <= 1100000), - (納税者の配偶者の所得 > 1100000) * (納税者の配偶者の所得 <= 1150000), - (納税者の配偶者の所得 > 1150000) * (納税者の配偶者の所得 <= 1200000), - (納税者の配偶者の所得 > 1200000) * (納税者の配偶者の所得 <= 1250000), - (納税者の配偶者の所得 > 1250000) * (納税者の配偶者の所得 <= 1300000), - (納税者の配偶者の所得 > 1300000) * (納税者の配偶者の所得 <= 1330000)], + 控除対象者の配偶者の所得区分 = np.select( + [(控除対象者の配偶者の所得 > 480000) * (控除対象者の配偶者の所得 <= 1000000), + (控除対象者の配偶者の所得 > 1000000) * (控除対象者の配偶者の所得 <= 1050000), + (控除対象者の配偶者の所得 > 1050000) * (控除対象者の配偶者の所得 <= 1100000), + (控除対象者の配偶者の所得 > 1100000) * (控除対象者の配偶者の所得 <= 1150000), + (控除対象者の配偶者の所得 > 1150000) * (控除対象者の配偶者の所得 <= 1200000), + (控除対象者の配偶者の所得 > 1200000) * (控除対象者の配偶者の所得 <= 1250000), + (控除対象者の配偶者の所得 > 1250000) * (控除対象者の配偶者の所得 <= 1300000), + (控除対象者の配偶者の所得 > 1300000) * (控除対象者の配偶者の所得 <= 1330000)], list(range(8)), -1).astype(int) - 対象所得区分に該当する = (納税者の所得区分 != -1) * (納税者の配偶者の所得区分 != -1) # 控除条件 + 対象所得区分に該当する = (控除対象者の所得区分 != -1) * (控除対象者の配偶者の所得区分 != -1) # 控除条件 - 配偶者がいる = 対象世帯.nb_persons(世帯.親) == 2 # 控除条件 + 配偶者がいる = 対象人物.世帯.sum(対象人物.has_role(世帯.親)) == 2 # 控除条件 - return 配偶者がいる * 対象所得区分に該当する * 配偶者特別控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + return 控除対象者である * 配偶者がいる * 対象所得区分に該当する * 配偶者特別控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] class 住民税扶養控除(Variable): @@ -320,16 +322,21 @@ class 控除後住民税世帯高所得(Variable): label = "住民税計算において、各種控除が適用された後の世帯高所得額" reference = "https://www.town.hinode.tokyo.jp/0000000516.html" - def formula(対象世帯, 対象期間, parameters): + def formula(対象世帯, 対象期間, _parameters): # TODO: 社会保険料を追加 世帯高所得 = 対象世帯("世帯高所得", 対象期間) - 配偶者控除 = 対象世帯("住民税配偶者控除", 対象期間) - 配偶者特別控除 = 対象世帯("住民税配偶者特別控除", 対象期間) + 配偶者控除一覧 = 対象世帯.members("住民税配偶者控除", 対象期間) + 配偶者控除 = 対象世帯.sum(配偶者控除一覧) + 配偶者特別控除一覧 = 対象世帯.members("住民税配偶者特別控除", 対象期間) + 配偶者特別控除 = 対象世帯.sum(配偶者特別控除一覧) 扶養控除 = 対象世帯("住民税扶養控除", 対象期間) 障害者控除 = 対象世帯("住民税障害者控除", 対象期間) - ひとり親控除 = 対象世帯("住民税ひとり親控除", 対象期間) - 寡婦控除 = 対象世帯("住民税寡婦控除", 対象期間) - 勤労学生控除 = 対象世帯("住民税勤労学生控除", 対象期間) + ひとり親控除一覧 = 対象世帯.members("住民税ひとり親控除", 対象期間) + ひとり親控除 = 対象世帯.sum(ひとり親控除一覧) + 寡婦控除一覧 = 対象世帯.members("住民税寡婦控除", 対象期間) + 寡婦控除 = 対象世帯.sum(寡婦控除一覧) + 勤労学生控除一覧 = 対象世帯.members("住民税勤労学生控除", 対象期間) + 勤労学生控除 = 対象世帯.sum(勤労学生控除一覧) 基礎控除 = 対象世帯("住民税基礎控除", 対象期間) # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する @@ -379,19 +386,29 @@ class 人的控除額の差(Variable): 例外についての詳細は https://www.town.hinode.tokyo.jp/0000000519.html も参考になる """ - def formula(対象世帯, 対象期間, parameters): + def formula(対象世帯, 対象期間, _parameters): 障害者控除差額 = 対象世帯("障害者控除", 対象期間) - 対象世帯("住民税障害者控除", 対象期間) - 寡婦控除差額 = 対象世帯("寡婦控除", 対象期間) - 対象世帯("住民税寡婦控除", 対象期間) - 勤労学生控除差額 = 対象世帯("勤労学生控除", 対象期間) - 対象世帯("住民税勤労学生控除", 対象期間) - 配偶者控除差額 = 対象世帯("配偶者控除", 対象期間) - 対象世帯("住民税配偶者控除", 対象期間) - 配偶者特別控除差額 = 対象世帯("配偶者特別控除", 対象期間) - 対象世帯("住民税配偶者特別控除", 対象期間) + 寡婦控除一覧 = 対象世帯.members("寡婦控除", 対象期間) + 住民税寡婦控除一覧 = 対象世帯.members("住民税寡婦控除", 対象期間) + 寡婦控除差額 = 対象世帯.sum(寡婦控除一覧 - 住民税寡婦控除一覧) + 勤労学生控除一覧 = 対象世帯.members("勤労学生控除", 対象期間) + 住民税勤労学生控除一覧 = 対象世帯.members("住民税勤労学生控除", 対象期間) + 勤労学生控除差額 = 対象世帯.sum(勤労学生控除一覧 - 住民税勤労学生控除一覧) + 配偶者控除一覧 = 対象世帯.members("配偶者控除", 対象期間) + 住民税配偶者控除一覧 = 対象世帯.members("住民税配偶者控除", 対象期間) + 配偶者控除差額 = 対象世帯.sum(配偶者控除一覧 - 住民税配偶者控除一覧) + 配偶者特別控除一覧 = 対象世帯.members("配偶者特別控除", 対象期間) + 住民税配偶者特別控除一覧 = 対象世帯.members("住民税配偶者特別控除", 対象期間) + 配偶者特別控除差額 = 対象世帯.sum(配偶者特別控除一覧 - 住民税配偶者特別控除一覧) 扶養控除差額 = 対象世帯("扶養控除", 対象期間) - 対象世帯("住民税扶養控除", 対象期間) # NOTE: 以下は実際の差額とは異なる計算式を使用 https://www.town.hinode.tokyo.jp/0000000519.html 世帯高所得 = 対象世帯("世帯高所得", 対象期間) 基礎控除差額 = np.where(世帯高所得 <= 25000000, 50000, 0) - 通常ひとり親控除差額 = 対象世帯("ひとり親控除", 対象期間) - 対象世帯("住民税ひとり親控除", 対象期間) + 通常ひとり親控除差額一覧 = 対象世帯.members("ひとり親控除", 対象期間) + 住民税通常ひとり親控除差額一覧 = 対象世帯.members("住民税ひとり親控除", 対象期間) + 通常ひとり親控除差額 = 対象世帯.sum(通常ひとり親控除差額一覧 - 住民税通常ひとり親控除差額一覧) # ひとり親(父)の場合のみ差額が異なる 性別一覧 = 対象世帯.members("性別", 対象期間) 親である = 対象世帯.has_role(世帯.親) diff --git "a/openfisca_japan/variables/\346\211\200\345\276\227\347\250\216.py" "b/openfisca_japan/variables/\346\211\200\345\276\227\347\250\216.py" index dbaaa918..0e3f3ab2 100644 --- "a/openfisca_japan/variables/\346\211\200\345\276\227\347\250\216.py" +++ "b/openfisca_japan/variables/\346\211\200\345\276\227\347\250\216.py" @@ -177,36 +177,38 @@ def formula(対象人物, 対象期間, parameters): class ひとり親控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "ひとり親控除額" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1171.htm" - def formula_2020_01_01(対象世帯, 対象期間, parameters): - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) + def formula_2020_01_01(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) # 児童扶養手当の対象と異なり、父母の遺棄・DV等は考慮しない # (参考:児童扶養手当 https://www.city.hirakata.osaka.jp/0000026828.html) - 対象ひとり親 = (対象世帯.nb_persons(世帯.親) == 1) * (対象世帯.nb_persons(世帯.子) >= 1) + 親である = 対象人物.has_role(世帯.親) + 子である = 対象人物.has_role(世帯.子) + 対象ひとり親 = (対象人物.世帯.sum(親である) == 1) * (対象人物.世帯.sum(子である) >= 1) ひとり親控除額 = parameters(対象期間).所得.ひとり親控除額 ひとり親控除_所得制限額 = parameters(対象期間).所得.ひとり親控除_所得制限額 - return ひとり親控除額 * 対象ひとり親 * (世帯高所得 < ひとり親控除_所得制限額) + return 親である * ひとり親控除額 * 対象ひとり親 * (所得 < ひとり親控除_所得制限額) class 寡婦控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "寡婦控除額" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1170.htm" - def formula_2020_01_01(対象世帯, 対象期間, parameters): - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) - 寡婦 = 対象世帯("寡婦", 対象期間) + def formula_2020_01_01(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) + 寡婦 = 対象人物("寡婦", 対象期間) 寡婦控除額 = parameters(対象期間).所得.寡婦控除額 寡婦控除_所得制限額 = parameters(対象期間).所得.寡婦控除_所得制限額 - return 寡婦控除額 * 寡婦 * (世帯高所得 <= 寡婦控除_所得制限額) + return 寡婦控除額 * 寡婦 * (所得 <= 寡婦控除_所得制限額) class 学生(Variable): @@ -220,22 +222,19 @@ class 学生(Variable): class 勤労学生控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "勤労学生控除" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1175.htm" - def formula(対象世帯, 対象期間, parameters): - # 勤労学生控除額は対象人数によらず定額そう - # https://www.city.hirakata.osaka.jp/kosodate/0000000544.html - - 世帯高所得 = 対象世帯("世帯高所得", 対象期間) - 学生 = 対象世帯.any(対象世帯.members("学生", 対象期間)) + def formula(対象人物, 対象期間, parameters): + 所得 = 対象人物("所得", 対象期間) + 学生である = 対象人物("学生", 対象期間) 勤労学生控除額 = parameters(対象期間).所得.勤労学生控除額 勤労学生_所得制限額 = parameters(対象期間).所得.勤労学生_所得制限額 - 所得条件 = (世帯高所得 > 0) * (世帯高所得 <= 勤労学生_所得制限額) + 所得条件 = (所得 > 0) * (所得 <= 勤労学生_所得制限額) - return 所得条件 * 学生 * 勤労学生控除額 + return 所得条件 * 学生である * 勤労学生控除額 class 同一生計配偶者である(Variable): @@ -258,7 +257,7 @@ def formula(対象人物, 対象期間, parameters): class 配偶者控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "配偶者控除" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1191.htm" @@ -267,91 +266,94 @@ class 配偶者控除(Variable): 配偶者の所得が配偶者控除の所得制限を超えた場合でも、配偶者特別控除が適用される可能性がある。 """ - def formula(対象世帯, 対象期間, parameters): + def formula(対象人物, 対象期間, parameters): # 所得が高いほうが控除を受ける対象となる - 所得一覧 = 対象世帯.members("所得", 対象期間) - 所得降順 = 対象世帯.get_rank(対象世帯, - 所得一覧, condition=対象世帯.has_role(世帯.親)) - 納税者である = 所得降順 == 0 - 納税者の配偶者である = 所得降順 == 1 - 納税者の所得 = 対象世帯.sum(所得一覧 * 納税者である) - 納税者の配偶者の所得 = 対象世帯.sum(所得一覧 * 納税者の配偶者である) + 所得一覧 = 対象人物("所得", 対象期間) + 所得降順 = 対象人物.get_rank(対象人物.世帯, - 所得一覧, condition=対象人物.has_role(世帯.親)) + 控除対象者である = (所得降順 == 0) * 対象人物.has_role(世帯.親) + 控除対象者の配偶者である = (所得降順 == 1) * 対象人物.has_role(世帯.親) + 控除対象者の所得 = 所得一覧 * 控除対象者である + # NOTE: 異なる人物に対する値であるため、人物ではなく世帯ごとに集計(でないと「控除対象者の所得」と要素がずれてしまい計算できない) + 控除対象者の配偶者の所得 = 対象人物.世帯.sum(所得一覧 * 控除対象者の配偶者である) # 複数世帯の前世帯員のうち、自分または配偶者のroleをもつ世帯員がTrueのarray - 所得一覧 = 対象世帯.members("所得", 対象期間) # (全世帯員数)の長さのarray + 所得一覧 = 対象人物("所得", 対象期間) # (全世帯員数)の長さのarray 同一生計配偶者_所得制限額 = parameters(対象期間).所得.同一生計配偶者_所得制限額 - 納税者の配偶者の所得区分 = np.select( - [納税者の配偶者の所得 <= 同一生計配偶者_所得制限額], + 控除対象者の配偶者の所得区分 = np.select( + [控除対象者の配偶者の所得 <= 同一生計配偶者_所得制限額], [0], -1).astype(int) # intにできるようデフォルトをNoneではなく-1 - 納税者の所得区分 = np.select( - [納税者の所得 <= 9000000, - (納税者の所得 > 9000000) * (納税者の所得 <= 9500000), - (納税者の所得 > 9500000) * (納税者の所得 <= 10000000)], # 複数世帯のarrayのためand, orの代わりに *. + + 控除対象者の所得区分 = np.select( + [控除対象者の所得 <= 9000000, + (控除対象者の所得 > 9000000) * (控除対象者の所得 <= 9500000), + (控除対象者の所得 > 9500000) * (控除対象者の所得 <= 10000000)], # 複数世帯のarrayのためand, orの代わりに *. + list(range(3)), -1).astype(int) # intにできるようデフォルトをNoneではなく-1 - 対象所得区分に該当する = (納税者の所得区分 != -1) * (納税者の配偶者の所得区分 != -1) # 控除条件 + 対象所得区分に該当する = (控除対象者の所得区分 != -1) * (控除対象者の配偶者の所得区分 != -1) # 控除条件 # NOTE: その年の12/31時点の年齢を参照 # https://www.nta.go.jp/taxes/shiraberu/taxanswer/yogo/senmon.htm#word5 該当年12月31日 = period(f"{対象期間.start.year}-12-31") - 該当年12月31日の年齢一覧 = 対象世帯.members("年齢", 該当年12月31日) - 納税者の配偶者の年齢 = 対象世帯.sum(該当年12月31日の年齢一覧 * 納税者の配偶者である) - 老人控除対象である = 納税者の配偶者の年齢 >= 70 - 老人控除対象配偶者控除額 = 老人控除対象配偶者_配偶者控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + 該当年12月31日の年齢一覧 = 対象人物("年齢", 該当年12月31日) + 控除対象者の配偶者の年齢 = 該当年12月31日の年齢一覧 * 控除対象者の配偶者である + # NOTE: 自分ではない人物についての計算のため、世帯で計算(でないと要素がずれてしまい計算できない) + 配偶者が老人控除対象である = 対象人物.世帯.sum(控除対象者の配偶者の年齢 >= 70) + 老人控除対象配偶者控除額 = 老人控除対象配偶者_配偶者控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] - 通常配偶者控除額 = 配偶者控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + 通常配偶者控除額 = 配偶者控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] - 配偶者控除額 = np.logical_not(老人控除対象である) * 通常配偶者控除額 + 老人控除対象である * 老人控除対象配偶者控除額 + 配偶者控除額 = np.logical_not(配偶者が老人控除対象である) * 通常配偶者控除額 + 配偶者が老人控除対象である * 老人控除対象配偶者控除額 - 配偶者がいる = 対象世帯.nb_persons(世帯.親) == 2 # 控除条件 + 配偶者がいる = 対象人物.世帯.sum(対象人物.has_role(世帯.親)) == 2 # 控除条件 - return 配偶者がいる * 対象所得区分に該当する * 配偶者控除額 + return 控除対象者である * 配偶者がいる * 対象所得区分に該当する * 配偶者控除額 class 配偶者特別控除(Variable): value_type = float - entity = 世帯 + entity = 人物 definition_period = DAY label = "配偶者特別控除" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1195.htm" - def formula(対象世帯, 対象期間, parameters): + def formula(対象人物, 対象期間, _parameters): # 所得が高いほうが控除を受ける対象となる - 所得一覧 = 対象世帯.members("所得", 対象期間) - 所得降順 = 対象世帯.get_rank(対象世帯, - 所得一覧, condition=対象世帯.has_role(世帯.親)) - 納税者である = 所得降順 == 0 - 納税者の配偶者である = 所得降順 == 1 - 納税者の所得 = 対象世帯.sum(所得一覧 * 納税者である) - 納税者の配偶者の所得 = 対象世帯.sum(所得一覧 * 納税者の配偶者である) - - 納税者の所得区分 = np.select( - [納税者の所得 <= 9000000, - (納税者の所得 > 9000000) * (納税者の所得 <= 9500000), - (納税者の所得 > 9500000) * (納税者の所得 <= 10000000)], + 所得一覧 = 対象人物("所得", 対象期間) + 所得降順 = 対象人物.get_rank(対象人物.世帯, - 所得一覧, condition=対象人物.has_role(世帯.親)) + 控除対象者である = (所得降順 == 0) * 対象人物.has_role(世帯.親) + 控除対象者の配偶者である = (所得降順 == 1) * 対象人物.has_role(世帯.親) + 控除対象者の所得 = 所得一覧 * 控除対象者である + # NOTE: 異なる人物に対する値であるため、人物ではなく世帯ごとに集計(でないと「控除対象者の所得」と要素がずれてしまい計算できない) + 控除対象者の配偶者の所得 = 対象人物.世帯.sum(所得一覧 * 控除対象者の配偶者である) + + 控除対象者の所得区分 = np.select( + [控除対象者の所得 <= 9000000, + (控除対象者の所得 > 9000000) * (控除対象者の所得 <= 9500000), + (控除対象者の所得 > 9500000) * (控除対象者の所得 <= 10000000)], list(range(3)), -1).astype(int) - 納税者の配偶者の所得区分 = np.select( - [(納税者の配偶者の所得 > 480000) * (納税者の配偶者の所得 <= 950000), - (納税者の配偶者の所得 > 950000) * (納税者の配偶者の所得 <= 1000000), - (納税者の配偶者の所得 > 1000000) * (納税者の配偶者の所得 <= 1050000), - (納税者の配偶者の所得 > 1050000) * (納税者の配偶者の所得 <= 1100000), - (納税者の配偶者の所得 > 1100000) * (納税者の配偶者の所得 <= 1150000), - (納税者の配偶者の所得 > 1150000) * (納税者の配偶者の所得 <= 1200000), - (納税者の配偶者の所得 > 1200000) * (納税者の配偶者の所得 <= 1250000), - (納税者の配偶者の所得 > 1250000) * (納税者の配偶者の所得 <= 1300000), - (納税者の配偶者の所得 > 1300000) * (納税者の配偶者の所得 <= 1330000)], + 控除対象者の配偶者の所得区分 = np.select( + [(控除対象者の配偶者の所得 > 480000) * (控除対象者の配偶者の所得 <= 950000), + (控除対象者の配偶者の所得 > 950000) * (控除対象者の配偶者の所得 <= 1000000), + (控除対象者の配偶者の所得 > 1000000) * (控除対象者の配偶者の所得 <= 1050000), + (控除対象者の配偶者の所得 > 1050000) * (控除対象者の配偶者の所得 <= 1100000), + (控除対象者の配偶者の所得 > 1100000) * (控除対象者の配偶者の所得 <= 1150000), + (控除対象者の配偶者の所得 > 1150000) * (控除対象者の配偶者の所得 <= 1200000), + (控除対象者の配偶者の所得 > 1200000) * (控除対象者の配偶者の所得 <= 1250000), + (控除対象者の配偶者の所得 > 1250000) * (控除対象者の配偶者の所得 <= 1300000), + (控除対象者の配偶者の所得 > 1300000) * (控除対象者の配偶者の所得 <= 1330000)], list(range(9)), -1).astype(int) - 対象所得区分に該当する = (納税者の所得区分 != -1) * (納税者の配偶者の所得区分 != -1) # 控除条件 + 対象所得区分に該当する = (控除対象者の所得区分 != -1) * (控除対象者の配偶者の所得区分 != -1) # 控除条件 - 配偶者がいる = 対象世帯.nb_persons(世帯.親) == 2 # 控除条件 + 配偶者がいる = 対象人物.世帯.sum(対象人物.has_role(世帯.親)) == 2 # 控除条件 - return 配偶者がいる * 対象所得区分に該当する * 配偶者特別控除額表()[納税者の配偶者の所得区分, 納税者の所得区分] + return 控除対象者である * 配偶者がいる * 対象所得区分に該当する * 配偶者特別控除額表()[控除対象者の配偶者の所得区分, 控除対象者の所得区分] class 扶養控除(Variable): @@ -432,6 +434,33 @@ class 控除後世帯高所得(Variable): label = "各種控除が適用された後の世帯高所得額" reference = "https://www.city.himeji.lg.jp/waku2child/0000013409.html" + def formula(対象世帯, 対象期間, parameters): + 世帯高所得 = 対象世帯("世帯高所得", 対象期間) + 社会保険料 = parameters(対象期間).所得.社会保険料相当額 + 給与所得及び雑所得からの控除額 = parameters(対象期間).所得.給与所得及び雑所得からの控除額 + 障害者控除 = 対象世帯("障害者控除", 対象期間) + ひとり親控除一覧 = 対象世帯.members("ひとり親控除", 対象期間) + ひとり親控除 = 対象世帯.sum(ひとり親控除一覧) + 寡婦控除一覧 = 対象世帯.members("寡婦控除", 対象期間) + 寡婦控除 = 対象世帯.sum(寡婦控除一覧) + 勤労学生控除一覧 = 対象世帯.members("勤労学生控除", 対象期間) + 勤労学生控除 = 対象世帯.sum(勤労学生控除一覧) + + # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する + + 総控除額 = 社会保険料 + 給与所得及び雑所得からの控除額 + 障害者控除 + ひとり親控除 + 寡婦控除 + 勤労学生控除 + + # 負の数にならないよう、0円未満になった場合は0円に補正 + return np.clip(世帯高所得 - 総控除額, 0.0, None) + + +class 児童手当の控除後世帯高所得(Variable): + value_type = float + entity = 世帯 + definition_period = DAY + label = "各種控除が適用された後の児童手当における世帯高所得額" + reference = "https://www.city.himeji.lg.jp/waku2child/0000013409.html" + def formula(対象世帯, 対象期間, parameters): # TODO: 所得税等の計算にも使用する場合、配偶者控除等も考慮する(現在の実装は児童手当の世帯高所得額) # https://www.nta.go.jp/publication/pamph/koho/kurashi/html/01_1.htm @@ -440,9 +469,12 @@ def formula(対象世帯, 対象期間, parameters): 社会保険料 = parameters(対象期間).所得.社会保険料相当額 給与所得及び雑所得からの控除額 = parameters(対象期間).所得.給与所得及び雑所得からの控除額 障害者控除 = 対象世帯("障害者控除", 対象期間) - ひとり親控除 = 対象世帯("ひとり親控除", 対象期間) - 寡婦控除 = 対象世帯("寡婦控除", 対象期間) - 勤労学生控除 = 対象世帯("勤労学生控除", 対象期間) + ひとり親控除一覧 = 対象世帯.members("ひとり親控除", 対象期間) + ひとり親控除 = 対象世帯.sum(ひとり親控除一覧) + 寡婦控除一覧 = 対象世帯.members("寡婦控除", 対象期間) + 寡婦控除 = 対象世帯.sum(寡婦控除一覧) + 勤労学生控除一覧 = 対象世帯.members("勤労学生控除", 対象期間) + 勤労学生控除 = 対象世帯.sum(勤労学生控除一覧) # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する @@ -464,8 +496,10 @@ def formula(対象世帯, 対象期間, parameters): 社会保険料 = parameters(対象期間).所得.社会保険料相当額 給与所得及び雑所得からの控除額 = parameters(対象期間).所得.給与所得及び雑所得からの控除額 障害者控除 = 対象世帯("障害者控除", 対象期間) - 勤労学生控除 = 対象世帯("勤労学生控除", 対象期間) - 配偶者特別控除 = 対象世帯("配偶者特別控除", 対象期間) + 勤労学生控除一覧 = 対象世帯.members("勤労学生控除", 対象期間) + 勤労学生控除 = 対象世帯.sum(勤労学生控除一覧) + 配偶者特別控除一覧 = 対象世帯.members("配偶者特別控除", 対象期間) + 配偶者特別控除 = 対象世帯.sum(配偶者特別控除一覧) # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する # 養育者が児童の父母の場合は寡婦控除・ひとり親控除は加えられない @@ -488,10 +522,14 @@ def formula(対象世帯, 対象期間, parameters): 社会保険料 = parameters(対象期間).所得.社会保険料相当額 給与所得及び雑所得からの控除額 = parameters(対象期間).所得.給与所得及び雑所得からの控除額 障害者控除 = 対象世帯("障害者控除", 対象期間) - 勤労学生控除 = 対象世帯("勤労学生控除", 対象期間) - ひとり親控除 = 対象世帯("ひとり親控除", 対象期間) - 寡婦控除 = 対象世帯("寡婦控除", 対象期間) - 配偶者特別控除 = 対象世帯("配偶者特別控除", 対象期間) + 勤労学生控除一覧 = 対象世帯.members("勤労学生控除", 対象期間) + 勤労学生控除 = 対象世帯.sum(勤労学生控除一覧) + ひとり親控除一覧 = 対象世帯.members("ひとり親控除", 対象期間) + ひとり親控除 = 対象世帯.sum(ひとり親控除一覧) + 寡婦控除一覧 = 対象世帯.members("寡婦控除", 対象期間) + 寡婦控除 = 対象世帯.sum(寡婦控除一覧) + 配偶者特別控除一覧 = 対象世帯.members("配偶者特別控除", 対象期間) + 配偶者特別控除 = 対象世帯.sum(配偶者特別控除一覧) # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する diff --git "a/openfisca_japan/variables/\346\235\261\344\272\254\351\203\275/\347\246\217\347\245\211/\351\207\215\345\272\246\345\277\203\350\272\253\351\232\234\345\256\263\350\200\205\346\211\213\345\275\223.py" "b/openfisca_japan/variables/\346\235\261\344\272\254\351\203\275/\347\246\217\347\245\211/\351\207\215\345\272\246\345\277\203\350\272\253\351\232\234\345\256\263\350\200\205\346\211\213\345\275\223.py" index 5eef078a..f56d92b7 100644 --- "a/openfisca_japan/variables/\346\235\261\344\272\254\351\203\275/\347\246\217\347\245\211/\351\207\215\345\272\246\345\277\203\350\272\253\351\232\234\345\256\263\350\200\205\346\211\213\345\275\223.py" +++ "b/openfisca_japan/variables/\346\235\261\344\272\254\351\203\275/\347\246\217\347\245\211/\351\207\215\345\272\246\345\277\203\350\272\253\351\232\234\345\256\263\350\200\205\346\211\213\345\275\223.py" @@ -116,7 +116,7 @@ def formula(対象人物, 対象期間, parameters): 給与所得及び雑所得からの控除額 = parameters(対象期間).所得.給与所得及び雑所得からの控除額 社会保険料控除 = np.where(np.logical_not(本人所得を参照), parameters(対象期間).所得.社会保険料相当額, 0) # 上限33万円 - 配偶者特別控除 = np.clip(対象人物.世帯("配偶者特別控除", 対象期間), 0, 330000) + 配偶者特別控除 = np.clip(対象人物("配偶者特別控除", 対象期間), 0, 330000) 障害者控除 = 対象人物.世帯("障害者控除", 対象期間) @@ -132,9 +132,9 @@ def formula(対象人物, 対象期間, parameters): # TODO: 同居特別障害者の場合も通常の特別障害者と同じ額に補正する必要がある? # 単純に記載を省略しているだけの可能性もあり (https://www.fukushi.metro.tokyo.lg.jp/shinsho/teate/toku_shou.html で国の制度を照会しているが同居特別障害者の記載はない) - 寡婦控除 = 対象人物.世帯("寡婦控除", 対象期間) - ひとり親控除 = 対象人物.世帯("ひとり親控除", 対象期間) - 勤労学生控除 = 対象人物.世帯("勤労学生控除", 対象期間) + 寡婦控除 = 対象人物("寡婦控除", 対象期間) + ひとり親控除 = 対象人物("ひとり親控除", 対象期間) + 勤労学生控除 = 対象人物("勤労学生控除", 対象期間) # 他の控除(雑損控除・医療費控除等)は定額でなく実費を元に算出するため除外する 控除総額 = 給与所得及び雑所得からの控除額 + 社会保険料控除 + 配偶者特別控除 + 障害者控除 + 寡婦控除 + ひとり親控除 + 勤労学生控除 diff --git "a/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\343\201\262\343\201\250\343\202\212\350\246\252.py" "b/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\343\201\262\343\201\250\343\202\212\350\246\252.py" index c2ee4a28..e61f996e 100644 --- "a/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\343\201\262\343\201\250\343\202\212\350\246\252.py" +++ "b/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\343\201\262\343\201\250\343\202\212\350\246\252.py" @@ -4,7 +4,7 @@ from openfisca_core.periods import DAY from openfisca_core.variables import Variable -from openfisca_japan.entities import 世帯 +from openfisca_japan.entities import 世帯, 人物 class 配偶者がいるがひとり親に該当(Variable): @@ -46,11 +46,12 @@ class 夫と離別死別(Variable): class 寡婦(Variable): value_type = bool - entity = 世帯 + entity = 人物 definition_period = DAY label = "寡婦に該当するか否か" reference = "https://www.nta.go.jp/taxes/shiraberu/taxanswer/shotoku/1170.htm" - def formula(対象世帯, 対象期間, parameters): - 子供がいない = 対象世帯.nb_persons(世帯.子) == 0 - return 子供がいない * 対象世帯("夫と離別死別", 対象期間) + def formula(対象人物, 対象期間, _parameters): + 子供がいない = 対象人物.世帯.sum(対象人物.has_role(世帯.子)) == 0 + 親である = 対象人物.has_role(世帯.親) + return 子供がいない * 親である * 対象人物.世帯("夫と離別死別", 対象期間) diff --git "a/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.py" "b/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.py" index 535a9f19..98d0752e 100644 --- "a/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.py" +++ "b/openfisca_japan/variables/\347\246\217\347\245\211/\350\202\262\345\205\220/\345\205\220\347\253\245\346\211\213\345\275\223.py" @@ -49,7 +49,7 @@ def formula(対象世帯, 対象期間, parameters): # 所得条件 # 世帯で最も高い所得の人が基準となる TODO: このformulaの中で対象となる控除を差し引く - 世帯高所得 = 対象世帯("控除後世帯高所得", 対象期間) + 世帯高所得 = 対象世帯("児童手当の控除後世帯高所得", 対象期間) 扶養人数 = 対象世帯("扶養人数", 対象期間) 所得制限限度額 = np.array(児童手当.所得制限限度額)[扶養人数] # 複数世帯入力(2以上の長さのndarray入力)対応のためndarray化 所得上限限度額 = np.array(児童手当.所得上限限度額)[扶養人数] diff --git a/tools/make_tests/mylib/mymodule/kosodate_teate.py b/tools/make_tests/mylib/mymodule/kosodate_teate.py index b5af46a4..501b2a2d 100644 --- a/tools/make_tests/mylib/mymodule/kosodate_teate.py +++ b/tools/make_tests/mylib/mymodule/kosodate_teate.py @@ -50,8 +50,10 @@ def process(self, row): if self.titles.get("控除後世帯高所得") and row[self.titles["控除後世帯高所得"]]: income = int(row[self.titles["控除後世帯高所得"]].replace(",", "")) - if allowance == "児童手当" or allowance == "障害児福祉手当": + if allowance == "障害児福祉手当": d_input["世帯"]["控除後世帯高所得"] = {self.period: income} + elif allowance == "児童手当": + d_input["世帯"]["児童手当の控除後世帯高所得"] = {self.period: income} elif allowance == "児童扶養手当": d_input["世帯"]["児童扶養手当の控除後世帯高所得"] = {self.period: income} elif allowance == "特別児童扶養手当" or allowance == "児童育成手当" or allowance == "障害児童育成手当":