Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: A Tax Calculator for India (github.com)
63 points by kartickv 36 days ago | hide | past | web | favorite | 26 comments

There is a software/framework/library named OpenFisca[1] that helps you turn law (for taxes) in software. They modeled some countries like Senegal, Tunisia or France. I know that they also use it to build easy to use web interfaces or to create visualization and better understand how a tax applies to a population. You can take a look at their documentation[2] too.

[1] https://openfisca.org/en/ [2] https://openfisca.org/doc/index.html

I built this command-line tax calculator as a side project.

This script determines:

- When you're made an offer for a given CTC, how much will you take home every month?

- If you want a certain amount of take-home pay every month, what CTC should you ask for? This is for Indians.

This script handles:

- Differing tax treatments for employees and consultants. The latter are eligible for presumptive taxation under section 44AD.

- Health and education cess

- Surcharge


- PF and pension

- Section 80C investments

- Professional tax

Nice work! Do consider slapping a simple UI and hosting it somewhere online. You'll be surprised how many organic visits it'll get a year or two from now.

Bonus points if the website copy overlaps well with search keywords :)

I am not sure if you have handled this or even if it is possible to handle the fact that the "basic" component of the salary is not a fixed percentage of the CTC. So two people with same CTC can have different "basic". This basic component also determines the max exemptions you can claim for e.g. under HRA. Also, employers themselves try to structure the basic and the HRA components to reduce the tax burden of their employees by modifying the basic. Exemptions under HRA have to be declared by the employer.

Good point. The comments at the top of the file say what's handled and what's not, and HRA is not.

About basic, yes, that's a pain.

Sorry, dont want to sound too negative, but the tax calculator is so simple it doesn't handle even the most basic stuff. I am guessing you have never paid tax at the income tax website. I would suggest you to go the income tax website and see the inputs that the calculator takes.

I did look at that and many other tax calculators, and some are so complex that people don't know what to put in. It's intimidating.

I built this for my needs. If you want it to handle HRA, or LTA, or income 1 crore and above, etc, that's an entirely reasonable point of view, and I'd welcome a pull request if you have the time.

But am I correct in my assumption that you have never paid taxes yet? :) Any one who has ever been on a payroll will know that the basic component is dynamic. Also I don't know anyone who does not claim any exemptions!

Ha ha, no I've paid a variety of taxes: income, professional, capital gains... I've been an employee and now a startup founder. I also help others with taxes.

The script does have a field for EMPLOYEE_TAX_DEDUCTION. It defaults to 1.6 lac, assuming 1.5 lac for 80C and 10K for the rest (like medical insurance under 80D or whatever). But you can change it to whatever number you want to include other exemptions like HRA and LTA.

I think some things like PF and HRA are calculated based on basic income, but I was able to approximate the calculation without bringing basic income into account. Salary for the purpose of PF is limited to 15K anyway.

Again, enhancements welcome.

For the non-Indians in the audience, what is "CTC"?

Cost To Company

When I was in India a number of years ago, this term got thrown around a lot. I had no idea what it meant.

It basically means what is the total cost to a company for hiring you. Not just the salary they pay you but other costs like insurance, stock options, other benefits etc.,

Cost to Company ie what an employee costs a company. It is also sometimes used in place of salary although incorrectly.

Sorry for that. As the other comments point out, it's used inconsistently. The way I've used it here is to include the employer's contribution to pension and provident fund (retirement savings), not just the employee contribution.

Section 44ADA, not 44AD.

44AD is for businesses and has a presumptive taxable income of 8% of gross income. 44ADA is for (eligible) individuals and has a presumptive taxable income of 50% of gross income.

You can change the 50% to the 8% by editing that parameter in the code.

According to my CA, individuals might be eligible for both depending on what they do. It's not just for businesses. If you're providing a service, like a freelance programmer, it's 50%. But if you're building your own product, it's 8%. Or some such distinction.

In any case, the script supports both; just change the parameter.

I started freelancing and did something similar for the UK, wanna start a collection of tax calculators per country?

In a similar vein, I developed a search engine for sales taxes in Canada (works for all provinces and territories). It was a much, much bigger undertaking than I initially thought, but here it is: http://isittaxed.ca/

I am considering open sourcing this project so that there could be a search engine like this for other countries.

useful only in countries where the full price is not displayed upfront ?

Correct. In Canada, you only see the retail price. The Canadian consumer still needs to know if the item is taxable and what tax(es) that might be. It's an issue for people on a tight budget.

I edited my first comment from "every" to "other". Thank you.

The french government provides a similar tool, from what I've understood of the indian model. It is of course open source.


This is awesome! I have similar thing in google docs file. Also with addition for home loan repayment schedule.

One suggestion: could you separate the code and tax slab configuration, different files.

Thanks for your feedback and suggestions. Since this is my side project, I can't spend too much time on it. Can you send me a pull request?

Actually, separating out the things should be modified from things that shouldn't would be a significant improvement. Like:

# Section 1: Configuration: Change this as appropriate:



# Section 2: Logic: Don't change this:


Thanks. I'll try to make a spreadsheet out of this when I find time. I've got quite a few non programmers who'd benefit from something like this.

You should host it somewhere.

This is nice, I was actually looking for something like this.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact