Billing systems can set rates/charges according to an aggregate decision model. In general, an aggregate decision can include any decision that requires the consideration of a set of events to appropriately be evaluated (e.g., as opposed to a decision that can be made based on a single event). Thus, it can be necessary for a billing system to consider multiple transactions when determining the appropriate rate or charge for an account.
An apparatus and method for processing of transactions that originate in differing currencies is described herein. More particularly, a currency conversion is described that occurs during for the purposes of counting transactions and charges while rate calculations such as the application of a discount occur in the multiple, different underlying currencies. Thus, the converted or standardized currency is only used to determine if thresholds are satisfied and not for setting or calculation of charges.
In some aspects, a method for processing and messages associated with transactions in a billing system includes receiving a plurality of messages associated with transactions received by the billing system, the messages including transaction information and an account identifier, grouping the transactions into one or more billing groups based on the account identifier, with a billing group including multiple logically connected accounts that cannot be processed separately, for a particular billing group, determining charges based on the received transaction information, the charges including charges incurred in multiple, different currencies, converting the charges incurred in the multiple, different currencies to a standard currency unit, aggregating the charges in the standard currency to generate aggregate charge information in the standard currency unit, comparing the aggregate charge information to a threshold, and upon determining that the aggregate charge information satisfies the threshold applying a discount to the charges for each of the accounts and the billing group in the multiple, different currencies.
Other embodiments of these aspects include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination.
The billing group includes multiple logically connected accounts with each account having an associated currency. Converting the charges to the standard currency unit includes converting the charges for each transaction to the standard currency unit. Converting the charges to the standard currency unit includes summing the charges for each of the multiple different currencies to generate an aggregate charge for each of the multiple different currencies and converting the aggregate charge for each of the multiple different currencies to the standard currency unit. The messages include information about a location where the charge was incurred and the method also includes determining the base currency based on the location where the charge was incurred. The method also includes comparing the aggregate charge information to a notification threshold and upon determining that the aggregate charge information satisfies the notification threshold sending a notification to the account owner associated with the account.
The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
An apparatus and method for handling billing transactions that are based on multiple transactions originating in multiple, different currencies in a billing system is described herein. Information about a particular transaction can be used in aggregate with information about other transactions to calculate a rate, discount, or charge for an account or group of accounts. In many situations, when the billing system processes transactions based on the received messages, the processing relies on aggregate decision models as the processing of any one particular transaction is potentially affected by other transactions. These transactions can span not only time but also location resulting in transactions that affect another account potentially being accrued in a different currency than the subject account. Thus, the billing system is configured to process aggregate decisions that require the consideration of a set of events or transactions to be appropriately evaluated (e.g., in contrast to a decision they can be made by looking at a single transaction). One example of such an aggregate decision can be rates, discounts or charges based on consumer usage such as charges that are generated if a customer accrues too much usage or doesn't meet a minimum commitment level. In another example, a discount can be provided to all accounts having a particular characteristic if certain cost thresholds are met. In yet another example, billing restrictions can be applied to a group of individual accounts such as a family or organization and charges can be based on aggregate charges incurred for the group of accounts.
Referring to
In the example of
Referring to
As shown in the example of
In order to determine the aggregate or total billing expenditure for the group of accounts, the system groups the transactions according to their underlying currencies. In the example shown in portion 115 of
In order to take actions that are based on the total spending for the billing group, as shown in portion 125 of
As shown in portion 135 of
Referring to
The currency normalization and charge aggregation unit 204 accesses the invoice items 210a . . . 210n to determine an aggregate total charge for the billing group in a normalized currency. More particularly, the normalization and charge aggregation unit 204 receives the invoice items 210a . . . 210n for a set of accounts in the billing group and calculates the aggregate usage and charges for the account for each of the base currencies in which the charges were originated. For example, charges can originate in multiple different currencies and the currency normalization and charge aggregation unit 204 generates aggregate usage information (e.g., aggregate usage 236, 242, and 248) and aggregate charge information (e.g., aggregate charge 238, 244, 250) for the invoice items grouped according to the base currency. In the particular example shown in
The system 200 also includes a discount determination unit 206. The discount determination unit 206 uses information about the aggregate normalized charge 254 in order to determine whether a threshold for application of a discount or assessment of a penalty has been satisfied. For example, if the aggregate normalized charge 254 exceeds a discount application threshold, the discount determination unit 206 applies the discount to the invoice items. In another example, if the aggregate normalized charge value 254 fails to satisfy a penalty threshold, the discount determination unit applies the penalty charge to the invoice items. More particularly, upon determination that a discount or penalty should be assessed to the accounts in the billing group, the discount determination unit 206 accesses the aggregate charge information in each of the base currencies (e.g., aggregate charge 238, 244, 250) and applies the discount or penalty and each of the respective underlying currencies to generate the charge with discount and/or penalty applied (e.g., entries 252, 254, and 256).
Thus, as described above, system 200 calculates the aggregate or total usage for accounts in a billing group in a normalized currency but applies the actual discount or other modification to the total charges in the respective underlying currencies in which the charges originated. This provides the advanctage of lessening the impact of currency fluctuation on the billing process. More particularly, since modifications to the charges occur in the base currency the currency conversion rate has less of an effect on the charges to the accounts. Thus, Full unit/currency conversion occurs during counting—aggregate N currencies/UoMs into 1 currency/UoM for the purposes of counting, rate in another currency/UoM, assign rate back in the underlying N currencies.
Referring to
The currency normalization and charge aggregation unit 204 and discount determination unit 206 can receive data from client device through input/output (I/O) interface 300. I/O interface 300 can be a type of interface capable of receiving data over a network, including, e.g., an Ethernet interface, a wireless networking interface, a fiber-optic networking interface, a modem, and so forth. The system also includes a processing device 302 and memory 304. A bus system, 306, including, for example, a data bus and a motherboard, can be used to establish and to control data communication between the components.
Processing device 302 can include one or more microprocessors. Generally, processing device 302 can include an appropriate processor and/or logic that is capable of receiving and storing data, and of communicating over a network. Memory 304 can include a hard drive and a random access memory storage device, including, e.g., a dynamic random access memory, or other types of non-transitory machine-readable storage devices. As shown in
Using the aggregated charges in the standardized currency, the system determines whether notification should be sent based on the total aggregated charges (408). For example, if the total incurred charges exceed a predetermined threshold, the system sends a notification to the account owner(s) of the level of usage/charges incurred for the accounts in the billing group (410). If the total aggregated charges do not exceed a notification threshold and/or the system is not configured to send notifications for the particular billing group, the system determines whether the aggregated charges qualify for a discount (412). For example, the system can compare the total aggregated charges in the standard currency to a threshold value. If the total aggregated charges satisfy the threshold, the system applies a discount to the originally received charge in the underlying, base currency (414). Thus, the standard currency is used to determine whether thresholds for notifications and discounts are satisfied, and the underlying base currencies are used for the application of additional discounts or charges to the accounts in the billing group. Thus, if the aggregated charge does not qualify for a discount or the system has already applied the discount to the underlying charges, the system then wait until a time or volume threshold that requires a new calculation of the aggregate uses and charges is reached (416). When the time or volume threshold has been satisfied, the system returns to receiving the usage and charge information at block 402.
Although a few implementations have been described in detail above, other modifications are possible. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.