From 5165f62cfcdd1eccb5ae703228d255bf1b12588f Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 16 Jan 2025 15:24:26 -0500 Subject: [PATCH 1/2] Add tmd/examination/2022 files --- tmd/examination/2022/dbtab.sql | 47 +++++++ tmd/examination/2022/generate_tmd_results.sh | 122 ++++++++++++++++++ tmd/examination/2022/log_extract.awk | 6 + tmd/examination/2022/outvars | 12 ++ tmd/examination/2022/phase6-state-targets.zip | Bin 0 -> 42766 bytes tmd/examination/2022/results.md | 35 +++++ 6 files changed, 222 insertions(+) create mode 100644 tmd/examination/2022/dbtab.sql create mode 100755 tmd/examination/2022/generate_tmd_results.sh create mode 100644 tmd/examination/2022/log_extract.awk create mode 100644 tmd/examination/2022/outvars create mode 100644 tmd/examination/2022/phase6-state-targets.zip create mode 100644 tmd/examination/2022/results.md diff --git a/tmd/examination/2022/dbtab.sql b/tmd/examination/2022/dbtab.sql new file mode 100644 index 00000000..99fd05bf --- /dev/null +++ b/tmd/examination/2022/dbtab.sql @@ -0,0 +1,47 @@ +-- tabulate iitax component results using only PUF records: +SELECT + round(sum(s006*e00200)*1e-9, 3), -- wage and salary (ALL) + round(sum(s006*e00600)*1e-9, 3), -- ordinary dividends + round(sum(s006*e00900)*1e-9, 3), -- Sch C net business income + round(sum(s006*e02000)*1e-9, 3), -- rent,partnership,S-Corp income (Sch E) + round(sum(s006*e02300)*1e-9, 3), -- unemployment compensation + round(sum(s006*c02500)*1e-9, 3), -- taxable social security benefits + round(sum(s006*c00100)*1e-9, 3), -- adjusted gross income (AGI) + round(sum(s006*c04800)*1e-9, 3), -- taxable income + round(sum(s006*refund)*1e-9, 3) -- refundable credits + --round(sum(s006*iitax)*1e-9, 3) -- total iitax liability (after credits) + FROM baseline + WHERE data_source = 1; +SELECT + round(sum(s006*iitax)*1e-9, 3) -- total POSITIVE iitax liability +FROM baseline +WHERE data_source = 1 + AND iitax >= 0; + + +-- USING TC_OPTIONS="--exact --dump --dvars outvars --sqldb" +-- 2022 US targets from SOI Bulletin (Spring 2024) in $B: +-- < https://www.irs.gov/pub/irs-soi/soi-a-inpre-id2401.pdf > +-- SOI TMD (TMD/SOI-1)*100(%) +--: wage_and_salary 9648.553 9654.475 +0.1 +--: ordin_dividends 420.403 420.299 -0.0 +--: SchC_net_income 395.136 396.303 +0.3 +--: SchE_part_Scorp 1108.445 1114.474 +0.5 +--: unemploy_compen 29.554 29.909 +1.2 +--: taxable_soc_sec 471.017 473.755 +0.6 +--: adj_gross_income 15142.763 14851.081 -1.9 +--: taxable_income 11954.522 11842.505 -0.9 +--: refundable_credits 106.380 116.717 +9.7 +--: itax_after_credits 2285.496 2289.792 +0.2 +-- +-- % awk '$1~/--:/{print 100*($4/$3-1)}' dbtab-by-component.sql +-- 0.0613771 +-- -0.0247382 +-- 0.295341 +-- 0.543915 +-- 1.20119 +-- 0.581295 +-- -1.92621 +-- -0.937026 +-- 9.71705 +-- 0.187968 diff --git a/tmd/examination/2022/generate_tmd_results.sh b/tmd/examination/2022/generate_tmd_results.sh new file mode 100755 index 00000000..c997ebce --- /dev/null +++ b/tmd/examination/2022/generate_tmd_results.sh @@ -0,0 +1,122 @@ +# The examination/2022/generate_tmd_results.sh script. +# PREREQUISITE: +# (taxcalc-dev) tax-microdata-benchmarking% make test +# USAGE: +# (taxcalc-dev) 2022% ./generate_tmd_results.sh + +# === SETUP === +TMD=../.. +cp $TMD/storage/output/tmd*csv* . +gunzip -f tmd.csv.gz +STATES="ak mn nj nm sc va" + +# === WEIGHTS === +for S in $STATES; do + echo Generating weights for $S ... + unzip -oq phase6-state-targets.zip ${S}_targets.csv + mv -f ${S}_targets.csv $TMD/areas/targets + pushd $TMD/areas > /dev/null + rm -f weights/${S}_tmd_weights.csv.gz + python create_area_weights.py $S > ${S}_local.log + mv -f ${S}_local.log ../examination/2022 + mv -f weights/${S}_tmd_weights.csv.gz ../examination/2022 + popd > /dev/null + awk -f log_extract.awk ${S}_local.log +done + +# === RESULTS === +cd $TMD/examination/2022 +TC_OPTIONS="--exact --dump --dvars outvars --sqldb" +echo Generating results for US ... +tc tmd.csv 2022 $TC_OPTIONS | grep -v data +sqlite3 tmd-22-#-#-#.db < dbtab.sql +for S in $STATES; do + echo Generating results for $S ... + TMD_AREA=$S tc tmd.csv 2022 $TC_OPTIONS | grep -v data + sqlite3 tmd_${S}-22-#-#-#.db < dbtab.sql +done + +# === CLEANUP === +rm -f ./*tmd*csv* +rm -f ./tmd*-22-* +rm -f ./*.log +exit 0 + + +# WE HAVE THESE RESULTS ON 2025-01-16: +# +# (taxcalc-dev) 2022% time ./generate_tmd_results.sh +# Generating weights for ak ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 0 401.1 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=146): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.996000, < 1.004000: 146 146 100.00% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 0.998 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.001 +# Generating weights for mn ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 0 240.2 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=147): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.996000, < 1.004000: 147 147 100.00% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 0.999 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.001 +# Generating weights for nj ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 0 180.3 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=147): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.996000, < 1.004000: 147 147 100.00% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 0.999 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.000 +# Generating weights for nm ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 0 168.4 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=147): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.996000, < 1.004000: 147 147 100.00% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 1.000 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.001 +# Generating weights for sc ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 0 231.2 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=147): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.996000, < 1.004000: 147 147 100.00% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 0.999 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.000 +# Generating weights for va ... +# ::loop,delta,misses,exectime(secs): 1 1.000000e-09 2 456.7 +# DISTRIBUTION OF TARGET ACT/EXP RATIOS (n=147): +# with REGULARIZATION_DELTA= 1.000000e-09 +# low bin ratio high bin ratio bin # cum # bin % cum % +# >= 0.900000, < 0.990000: 1 1 0.68% 0.68% +# >= 0.990000, < 0.996000: 0 1 0.00% 0.68% +# >= 0.996000, < 1.004000: 145 146 98.64% 99.32% +# >= 1.004000, < 1.010000: 0 146 0.00% 99.32% +# >= 1.010000, < 1.100000: 1 147 0.68% 100.00% +# MINIMUM VALUE OF TARGET ACT/EXP RATIO = 0.948 +# MAXIMUM VALUE OF TARGET ACT/EXP RATIO = 1.050 +# Generating results for US ... +# 9654.475|420.299|396.303|1114.474|29.909|473.755|14851.081|11842.505|116.717 +# 2289.792 +# Generating results for ak ... +# 19.843|0.554|0.607|1.911|0.109|0.906|29.261|22.975|0.217 +# 3.796 +# Generating results for mn ... +# 179.963|6.321|6.362|20.908|0.71|9.72|267.728|212.373|1.392 +# 38.722 +# Generating results for nj ... +# 346.77|16.023|10.934|32.693|1.049|16.227|506.593|415.249|2.642 +# 82.935 +# Generating results for nm ... +# 41.203|1.354|2.04|3.184|0.199|2.932|63.316|46.637|0.947 +# 7.416 +# Generating results for sc ... +# 119.387|3.966|4.309|14.67|0.429|8.407|185.522|141.508|2.133 +# 24.706 +# Generating results for va ... +# 276.779|10.304|8.814|28.721|0.767|13.378|408.918|327.695|2.597 +# 61.405 +# ./generate_tmd_results.sh 6396.15s user 93.15s system 310% cpu 34:52.81 total diff --git a/tmd/examination/2022/log_extract.awk b/tmd/examination/2022/log_extract.awk new file mode 100644 index 00000000..a7df18e1 --- /dev/null +++ b/tmd/examination/2022/log_extract.awk @@ -0,0 +1,6 @@ +$1~/::loop/{scan=1; print $0; next} +$0~/final delta loop iterations/{print $0; next} +$1~/message:/{print $0; next} +scan==1 && $0~/DISTRIBUTION OF TARGET/{prnt=1} +scan==1 && $0~/AREA-OPTIMIZED/{prnt=0} +prnt==1{print $0} diff --git a/tmd/examination/2022/outvars b/tmd/examination/2022/outvars new file mode 100644 index 00000000..955dea64 --- /dev/null +++ b/tmd/examination/2022/outvars @@ -0,0 +1,12 @@ +e00200 +e00600 +e00900 +e02000 +e02300 +c02500 +c00100 +c04800 +refund +iitax +s006 +data_source diff --git a/tmd/examination/2022/phase6-state-targets.zip b/tmd/examination/2022/phase6-state-targets.zip new file mode 100644 index 0000000000000000000000000000000000000000..d9b97679e38ce9dbba631e91590ecf3b27e55e2b GIT binary patch literal 42766 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 + +**CY2022 Total Income Tax Liability** ($ billion)
+| Area | TMD | SOI | PctDiff | +| ---: | ---: | ---: | ---: | +| US | 2289.792 | 2250.798 | +1.7 | +| | | | | +| AK | 3.796 | 4.114 | -7.7 | +| MN | 38.722 | 37.221 | +4.0 | +| NJ | 82.935 | 84.148 | -1.4 | +| NM | 7.416 | 7.840 | -5.4 | +| SC | 24.706 | 25.518 | -3.2 | +| VA | 61.405 | 61.516 | -0.2 | + +
+ +**Sources**: + +The 2022 TMD estimates are generated by the +[`create_tmd_estimates.sh`](./create_tmd_estimates.sh) script. + +The SOI estimates are taken directly from the "All returns" "Total tax +liability: Amount" cell (row 157, column B) in the [Tax Year 2022: +Historic Table 2 (SOI Bulletin) XSLX +files](https://www.irs.gov/statistics/soi-tax-stats-historic-table-2). From 23a62813cde6b1b849abe816dea6cd43a67767f1 Mon Sep 17 00:00:00 2001 From: "martin.holmer@gmail.com" Date: Thu, 16 Jan 2025 15:40:00 -0500 Subject: [PATCH 2/2] Fix typo in results.md file --- tmd/examination/2022/results.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmd/examination/2022/results.md b/tmd/examination/2022/results.md index fac2ea91..48db1bd4 100644 --- a/tmd/examination/2022/results.md +++ b/tmd/examination/2022/results.md @@ -27,7 +27,7 @@ TMD and IRS/SOI estimates. **Sources**: The 2022 TMD estimates are generated by the -[`create_tmd_estimates.sh`](./create_tmd_estimates.sh) script. +[`generate_tmd_results.sh`](./generate_tmd_results.sh) script. The SOI estimates are taken directly from the "All returns" "Total tax liability: Amount" cell (row 157, column B) in the [Tax Year 2022: