The image below is monthly attendance report of an employee. You can see no holidays and no late days displayed here.
My question: Is it always good to show the 0 value on reports, even the activities happens very occasionally.
Displaying 0 is not always good; it depends on the situation.
Reasons to display it:
Reasons not to display it:
In this particular case, I think you should display holidays even if 0. Holidays are something that employers and employees want to track on a regular basis, so this is useful information.
First the answer in general: no, it's not always good, it depends on many factors. For example, in your particular screen I think it's not clear, so I wouldn't use it (at least AS IS).
See, you have this value and its corresponding label first:
It's more than clear that this employee worked 14 overtime hours. This is good, nothing to say about this.
Then you have this:
What does this mean? Is this for days? Is this for hours? Something else?
The employee didn't work on holidays because he had no obligation? Then 0 is merely informative
The employee didn't work on holidays even though he was requested to? Then 0 could mean a punishment badge as well
The employee worked 0 (or 1,2,3, whatever) full holidays? Then why do you use hours for overtime?
The employee worked 0 hours on holidays? What if he worked 4 hours on a holiday? What if he worked 15 minutes? What if he worked 3 hours and 15 minutes?
I think that, to the very least, you should consider changing the Holidays label to something more accurate, like Hours Worked on Holidays. However, this still leaves us with the question "did the employee HAD to work on holidays?". Assuming the labor legislation in your country (or the company itself) has special hourly work rates, for example double payment , then you could use a label like Hours at Special Rate (assuming the special rate is only one) or Hours at Double/200%/20%/whatever value Rate.
With this in place, you could also use something like +/- values, like this:
were values in green are effectively worked hours on holidays, and red values are hours on holidays the employee had to work yet he didn't
Remember: it all depends on context. In some countries, working on public holidays is forbidden, in other countries requires extra payment, other countries couldn't care less and leave it to an employer/employee negotiation, so it's important to recognize the legislation as well. Also, there are many works that require the employee to work on holidays. Doctors and nurses are the obvious ones, but also public transportation, cinema and theater employees, many concert venues and so on
Based upon this design, I would say stick to displaying the holidays even it's set to 0 for that period of time. Showing that information does not break the design or taking too much space for an user to make the layout look unclear.
Also, it gives useful information at first glance.