Data Model

PCC consists of a configurable, persistent and pre-defined data model containing definition and relationships between several entities presented in subsequent chapters. 


Buckets are central entities in usage counting that encapsulates time- and volume-based usage counters for a subscriber that can be used for different purposes such as charging, policy, analytics, etc. Buckets are populated with usage data collected from continuous streamed events and/or consolidated file-based batches of events. 

Bucket Data Holder groups for one subscriber or a group of subscriber (such as in a family or a company) all its counters with current values, effective dates and expiration dates, passed notification and sessions. 

Each bucket references one product and has a start time and stop time that determines when the bucket should be activated and expired. 

Bucket Content 

Counter can be defined as different usage types: 

  • Volume (Gb, Kb, etc). 
  • Time (duration). 
  • Events (#SMS, #MMS, etc). 

Notifications are triggered based on capacity threshold, to notify external systems or subscribers of status changes in their subscriptions. 

  • AoC, Top-Up request, Denial of Service etc. 

Enforcement is an entity used by “Products” and “Rules” that contins thresholds when enforcements should be triggered and configured rules be applied. 

Bucket characteristics defines: 

  • Validity, Capacity, Start time, Duration, Re-occurrence, Priority. 


Products controls bucket’s behavior by encapsulating configured capacity values of the counters, as well as information about the enforcements and notifications that should be triggered at specific capacity levels, count reset interval, etc. For example, a product can be defined as a monthly counter with a capacity of 200 events; another product may be a weekly counter with a capacity of 5Gb; another product can be a one off counter, valid for 24h, and a maximum of 100 SMS; another example would be a monthly reset counter with a capacity of 10Gb that is only valid during peak hours. 


With Rules you can create and apply different rules regarding Quality of Service and usage for different subscribers based on subscription type, location, current usage, etc.  A key, composed of a set of attributes, identifies each rule. 


Batches consist of set of APL functions that ensures transaction-safe batch processing in Usage Management solutions. 


With Routing you can create and apply routing rules for Diameter messages or other types of realtime data. A key, composed of a set of attributes, identifies the routing functions that should be applied. 

Pre-configured routing functions include: 

  • Routing based on session attributes 
  • Routing based on subscriber attributes 
  • Weight-based Routing/Load-balancing 
  • Workflow Bridge Routing/Forwarding  

Additional routing functions for transformation or other types processing can be added through configuration.