| import gradio as gr |
| from app_logic import estimate_net_salary |
|
|
| |
| salary_slider = gr.Slider(minimum=80e3, maximum=200e3, label="Gross annual salary") |
|
|
| |
| self_employed = gr.Checkbox(label="Self-employed") |
|
|
| |
| explanation = """ |
| # Salary estimation factors |
| |
| ### Taxes |
| - Income tax is 42%. A lump sum of 10600 is subtracted after applying the tax rate, which accounts to a tax |
| threshold in the calculation of individual taxes. |
| - VAT is 19%. It is only applied to self-employed people. |
| - Additional trade tax rate of 3% is to be paid after opening a business. |
| - Solidarity 1.6% tax rate. It's a German specific tax to help rebuild Germany after WWII. |
| |
| ### Insurances |
| - Health insurance is 14.6% capped at 993 Euro a month, which would amount to 11916 a year. |
| - Retirement contribution is 18.6% capped at 1311 Euro a month, which would amount to 15735 a year. |
| - Unemployment insurance is 2.4% and capped at 170 Euro a month, 2030 a year. |
| |
| ### Employment/Self-employment |
| - For self-employed people, the health insurance and retirement are to be paid in full. |
| - For employees the health insurance and retirement are split 50/50 between the employer and the employee. |
| |
| ### How do I know the estimation is correct? |
| |
| The estimation for the case of regular employment was tested against a German salary calculator and the results were |
| very close. The calculator can be found [here](https://www.brutto-netto-rechner.info/gehalt/gross_net_calculator_germany.php). The data it was tested with is the following: |
| |
| - Gross salary: 100000 Euro |
| - Age of the employee: 35 |
| - Federal state: Berlin |
| - Tax category: 1 |
| - Church tax: No |
| - Compulsory health, pension and care unemployment insurance: Yes |
| - Health insurance add on: 4% (not included in the calculation in the app) |
| |
| # Conclusion |
| |
| - Some minor and complex tax deductions were not taken into account. |
| - **Based on the estimations above and my desire to earn around 4000-4500 Euro after tax a month, |
| the projected self-employed salary would be around 160K-180K Euro a year.** |
| """ |
|
|
| |
| net_salary = gr.Textbox(label="Estimated net annual salary") |
|
|
| |
| iface = gr.Interface( |
| fn=estimate_net_salary, |
| inputs=[salary_slider, self_employed], |
| outputs=[net_salary], |
| title="Salary Estimator", |
| description="Adjust the salary, choose if you are self-employed and see the estimated net salary.", |
| article=explanation |
| ) |
|
|
| |
| iface.launch() |
|
|