Why events ingested successfully could show zero usage
Last updated: July 10, 2026
Events that pass ingestion validation and appear in the event log can still produce zero usage on a subscription. This happens when the event's property values don't match the field mappings or filter conditions defined on the billable metric: the event is stored correctly, but Lago can't compute a charge from it. It's one of the most common silent billing issues. Everything looks fine on the surface, but precise_total_amount_cents returns 0.0.
How it works
Lago calculates usage by reading a specific field from each event's properties object, as defined in the billable metric configuration. The field name must match exactly. A metric configured to read seconds produces zero usage if the event sends duration_seconds instead. Filter conditions work the same way: every filter value defined on the metric must be present and matching in the event's properties (Lago applies AND logic across filters), or the event is excluded from usage calculation entirely.
How to confirm the cause
Open the billable metric and note the exact field name, then compare it character for character with the key in the event's
properties.If the metric has filters, verify the event's properties satisfy every filter condition.
Confirm the subscription referenced in the event is active and on a plan that includes this metric as a charge.
Retrieve the event via the API and check
precise_total_amount_cents. If it's0.0but the event'svalueis non-zero, a field mapping or filter mismatch is the likely cause. Also check that the event'stimestampfalls within the subscription's active billing period; events sent before the subscription start date aren't counted.
How to resolve the issue
Correct the field name in the event payload to exactly match the billable metric's configured field, and update filter values in the event properties (or the metric's filters) so they match. If events were already sent with the wrong properties and usage was missed, contact Lago support, in some cases historical events can be reprocessed.
How to prevent this from happening again
When setting up a new billable metric, send a test event immediately and confirm precise_total_amount_cents is non-zero before going live. Treat a 0.0 result as a signal to audit the field name and filter configuration against the event payload.
This article reflects guidance drawn from customer case resolutions. It is not officially supported documentation and may not apply to all situations.