Solving the late payment problem with the blockchain
It is no surprise that late payments between companies are a big problem (especially in Europe), and can seriously put at risk the stability and sometimes the survival of a company. I personally know friends who were running successful businesses and had to file bankruptcy because of lack of liquidity in the company’s bank account, due to late or unsolved payments. When entrepreneurs find themselves in these circumstances, they often have to borrow money in order to pay their bills, while waiting for their customer to pay them. This is a broken mechanism that put several companies at the mercy of credit institutions, which can potentially determine the course of the life of a company.
Several years ago I thought about this problem, and how it could be better approached. Implementation at that time was an issue, but recently, thanks to the explosion of blockchain-related technologies, I started seeing an opportunity to solve this problem at scale.
I guess some of you have used expense splitting apps (like SplitWise) when sharing bills with friends. What I like about those tools is that if I spend 25 dollars on behalf of my friend, and later on, my friend spends 15 dollars on my behalf, the app will perform all the required compensations and tell my friend he will only owe me 10$. This is a very simple example, but the mechanism could work even better in complex scenarios where there are multiple parties involved. If you think about it, when I spend some money on behalf of my friend, it is because I trust that he will pay me back later. Also, I know today I’m paying something on his behalf, but tomorrow he might be paying something on my behalf. With multiple transactions and multiple parties involved, it is very easy to see how debt and credit balances can compensate each other, reducing the circulating amount of cash between parties.
Now, bring the above example in a business environment: a company A selling products to another company B, always issue an invoice to company B. Payment terms are always 30, 60 or even 90 days after the issuance of the invoice. At this particular moment, Company A trusts that Company B will pay the invoice later. At the same time, Company B sells product to another Company C, which will also pay with similar terms. Company C will then sells products to another company D, and so on.
However, all these companies, in order to sell products, they also need to buy products. The result is that, at any particular moment, each company holds a series of debts and credits with other companies. Very often, in order to pay bills on time, a company is forced to borrow some money from a bank, which will issue a loan based on the credits that the company holds. This is a quite perverse mechanism, which unnecessarily increases the cost of money by introducing a trusted intermediary.
Consider the example above and now imagine that Company C sells some products to Company A. What happens ? We have created a circle between a group companies that could potentially help us in compensating the debts and credits between them. Let me explain better with the example below.
The drawing on the side represents 4 companies with their respective balance sheets:
- Company A owes Company C 100$
- Company B owes Company A 200$
- Company D owes Company D 100$
- Company C owes Company D 100$
As you might already have noticed, Company A has a debt with company C of 100$, but it is also waiting for a $200 payment from company B. Being company B, indirectly linked with Company C, it is easy to see how we can compensate the debts between all the companies in the loop and get to a much simpler scenario.
Companies C and D have cleared their debts and credits, while Company B only owes $ 100 to Company A.
By detecting credit loops between companies, we have been able to clear some debts, without requiring any cash transaction between parties. This reduces the cost of money, since companies are not required anymore to borrow money from intermediaries in order to pay their bills.
Let’s now suppose that every invoice issued by every company in the world is stored on the blockchain as a smart contract. The smart contract contains the addresses of the sender and the receiver, as well as the amount due and the payment terms.
If we can identify credit loops in this huge graph of invoices, we can easily apply the same algorithm described above, perform all the compensations, and drastically reduce the amount of circulating cash.