Related articles

DevelopersAPI guides

Record more flexibly with early cash allocation and claim points

This round of updates includes completion of the payment workflow functionality and an expansion of your options for handling financial data. Highlights include the ability to scrutinize balances, to allocate cash early and to adjust expected payment dates using claim points. You'll notice as well that program proposals now update to reflect recent transactions and that additional conditions for program lines are even more flexible. Finally, we've continued our work to make the system accessible in a variety of languages and, as usual, we've added functionality related to special pricing agreements.

These and many other updates are already available to test in your UAT channel. Deployment to your live channel will take place on Saturday, January 8th.  


Although an early payment can be recorded to the system and left unallocated, some customers would like such records to be more auditable. With the latest update, any action on a payment line will be recorded in both the Payment History and the Activity Log. Furthermore, a new setting will allow you to address such early payments by allocating them before their due date. For example, a payment that's due in January but received in December can be allocated right away rather than being set aside and potentially forgotten about. The new setting will be off by default, but turning it on will prompt the display of all payment lines for a given program line or ad hoc deal regardless of whether the program line month has ended.


The debtors report has been updated to reflect these changes and will now include payment lines for months that have not ended. Receipts and remittances can be allocated to the newly visible payment lines with status 'active' or 'interim' or to ad hoc deals with the status 'approved'. Additional work has been done on both the user interface and CSV uploads to support these changes.

Another update to the Finance app is that the Authorized Balances snapshot will now include balances in the 'authorized' column that have been approved in the payment authorization workflow. Since you may wish to make payments immediately upon approval instead of waiting until the end of a financial period, we have created a setting to allow for a daily authorization extract of authorized payment lines. The existing workflow inbox in Trading Programs will also be augmented to show authorized payment lines which require approval.

For users who manage customer rebates, we've added ways to scrutinize figures in the Finance app to evaluate whether they accurately portray balances due. With this functionality toggled on, an icon will appear to the left of columns in both the Payment Allocation and Payment History areas. Clicking the icon will display further information about one or more selected program lines, and this information will also be appended to the downloadable CSV as additional columns.

The following nine columns will be added to the CSV produced in the Payment History view: Total Transaction (Value), Discount, Eligible Transactions (Value), Excluded Transactions (Value), Effective Rate, Earnings, Adjustments, Paid, and Variance. The following seven columns will be added to the CSV produced in the Payment Allocation view: Program Type, Total Transaction (Value), Discount, Eligible Transactions (Value), Excluded Transactions (Value), Effective Rate, and Variance.

Trading Programs

If you've used the 'fixed amount' and 'apportioned fixed amount' mechanisms in your program line creation, you may have encountered the Claim Point setting, which allows for adjustment of the expected payment date within the payment frequency chosen. A typical use case is giving a customer a ‘signing bonus’, i.e., a lump sum at the beginning of an agreement period or at the beginning of each month for the agreement duration. The ability to set claim points is now being rolled out to the rest of our mechanisms, with a new option appearing by the Payment Frequency setting when creating a program line.


This new option's settings of 'in advance' and 'in arrears' will be reflected in the debtors and creditors reports, with these settings corresponding respectively to whether the payment date is considered as the start or end date of the agreement. Note that payment lines with a claim point setting of 'in advance' won't show up in debtors or creditors reports whose start dates follow the payment line date. Note also that, as shown in the screen shot, the payment frequency that used to be called 'End of Agreement' is now called 'Once' to accommodate the options for claim points.

Also new in Trading Programs

  • Proposal program lines will now automatically recalculate when new transactions are imported, whereas previously calculations would only occur if the program was modified and saved.
  • Building on our current forecasting functionality, we’ve begun work to leverage machine learning techniques to create more accurate revenue estimates from your historical data. As this work is still experimental, the feature will be available on an opt-in basis.
  • Behind the scenes, we've improved parallelization and addressed redundancy in our Trading Programs calculations. This means you get your results faster.


Transaction data comprises the core input for our calculation processes, and we’re improving transaction imports by adding new optional references for orders, deliveries, and invoices. If you choose to use them, these three new fields will each be searchable and filterable through the daily earnings and transaction reports to make assessment of your program lines easier than ever.

We've also improved the configuration of additional conditions for program lines by allowing items from all dimensions to be chosen for transaction conditions. For example, you’ll be able to set a program to start earning after a certain amount has been purchased from a specific product line. This means that you’ll have an even greater level of control over the calculations involving these transactions.


Deals app and Special Pricing

We are starting to implement a number of exciting initiatives within our Special Pricing module. To begin, we are optimizing our rebate calculation engine to greatly improve its performance. This work will be especially impactful on the calculations for special pricing agreements since the volume of transactions associated with these agreements can be particularly high. We are aiming to achieve near real-time calculations within special pricing, and we'll be working on this topic over the next few product updates, but you should already start to notice improvements.

We are also adding in the architecture to allow special pricing deals and Trading Programs program lines to deduct from each other. In particular, it will be possible to seamlessly deduct the earnings of program lines from the transactions that are eligible for contract support agreements.

Within the Deals app, we are adding support for deals that include bundles of products. You will simply upload a file containing details of the deal's products and pricing and the system will then automatically calculate the earnings. Finally, you can now also select all branches when configuring special pricing agreements. This will include all branches in the agreement, and any future branches that are added to the system will be automatically included.

Additional updates

In addition to the major initiatives already described, three other recent projects might be of particular interest. The first is our external penetration testing conducted by Claranet, a third-party provider. This work is part of our ongoing effort to ensure the security of our systems and data.

The second notable project is the establishment of a user-friendly scheme for unique IDs across the platform. First, a prefix code for each channel can be agreed on by channel users and the Customer Success team. This will be an optional unique alphanumeric string of 1 to 5 characters for the organization with an optional channel suffix for organizations with multiple channels. The string will be used as part of various IDs across the system.  Second, a unique entity code for each contract type will be added with ad hoc deals = ‘A’, special pricing contract = 'S’, customer pricing contract = ‘C’ and distributor support contract = ‘D’. Finally, the ID of each contract type will be reformatted as <Organization Code>-<Channel Suffix Code>-<Entity Code><Sequential Numbers>. The sequential numbers will start from ‘000001’ for each entity type within each channel and will increment as more instances are added. Future work will extend this functionality to Trading Programs.  

Lastly, customers that access our databases directly should note that a database schema change was made to `dbo.DimensionCollectionItemValues`. The columns `ValueText`, `ValueNumber`, `ValueMoney` and `ValueBoolean` have been removed in favor of values in the related table `DimensionCollectionAttributeValues`. Any custom script that references `DimensionCollectionItemValues.Value{Type}` will now need to join to`DimensionCollectionAttributeValues` through `DimensionCollectionAttributeValueId` and use the `Value` column from the joined table instead.

What’s coming up?

In line with Enable’s commitment to release a product update eight times per year, we have numerous new features under development that will be ready to test in your UAT environment on Thursday, February 24th. Deployment of this next set of features to your live environment will take place on Saturday, April 2nd.

Included in the next update:

  • Email notifications for failed imports
  • Ability to specify whether unmet conditions should block accrual calculations
  • Initial support for complex payment allocations involving large remittances

If you have any questions about current or future updates, please contact us at or book an appointment with a member of the Customer Success team. As always, you can log a ticket with any feedback or questions you might have. We look forward to hearing from you!

Not useful
Very useful
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Still have questions?
Raise a ticket or contact our support team.