Open APIs

Expand all | Collapse all

TMF677- Consuption counter vs bucket balance

  • 1.  TMF677- Consuption counter vs bucket balance

    Posted Dec 18, 2018 09:20

    Dear colleagues,
    we are trying to implement TMF-677 (Usage consumption API). While reading API Specification Release 17.5.0 someone can find a very nice class diagram on page 9, describing links between Product, Bucket, Balance and ConsumptionCounter.

    1. Could you please clarify why one bucket may have several balances and consumption counters?
    From my experience bucket has strictly one balance and may have one consumption counter.
    For example, a client may have a bucket of 5 Gigs or 100 SMS.  Several balances for this bucket look strange

    May the balance/consumption counter counts only even/odd/special SMS?:)

    2. Would balance and consumption counter are related anyway - there should be some link between them.
    Because it is very clear from examples that bucketBalance[i]+bucketCounter[i]= bucketQouta.
    Is it assumed that bucketBalance [1] corresponds to bucketCounter[1] and so on? Haven't read this in specification

    3. And the main question: what is the difference between bucketBalance and bucketCounter?
    From specifications i concluded that there is only one: bucketBalance is the amount left and bucketCounter is the amount used.

    But we have the "counterType" attribute in bucketCounter and can represent balance as :

    "bucketCounter" : [
    //  in the specification only "used" has been given

    Is it possible to substitute backetBalance with this bucketCounter?

    4. Sometimes i have a very funny thing: the system can't tell the counter type:) - implementation issues.
    May i use "counterType"="unknown"?

    Thanks in advance,

    Vadim Nechaev
    Senior systems architect
    MTS Group HQ

  • 2.  RE: TMF677- Consuption counter vs bucket balance

    TM Forum Member
    Posted Dec 20, 2018 08:58


    1. A bucket has strictly one balance but this balance can be given in different units (for the given sample, we can give the balance of the bucket in Gigs but also in the corresponding amount of money). This is the reason why we have this cardilatity.

    For the consumption counters, in general, we can have only one counter for the used value in the bucket. But, for shared bucket, we can give have several counters : one global for the all the consumptoon done in the bucket, a counter detailing the consumption by device,...

    2. The link between the balance and the counters is done via the bucket resource. In the consumption follow up report, they are displayed  together for each bucket.

    3. BucketBalance gives the amount left in the bucket (at the time of report calculation) and BucketCounter gives what have been used in the bucket. It is not a good idea to use the counterType to give the balance in the counters even if it is possible ! You have two distinct sub-resources : one for the balance and on for the counters and you have to use it.

    4. You can adapt the use of counterType to your particular needs.

    I specify a new version of the TMF677 Usage Consumption API for the next release 18.5 (coming very soon).

    Best regards​


    Sophie Bouleau

  • 3.  RE: TMF677- Consuption counter vs bucket balance

    TM Forum Member
    Posted Dec 21, 2018 03:18
    Hi Sophie & Vadim,

    I believe a bucket needs to have multiple balances simply because it may have balances for different periods.
    That is why each balance has a ValidFor parameter.

    So a product offering 1000 SMS per month would have
    • 1 bucket with
      • a balance for January
      • a balance for February
      • ...
    The same obviously counts for the consumption counters.

    For supporting multiple users, a consumption counters per month and per RelatedParty will be required.

    For supporting multiple devices, I would personally prefer the link from consumption counter to go to a Resource instead of to a Product.
    This would make a strong tie between the Resource used for measuring the usage and the consumption counter.
    The link to Product is slightly more ambiguous. Because a Product can be either directly realised as a Resource (ex. the phone number or the SIM card) or via a more complex construct when a Product is a bundle consisting of other products which by themselves are realised as Services that require several Resources.
    In summary a link to a Resource makes the consumption counter as atomic as possible. If for presentation the usage of several resources must be grouped to the Product level this grouping can be totally catalog driven and therefore changed on te fly without impacting the usage collection.


  • 4.  RE: TMF677- Consuption counter vs bucket balance

    Posted Dec 21, 2018 04:34
    Although I have not read the TMF677 reference document you referred to but having worked extensively in the BSS domain I can say that bucketBalance and bucketCounter are two different resources. bucketBalance indicate the balance left (Gig, Minutes, sms or money) to be used by a subscriber while the bucketCounter indicate the cumulative amount used so far by a subscriber. You could have one bucketBalance used for multiple balances i.e. Gig, SMS or voice, in this case the bucketBalance will be denominated in monetary terms and rates will be configured for each of the traffic cases to determine their depletion rate from the bucketBalance. bucketBalance could also be used for only one balance in which case each one of Gig (data), SMS and Voice have their respective bucketBalance,with this the bucketBalance could be denominated with the respective units such as number of SMS, voice minutes and Gigabytes of data.

    bucketCounter on the other hand can be used to monitor usage and  used to make decisions such as sending usage notifications to subscribers after certain usage threshold is reached. It can also help determine when to give bonuses to subscribers that have accumulated certain usage or take specific actions as per business requirement.

    Olusegun Sanyaolu
    B/OSS Planning and Design Manager

  • 5.  RE: TMF677- Consuption counter vs bucket balance

    Posted Dec 24, 2018 15:41
    Dear colleagues,
    big thanks for your clarifications!
    They were extremely useful.

    I will model bucketBalance and bucketCounter as different entities:) Also great ideas about multiplicity of counters and balances- thanks!
    Also will be waiting for new version of specification: thanks, Sophie!

    Vadim Nechaev
    Senior systems architect
    MTS Group HQ