Dec 16 2023 09:28 PM - edited Dec 17 2023 03:31 AM
I have an invoice for a customer to whom we sell on credit.
In one column, the amount paid by the customer is specified, and in another column, the sales amount is specified. In one column, there is the customer's Balance.
This customer has made purchases from us three times, and the balance is now zero. I want to calculate the customer's payment speed for each transaction (it means i want to calculate the velocity of payments for this costumer, in other how much is the average of payments of this costumer in Percentage), meaning I want to know on average, what percentage of their payments amount they have paid during these three purchases in one day how much in percentage?
"Point: for this aim we should extract the days which the costumer balance is not zero then ..."
Thank you.
Dec 17 2023 05:56 AM
I'm not sure if I understood it correctly, but I'm sending you a test file with what I understood .
My answers are voluntary and without guarantee!
Hope this will help you.
Was the answer useful? Mark as best response and Like it!
This will help all forum participants.
Dec 17 2023 08:26 AM
Dec 17 2023 02:16 PM
SolutionIf I had a clear description of the calculation required, illustrated with step-by-step hand calculations, I could probably reproduce the results using MS 365. As things stand, I do not understand the meaning of the term 'payment velocity'; I am not sure why the customer started out by paying so much more than was invoiced; I don't know whether the fact that at the end transactions do not appear in date order.
The sort of things I can do are to calculate the balance and identify points at which it falls to zero; calculate the average balance for each reconciliation period, similarly average the selling amount. For all that, I do not know what you want returned by way of calculations.
Dec 23 2023 01:02 AM
Dec 28 2023 10:14 AM
The attached works out the average delay between invoice and payment.
It is a 365 solution that is presented as a Lambda function.
= LET(
cumSales, SCAN(0, amount, ADDλ),
cumPmnts, SCAN(0, payment, ADDλ),
dayCount, date - MIN(date),
mmtTransact, SCAN(0, dayCount*(payment - amount), ADDλ),
balance, cumSales - cumPmnts,
reconciled?, ABS(balance)<1,
accumulations, FILTER(HSTACK(mmtTransact, cumSales), reconciled?),
blockedAcc, accumulations - DROP(VSTACK({0,0},accumulations), -1),
keyDates, FILTER(date, reconciled?),
avPmntPeriod, TAKE(blockedAcc,,1) / TAKE(blockedAcc,,-1),
HSTACK(keyDates, avPmntPeriod)
)
Dec 17 2023 02:16 PM
SolutionIf I had a clear description of the calculation required, illustrated with step-by-step hand calculations, I could probably reproduce the results using MS 365. As things stand, I do not understand the meaning of the term 'payment velocity'; I am not sure why the customer started out by paying so much more than was invoiced; I don't know whether the fact that at the end transactions do not appear in date order.
The sort of things I can do are to calculate the balance and identify points at which it falls to zero; calculate the average balance for each reconciliation period, similarly average the selling amount. For all that, I do not know what you want returned by way of calculations.