If you make a Billable Time entry for 20 minutes, that entry is correctly calculated at 1/3 of an hour. If the rate is $15/hour, then an entry for 7 hours and 20 minutes shows up as costing 7-1/3 x $15 = $110. This $110 appears consistently throughout in all the places it ought to:
Once an invoice is generated for this Billable Time, however, the 7 hours and 20 minutes is suddenly treated not as 7-1/3 hours, but instead as 7.33 hours, truncated at the hundredths place. Instead of $110, it becomes 7.33 x $15 = $109.95. The customer is invoiced only $109.95, and most of the places that said $110.00 before the invoice was issued are suddenly changed to $109.95:
The original Billable Time entry keeps its amount of $110.00, but the revenue account (originally called
Billable time – invoiced but renamed here to
Hourly services) shows $109.95:
A look at the General Ledger Transactions report reveals where the missing nickel has gone. An automatic
Write-off entry is created by Manager to balance the
Billable time account to the
Billable time - uninvoiced (originally
Billable time - movement) account:
I understand why monetary entries should be rounded or truncated to hundredths (or to whatever the local minor currency unit is) with the rounding errors written off, but the inconsistent handling of fractional hours makes no sense to me. If a customer’s account shows that he owed me $110 before the invoice is generated, then he shouldn’t owe me $109.95 after the invoice is generated. The minutes should be treated consistently across the application. It can be as minutes, unrounded fractional hours, or rounded decimal hours, or whatever – but it ought to be consistent.
This appears to have been discussed here previously, but the inconsistent behaviour was never corrected, other than applying the automatic write-off.