It depends on what your router is configured to do - and how well bandwithd can distinguish between the real source/ target of the traffic (disclaimer, I've never used this package myself).
Just to raise some potential causes for confusion:
you may have installed services on the router itself that generate traffic (e.g. aria2, torrent clients, etc.)
services that might cause 'hidden' traffic (e.g. CAKE w/ Adaptive Bandwidth generates traffic to evaluate to currently available bandwidth)
traffic bandwidthd might not be able to account properly for their real owner (e.g. VPN stuff might be miscalculated, depending on how the tunnel endpoint is configured, other forms of tunneling might be misassigned similarly (e.g. IPv6 transition mechanisms)).
By default, OpenWrt shouldn't cause 'much' traffic for its own needs (it just needs to keep the internet connection going and semi-regularly sync the time over ntp). Just for a rough rule of thumb, in the last 19 days of this month, my router is accounted for under ~25 MB traffic by nlbwmon so far (and that includes adblock blocklist updates, a non-default feature), while over half a TB of traffic has been passed through it.
Naught but fud and conjecture with no evidence to support your guess yet.
Bandwidthd by default will track tx/rx on every ip by protocol in each configured subnet. This behaviour can be further refined through a Libpcap format filter string.
Based on the OP”s use case (reconciling ISP excess bandwidth charges), the OP should just track his local subnets sans gateway/broadcast traffic. This will enumerate all clients total traffic which should approximate the ISP’s numbers plus of course any overhead.
I never referenced anything about adblocking!
Comparison is futile. Different principles, but they approximate reasonably well in my experience. Vnstat2 as well.