Published Date : 2020年12月13日2:01

Pythonを使用した税金計算(日本の個人事業主)【Part 1】
Tax Calculation Using Python (Japanese Sole proprietor)【Part 1】


This blog has an English translation


YouTubeにアップした動画の説明記事です。

This is a blog post about a video I uploaded to YouTube.

細かい部分は動画を参考にしてください。

Please refer to the video for details.


目次

Table of Contents




① 動画の説明
① Video Description



警告:

今回説明する給与所得者の所得税及び住民税を計算するツールは、あくまで簡易的なお遊び用のツールです。

正確な数値、計算方法は各自で調べて下さい。

このツールは大雑把に大体の見積りを計算して楽しむ為のツールです。

決して従業員の年末調整や個人の確定申告等に使用しないでください。

さらに、税金の計算方法は変更される場合があり、控除についても同様です。

また、控除や税金の計算方法が間違っている可能性もありますので、

あまり信用せずに、各自で調べてから実験してみてください。

このツールを使って何かしらの損害が発生したとしても、私は一切の責任を負いません。

Warning:

​The tool I'm going to show you for calculating income and residence taxes for salaried workers is just a simple tool for playing.

​Please check the exact number and calculation method by yourself.

​This tool is used to calculate rough estimates and enjoy them.

​Do not use for year-end adjustment of employees or for individual tax return.

In addition, the method of calculating taxes and deductions may change.

Also, there is a possibility that the deduction and tax calculation methods are incorrect.

Don't trust it too much, and test it yourself.

​I will not be liable for any damage caused by using this tool.

次は個人事業主等の場合の所得税や住民税、国民健康保険を計算するアプリを作って、今回作ったアプリと併用して使えるようにしてみましょう。

Next, let's make a tool to calculate income tax, resident tax and national health insurance for individual business owners etc. and use it together with the app we made this time.

まずは国民健康保険料を計算するスクリプトを作成します。

​First, create a script to calculate the National Health Insurance Premium.

これらのサイトを参考に保険料の計算を行いました。

​Insurance premiums were calculated with reference to these sites.

個人事業主の場合は事業収入から経費を引いた金額が所得となります。

In the case of sole proprietors, the amount obtained by deducting expenses from business revenue is income.

そこから基礎控除額(33万円)を引いて、その金額に基礎分(医療分)と後期高齢者支援金分、介護分(40歳以上64歳以下なら)の保険料を計算していきます。

From there, the basic deduction amount (330,000 yen) is subtracted, and the insurance premium for the basic amount (amount of medical care) and the Late elderly support fund, and for the nursing care (for 40 years old or older and 64 years old or younger) is calculated.

今回はスクリプトの大枠を作っていくので、細かい条件等は無視して作成します。

​This time, we will create the outline of the script, so we will ignore the detailed conditions.

まずは適当なフォルダにテスト用のスクリプトを作成して、事業収入、経費、年齢、基礎控除額、そして所得を入れる変数を用意していきます。

Start by creating a test script in a folder of your choice, with variables for business income, expenses, age, basic deductions, and income.

def 健康保険料():
    # default value
    business_revenue = 8520000
    income = 0
    expenses = 1200000
    age = 40

それから、国民健康保険料の計算に必要な金額と税率を変数に定義します。

Then, you define the amount and tax rate necessary to calculate the National Health Insurance fee as variables.

# national health insurance premium
均等割_基礎賦課分 = 39900
所得割_基礎賦課分 = 0.0714
基礎賦課分_賦課限度額 = 630000
均等割_後期高齢者支援金等賦課分 = 12900
所得割_後期高齢者支援金等賦課分 = 0.0229
後期高齢者支援金等賦課分_賦課限度額 = 190000
# Use the tax rate of Setagaya Ward as default. (世田谷区の税率をデフォルトとして使用します。)
均等割_介護納付金賦課分 = 15600
所得割_介護納付金賦課分 = 0.0205
介護納付金賦課分_賦課限度額 = 170000
医療分 = 0
後期高齢者支援金 = 0
介護納付金 = 0

これらの値は各自治体によって異なります。今回は全体的に東京特別区の税率を使用していて、介護保険の税率は世田谷区のものを使用しました。

These values vary by municipality. ​This time, we used the tax rate of the Tokyo Special Ward as a whole, and the tax rate of the long-term care insurance was that of Setagaya Ward.

それから、個人事業主の場合は確定申告時に青色申告の特別控除が受けられるので、それを考慮した金額も同時に計算しておきます。

​Also, if you are a sole proprietor, you can get a special deduction at the time of tax return, so you should also calculate the amount considering it.

# special deduction
basic_deduction = 330000
青色申告特別控除 = 650000
青色申告 = 0
医療分_青色 = 0
後期高齢者支援金_青色 = 0
介護納付金_青色 = 0

後はユーザーからの入力された値を基に、国民健康保険料を計算して、結果を表示させるだけです。

All you have to do is calculate the ​national health insurance premium based on the value you enter and display the result.

try:
    business_revenue = int(input('収入を入力してね: '))
    expenses = int(input('経費を入力してね: '))
    age = int(input('年齢を入力してね: '))
    if business_revenue < 0:
        print('マイナスの値が入力されました。デフォルト値に設定する!')
        business_revenue = 8520000
    if expenses < 0:
        print('マイナスの値が入力されました。デフォルト値に設定する!')
        expenses = 1200000
    if age < 0:
        print('マイナスの値が入力されました。デフォルト値に設定する!')
        age = 40
except:
    print('不正な値です。数値を入力してください。全てデフォルト値に設定する!')
    business_revenue = 8520000
    expenses = 1200000
    age = 40
    swt = 11

マイナスの値や数字ではない値に対する処理を書きます。

Write actions for negative or non-numeric values.

その他の年齢による処理の分岐等細かい調整が必要な箇所が多々ありますが、これらは次回以降に修正します。

There are many other points that need to be adjusted in detail, such as the branching of processing according to age, but these will be corrected in the future.

それではスクリプトをテストしてみましょう。

Let's test the script.

適当な数値を入力して、計算が合っているか電卓等を使用して試してみてください。

Enter an appropriate number and use a calculator to check if the calculation is correct.



以上です。お疲れ様です。

That's all. Thank you for your hard work.