In this post, I introduce a way to draw payment flows. This method should be helpful for anyone who needs to describe the flow of money as part of their job.  So if you work in sales, management, solutions engineering or research, in fintech, tradfi or crypto, read on!

Tl;dr: Use the Owner, Instrument, Ledger (OIL) schema to describe money at rest, and payments:

Owner Instrument Ledger

AliceUSDJPM = Alice’s USD at JP Morgan

BobUSDCSolana = Bob’s USDC on Solana

Payments can be described with an arrow which indicates a movement of value:

AliceUSDJPM ? BobUSDCiti = Alice sends USD from her account at JP Morgan to Bob’s account at Citi

Simple!  But also super effective.  We can make it even more useful for us though – read on.


Part 1: Background and the problem

In my career I’ve seen payments been drawn in many ways.  It’s usually boxes and arrows, or sometimes stickmen. There are often inconsistencies. Sometimes arrows mean an instruction, other times they represent payment flow. Occasionally, they indicate the passage of time.

Often these diagrams show little regard for whose liability the instrument is.  For instance we can’t just write “USD”.  USD isn’t just USD – it’s USD owed to you by your bank.  And as we should now appreciate, these are not the same:

  • USD held in JP Morgan
  • USD held in Silicon Valley Bank
  • USD held in Venmo
  • USD held in a bank in Singapore.

So we need to describe the ledger on which the USD is recorded. In tradfi, this ledger is typically maintained by the liability holder (ie your bank!).

These diagrams often leave questions unanswered and sometimes create confusion.  Misunderstandings are expensive!  Poor communication of ideas between people can lose sales opportunities and waste tons of time.

We can do so much better…

Crypto has shown us the way.  Often, a coin can exist on multiple chains.  For instance, Tether (USDT) is issued on multiple chains including Ethereum and Tron.  They are the same instrument: both are a claim on Tether Inc for bank account money. However, they are recorded on different ledgers.  The crypto industry has differentiated them by adding a small icon representing the chain on the main instrument’s icon:

Tether on Ethereum’s ledger
Tether on Tron’s ledger

So why can’t we apply something similar for payments in general?

I wanted to design something that was intuitive. It should be easy to draw on a whiteboard and it should also be easy to type or write in normal word processing or blogging software.


Part 2: The OIL schema

What matters when we describe payments?

We always care about:

  • The instrument (currency, crypto coin, etc)
  • The current owner of the instrument (usually the person who can create instructions to send the money)
  • and which ledger is the instrument recorded on.

So let’s draw it as such:

Owner Instrument Ledger

You can verbalise this as “Owner’s Instrument at Ledger

For example, AliceUSDJPM means Alice’s USD at JP Morgan.

Sometimes, we care about:

  • The amount/value of the instrument (this isn’t usually that important when describing payment flows at a high level, but become more important when fees are being discussed)
  • The account number, especially someone is moving money between their own accounts.
  • The country the owner resides in, especially when we are discussing cross-border payments

We can add these optional values in like so:

[Country] Owner (#account number) Amount Instrument Ledger

Bold items are always necessary, italicized red items are optional if it helps the situation.

[US] Alice (#123) 50 EUR Citi means US-based Alice’s account 123 has 50 EUR at Citi

Occasionally, we care about:

  • Accounts controlled by one actor on behalf of, or in trust for, one or more other actors.  This is a legal concept, aligned with “bankruptcy remote” concepts.  For instance, a stablecoin issuer may hold funds at a bank, in trust for the stablecoin token holders.  If the stablecoin issuer goes bankrupt, the courts will say that the funds belong to the stablecoin holders, rather than the creditors to the bankrupt issuer.

I’d probably write the beneficiary just after the account number:

[Country] Owner (#account number) (for beneficiary)Amount Instrument Ledger

Paxos (for tokenholders) 15m USD DBS means Paxos holds 15m USD in their “for tokenholders” trust account at DBS.

What about money movements?

An arrow (?) means a change of state of the world. Either money has moved, or the state of an account has changed.  It is usually obvious with context:

Alice10USDCash ? Bob10USDCash

The above means Alice gives $10 to Bob in cash.

But what about this?

Alice100USDCash ? Alice90USDCash

The above means Alice has fewer dollars in her pocket, but is silent on where they went. Perhaps she gave them to Bob, perhaps she lost them – it doesn’t matter.


Part 3: Examples

Let’s build this up.

Starting with cash…

Description OIL schema
A USD banknote in Alice’s pocket AliceUSDCash
Alice gives $10 cash to Bob Alice10USDCash ? Bob10USDCash

Note: In some cases “cash” can be used to mean bank account money (eg cash vs collateral), so if you need to differentiate or be specific, you could say Alice10USDBanknote

Moving on to wallets and banks…

Description OIL schema
Alice sends USD to Bob on Venmo AliceUSDVenmo ? BobUSDVenmo
Alice moves money between two different accounts that she owns at JP Morgan Alice (Acc1)USDJPM ? Alice (Acc2)USDJPM
Alice converts some USD into EUR at JP Morgan AliceUSDJPM ? AliceEURJPM
Alice who banks at JP Morgan, sends USD to Bob who banks at Citi AliceUSDJPM ? BobUSDCiti

Can you see how powerful this is?  Now you don’t have to draw silly diagrams like this:

Next, remittances…

Description OIL schema
Alice in the US sends USD to Bob in the Philippines (to remain as USD ie no FX), both using Wise (Transferwise) [US]AliceUSDWise ? [PH]BobUSDWise
Alice, in the US, sends USD from her account at JP Morgan to Bob, in the Philippines, to arrive as Peso in Union Bank [US]AliceUSDJPM ? [PH]BobPHPUnionBank

This is pretty cool!  We’ve turned verbal blurb:

Alice, in the US, sends USD from her account at JP Morgan to Bob, in the Philippines, to arrive as Peso in Union Bank

into something that is precise and easy to understand: [USA]AliceUSDJPM ? [PH]BobPHPUnionBank

Now, crypto flows…

Imagine a scenario where Alice wants to “onramp” into USDT. That is, she wants to convert USD in her bank account into USDT in her self-custodial wallet.

Description OIL schema
Alice sends 1,000 USD from her account at JP Morgan to Coinbase.  We don’t know what bank Coinbase uses, so we can say “XXX” Alice1,000USDJPM ? Coinbase1,000USDXXX
Coinbase recognizes the deposit and credits it to Alice, who sees the USD in her Coinbase account. Alice0USDCoinbase ? Alice1,000USDCoinbase
Alice buys USDT with USD at Coinbase.  The difference in notional could be fees or trading slippage. Alice1,000USDCoinbase ? Alice998USDTCoinbase
Alice withdraws USDT from Coinbase to her external wallet on Ethereum.  There is a 5 USDT withdrawal fee, kept by Coinbase Alice998USDTCoinbase ? Alice993USDTEthereum

For the last transaction, although this was one action from Alice’s point of view (Alice withdrawing USD), two ledgers are updated: Coinbase’s internal ledger, and the Ethereum blockchain.  We could choose to show this as two separate updates:

1) Alice998USDTCoinbase ? Alice0USDTCoinbase

2) Coinbase993USDTEthereum ? Alice993USDTEthereum

Step 1 shows Alice’s USDT account balance at Coinbase being zeroed out.  Step 2 shows Coinbase transferring USDT to her on the Ethereum blockchain.


Part 4: Some usage guidelines

Follow the money, follow the person, or follow the ledgers?

When Alice, who banks at JP Morgan, sends $10 to Bob, who banks at Citi, there are several angles. We can use the OIL schema flexibly, depending on what we’re trying to focus on. We can (a) follow the money, (b) follow the people, or (c) follow the ledgers.

a) Follow the money:

From an overall perspective, 10 USD has moved from Alice to Bob.  We can draw it like this:

Alice 10 USD JPM ? Bob 10 USD Citi

b) Follow the people:

From Alice’s account perspective her balance has gone down by 10.  We can draw it like this:

Alice 100 USD JPM ? Alice 90 USD JPM

Or this:

Alice -10 USD JPM

Or this:

Alice v10 USD JPM (the v indicates a down arrow).

And from Bob’s account perspective, his account has gone up by 10, so we can draw something like this:

Bob 50 USD Citi ? Bob 60 USD Citi

Or this:

Bob +10 USD Citi

Or this:

Bob ^10 USD Citi (the ^ indicates an up arrow)

I prefer to use ^10 for “an increase of 10” and v10 for “a decrease of 10”, as + and – can be misinterpreted as static balances rather than changes.  For instance does Alice-10USDJPM mean Alice has reduced her balance by 10, or that she just has a negative balance and is $10 overdrawn?  It’s ambiguous.

c) Follow the ledgers:

Alice 10 USD JPM ? Bob 10 USD Citi

Above we show Alice sending USD from her account at JP Morgan to Bob’s Account at Citi.  While this shows the flow of value, it doesn’t show how the money moved.

To get clarity over how money moves, we need to show all the changes across all the relevant ledgers.  This means you need multiple lines, and each line reflects a change in one ledger only.

In this case, the relevant ledgers are JPM, Citi, and the Fed, where JPM and Citi both have accounts.  The three lines are:

Alice v10 USD JPM (Alice has less money at JPM)

JPM v10 USD Fed & Citi ^10 USD Fed (JPM’s account at the Fed goes down and Citi’s account at the Fed goes up)*

Bob ^10 USD Citi (Bob has more money at Citi)

* We could also write the middle line with an arrow (?) instead of ampersand (&) as such: JPM 10 USD Fed ? Citi 10 USD Fed (JPM sends money to Citi at the Fed)

When we force ourselves to follow the ledgers, the exercise starts to look closer to balance sheet accounting.  The purpose of the OIL schema is to make payments easier to describe and draw. For a full balance sheet exercise, which is helpful in its own right, use the tried and tested techniques (T-accounts, debits and credits etc).


Wrap – that’s it!

If describing payment flows is part of your job, do try this out and let me know what you think!  I anticipate that different parts of this will be helpful for different use cases, but overall it should be easy to learn and understand, and it should help with communicating payment flows.

With thanks to Saxon Bartrop for inputs and feedback on this piece.





Source link

By admin