Are battery monitors accurate ? I use GSAM battery monitor. i have flashed a few roms,  

I get this reading: 

~91% battery. 460ma current consumption with regular use(full brightness). 3:40 hours time left(avg last 5 minutes). 

So this means that my 91% battery should hold around 1800mah-2000mah (460*3:40) , but this is strange because my battery is a 4100mah battery, and i have it only for 8 months.

Another strange thing: when i look at Android's battery statistics, the sum of percenatges of the battery that goes towards each app(including screen) is only at ~50%. 

As a fix, i tried to recharge my phone to 0% and than fully charge. but the problem stays the same. 

So what does this mean ? and are my battery problems due to software or hardware?
Are battery monitors accurate ?


Battery monitors are  an approximation and not accurate :


They are usually based on Voltage measurements
You need Voltage and Current measurements to get an accurate picture. Most phones have only Voltage sensors. Current sensors ( Coulomb Sensor) are available in some at OEM discretion ( Honor 6 for example).  Even if the device has it, the kernel ( since you mentioned flashing ROMs) need to support it. For more details, see this How does the Android estimate the battery level without a current sensor?


I don't know about your device but let's assume that it has only Voltage sensor as is common. Problems with accuracy using voltage sensing ( apart from current sensor bit)


How often it needs to be updated (and reflect on the status bar), AFAIK is left to OEM implementation.  Is the battery icon on your Android phone telling you the truth? says that
updating battery SoC information is manufacturer dependent and not Android driven (emphasis mine and I haven't found any other source to dispute this)


  We contacted Google about this, and the indication is that the battery data given in the Settings is the correct one. The updating of the icon happens "every so often", we're told; quite how often is entirely up to the manufacturer, rather than being part of the Android code

Further voltage is NOT a true indicator of the amount of charge. This will explain in detail why
Yet another problem with Voltage based measurement is battery behaviour. Li Ion batteries display a "flattish" voltage drop even though the amount of charge falls relatively steep as seen here at Fig.2 


Your app like other apps uses Voltage and inherently plagued with inaccuracies, so at best gives a rough estimate


Starting from Lollipop Android gives you an estimate of how long your battery is going to last, so the interpretation in other answer is valid

  Another strange thing: when i look at Android's battery statistics, the sum of percenatges of the battery that goes towards each app(including screen) is only at ~50%.



Measurement of consumption per app and therefore total can also be misleading. This post, though old sheds light on this How does Android calculate battery consumption by apps?

Now coming to your concern of battery problems - it's hard to say. I would suggest that you revert to stock ROM and then observe to establish ,if, there is a problem ( Could be custom ROM, kernel too)