Skip to main content

House Rent Allowance: Rules and Calculation

House Rent Allowance (HRA) is a major component of the corporate salary packages. It is an important factor if you are migrating from your hometown for the job. Further, it is even more crucial for people moving to metro cities as they generally prefer living in a rented property because of the high cost of buying a new house. HRA has a huge impact on the taxable income and the actual payable income tax of the working professionals. Also, initially, if one gets the calculation wrong, a lot more tax would be deducted (TDS) and one would have the headache of claiming it back during the Income Tax Returns (ITR) filing process. So let us first understand the rules and regulations of HRA and then look at a few examples.

HRA Rules and Regulations

HRA can be claimed only for the property rented in the same city as your work place.

HRA deduction is the LEAST of the following three amounts calculated annually:
  1. Actual HRA received (as given on payslip)
  2. A component of your Basic Salary and Dearness Allowance (DA)
    1. For metro cities: 50% of (Basic + DA)
    2. For Non-metro cities: 40% of (Basic + DA)
  3. Actual rent paid minus 10% of (Basic + DA)
Use this HRA calculator provided by the Income tax department to calculate your HRA.

If the annual rent amount exceeds Rs. 1 lakh, PAN of the landlord is mandatory to claim the benefits.

At the end of the financial year, employers generally demand proof of actual rent payment. A rent receipt can be given as proof containing the address of the property, rent amount, landlord's PAN, landlord's signature on a revenue stamp and employee's signature.

Within certain conditions, an employee can claim both HRA and exemption on Home Loan interest. This can be done if one owns a property in a different city than the work city. There are many other conditions which are out of the scope of this post.

HRA benefits allow for rent payment to parents. If an employee lives along with his/her parents in a house owned by them, s/he can enter into a rent agreement with parents and pay rent to them. The parents must show this rent income in their Income Tax Returns. However, this is only beneficial if the employee's income tax bracket is higher than parents' income tax bracket. For example, if the employee is saving 20% tax on HRA component but the parents are paying 30% tax on their Rent income shown in ITR, this is a loss-making transaction for the family.

HRA calculation examples:

Example 1:

Assume a person living in a metro city has a monthly basic salary of Rs. 20000. The monthly HRA component is Rs. 10000 and the actual rent paid is Rs. 15000 per month. The person does not get any Dearness Allowance.

Applying the above 3 conditions:
  1. Actual HRA received (as given on payslip) = Rs 10000 per month * 12 months = Rs. 120000
  2. For metro cities: 50% of (Basic + DA):
    - Annual basic salary = Rs. 20000 per month * 12 = Rs. 240000
    - 50% of (Basic + DA) = Rs. 120000
  3. Actual rent paid minus 10% of (Basic + DA)
    - Actual rent paid annually = Rs. 15000 per month * 12 = Rs. 180000
    - 10% of (Basic + DA) = 10% of Rs. 240000 = Rs. 24000
    - Actual rent - 10% of (Basic + DA) = Rs. 180000 - Rs. 24000 = Rs. 156000
The minimum of the above 3 is Rs. 120000. So the person's taxable income will be reduced by Rs. 120000.

Example 2: If the person starts paying the rent in the middle of the year.

Let's take the same conditions as above but assume that the person starts paying rent from the month of December instead of at the start of the financial year in April which still earning for the whole year. In this case, the third condition above will change as follows:

3. Actual rent paid minus 10% of (Basic + DA):
- Actual rent paid annually = Rs. 15000 per month * 4 (From December to March) = Rs. 60000
- 10% of (Basic + DA) = 10% of Rs. 240000 = Rs. 24000
- Actual rent - 10% of (Basic + DA) = Rs. 60000 - Rs. 24000 = Rs. 36000

The minimum of the 3 conditions is now Rs. 36000. So the person's taxable income will be reduced by Rs. 66000 only.

Example 3:

Let's carry forward the above examples but assume that the person is receiving a Dearness Allowance of Rs. 40000 per month. Let's recalculate all the above conditions:

  1. Actual HRA received (as given on payslip) = Rs 10000 per month * 12 months = Rs. 120000
  2. For metro cities: 50% of (Basic + DA):
    - Annual basic salary (Basic + DA) = Rs. 60000 per month * 12 = Rs. 720000
    - 50% of (Basic + DA) = Rs. 360000
  3. Actual rent paid minus 10% of (Basic + DA)
    - Actual rent paid annually = Rs. 15000 per month * 4 (From December to March) = Rs. 60000
    - 10% of (Basic + DA) = 10% of Rs. 720000 = Rs. 72000
    - Actual rent - 10% of (Basic + DA) = Rs. 60000 - Rs. 72000 = Rs. -12000
The least of the three is the third case which is a negative figure. This means that you won't get any HRA benefits. This is one scenario where you won't get any HRA benefit even though there is HRA component in your salary


I hope this post will clear that confusing HRA component in your payslip and help you calculate your HRA benefits. If you don't get HRA as part of your salary, try requesting your employer to restructure your salary to include it as it may help you save a lot of tax.

Comments

Popular posts from this blog

Using static IPs in Linux

It is often a requirement to assign static IP addresses to some important and permanent network interfaces. This is to avoid setting up a local DHCP server or relying on IP given by your network provider which may not be stable. This post shows steps to configure static IPs in Linux using Ubuntu 16.04 and Ubuntu 18.04 distros. We are considering two distros as network configuration has changed significantly in Ubuntu 18.04. There are two general steps to be followed: 1. Configure the network interface and assign a static IP. 2. Restart interface for the changes to take effect. Ubuntu 16.04  The current interfaces on the system are as follows: As can be seen, enp0s8 interface does not have any IP. Let's assign a static IP to it. In case you already have an interface with a DHCP assigned IP, you just need to change that IP and make it static. Edit the /etc/network/interfaces file and add the following code block. Prefer using the IP address range available for pri...

Local domain name resolution using /etc/hosts

The /etc/hosts file is a powerful mechanism for managing the information about hosts in the local network in the absence of a local DNS server. Setup We have 4 VMs in the local /24 network. The following are the details: vm-1-ubuntu-16-04 - 10.0.1.11 vm-2-ubuntu-16-04 - 10.0.1.12 vm-1-ubuntu-18-04 - 10.0.1.21 vm-2-ubuntu-18-04 - 10.0.1.22 The VMs are reachable via their IP address but not by their hostnames. This is problematic because we have to remember their IP addresses everytime we want to access these hosts. It is would be much simpler to remember and access the servers by their hostnames. For that we need some sort of mapping between the IP addresses and their corresponding host names. There are 3 common ways of achieving this mapping. Setup a DNS server which handles resolution for your local network. Use an existing DNS server of the local Internet Service Provider (ISP) or any other higher level ISP. Note that a public static IP address is required for this s...

Simple HTTP Server in Python

Have you ever come across a need to share a file over a local network to a number of machines? Have you ever felt the need to share output of a task in text files available at a web-endpoint? Often, there is a requirement to quickly setup a light-weight web-server for such requirements. Python provides the easiest way to setup a simple HTTP server for such use cases with a single command. Python comes pre-installed with Linux as many of the linux libraries use python in background. Therefore there is no extra overhead of installing python. With support for python2 getting stopped in April 2020, many of the newer versions of linux distros come with default python3. Therefore this post will focus on setting up an HTTP server using both python2 and python3. We will be using Ubuntu 16.04, however it will work for majority of the linux systems where python comes pre-installed. Preparation Steps to follow before starting the server: Make sure you are in the directory which you want ...