This use case is perfect for the Max - Long-lasting meter type. Each time a meter event is received, Amberflo persists that value until a new value is received, or the (configurable) timeout period ends, at which point the meter value is reset to 0. In each month, the "high watermark" is simply the max usage over that time period. This meter will persist the max value seen until it is supplanted by a greater value or the meter times out.
In this case, suppose the billing interval goes from the first to the last day of the month. Suppose the timeout period is set to 1 year and the usage begins on 1/1.
A customer uploads a list with 1000 items at the start of the first month.
In the middle of the third month, they upload a list with 500 items.
Then, the customer would be billed for 3 months at 1000 items; the 4th month they would be billed for 500 items.
This is because the list length 1000 was persisted as the meter value from 1/1 until 500-item list was added on 3/15. 1000 was the max value seen during the first and second months by default (it was the only value). During in the third month, the meter value was set to both 1000 (from 3/1 thru 3/14) and 500 (from 3/15 onwards). Since 1000 is the high watermark seen during that third month, the customer would be billed for 1000 items in that third month. But at the start of the fourth month the only meter value seen is 500 (persisted from 3/15), so it is the new max for month of April and the amount billed.
See related from Metering and Event Ingestion:
- How to measure a multi-step process using a duration meter
- How to track seat-based objects in Amberflo
- How to meter the number of active seats or users for a customer
- How to understand dimensions in Amberflo
- How to verify the accuracy of meter data
- How to handle erroneous or incorrect meters sent to Amberflo
- How to find the meter-id for retrieving and deleting a specific meter
- How to delete meters that are no longer in use
- How to handle high volume high cardinality event streams