Choosing between SWIFT and Remittance

When you are a migrant worker, you probably need to move some money back to your home country. There are relatively recent offerings of cheaper money-transfer services, typically advertised as remittance – both from banks or specialist companies. Some even promises free of transaction charges. Then you might wonder, with so many options how can you choose the best one? What are the difference between these services and regular telegraphic transfers?

As with many other things in life there is no one best option for all circumstances. It all depends on at least these factors:

  • Transaction amount. I.e. how much you’re transferring.
  • The currency pair (which currencies are used to send money and what currency it is being received).
  • How fast you want it completed. That is, do you want the money moved in the same day or whether you’re okay of waiting 3-4 days.

At one point, I was faced with this same problem. I needed to transfer a significant sum between my account in Singapore to the bank account I have in Indonesia. How much money? Let’s just say it’s a few Mac Pro computers’ worth. Fortunately I control the accounts on both the sending and receiving end, hence that simplifies things quite a bit. Most notably any fees involved will be paid by me – no matter which account that gets charged at the end. Furthermore I would absorb the impact of currency conversion differences. Things won’t be so straightforward if I would be transferring money for making purchases. In those situations, the receiving account would need an exact amount as per their invoice and they can’t be expected to pay any fees either.

I have the option of using either DBS Remittance or the more traditional SWIFT (the organization, not the programming language) network. DBS advertises its remittance services as no-fee transactions. However there are non-negligible charges if I go with the SWIFT option.

So which one is best? In short DBS Remittance would be better for smaller amounts of money. Whereas beyond a certain amount, SWIFT would be better option. Generally DBS Remittance offer significantly worse currency conversion rates than the market and that’s how they make their money. But at smaller amounts, any conversion rate advantage offered by SWIFT gets negated by its fees.

Bank Indonesia – Pekanbaru

What’s the threshold to choose between DBS Remittance and SWIFT? In general, if you’re transferring at least MacBook’s worth of money (even the lowest-end one) or more, consider going through SWIFT. Otherwise if it’s more of a pocket money kind of thing, DBS Remittance would probably be cheaper. Remember that currency rates keeps fluctuating and similarly the threshold also changes. Hence it won’t be much useful to provide a number for you here. But if you follow along this post, you will be able to get the mathematical formulas that you need to plug in your own amounts and rates that you can use to make the decision when encountered with a similar situation.

All of the calculations here are done through Calca – a markdown-calculator software. Hence all formulas are written in Calca’s syntax. Basically you write formulas as if you’re typing a normal text file and Calca can interpret calculations interspersed with text. In fact, this entire blog post was written as a single Calca file and formatted using markdown. Thus you can copy this post and paste it into Calca to get you started in making the calculations that suits your unique situation.

Note that in Calca, the => symbol means calculate this (or as according to the app’s documentation, it means therefore). The symbol makes Calca take whatever expression at its left side and either simplify it or gives a numeric result on the right side.

Possible Scenarios

We’re going to investigate three scenarios of moving money between Singapore and Indonesia. In all three cases, the sending bank would be DBS and the receiving bank would be BCA. Hence the source currency would be Singapore Dollars (SGD) and the receiving currency would be Indonesian Rupiahs (IDR). The accounts in both banks are owned by the same person.

These are the three options that I considered:

  • Use DBS Remittance to send in IDR to BCA.
  • Use DBS SWIFT to send USD to BCA and the receiving bank will convert to IDR.
  • Use DBS SWIFT to send SGD to BCA and the receiving bank will convert to IDR.

Probing for Information

First we need to gather information on exchange rates and fees applicable. All of these rates and fees were collected as of 27-May-2016, thus you might see different values by the time you read this.

DBS doesn’t list their remittance exchange rates on their website. Therefore we need to do some probing. I’ve managed to get DBS’ exchange rates by logging in to DBS’ e-banking web app and attempting to perform a remittance but without confirming it.

On a side note, at least DBS allows me to do this. OCBC is totally mysterious – they don’t list their rates anywhere that’s easy to find and they don’t allow me to see how much the exchange rate would be without executing it.

So I’ve plugged in this amount as input for how much money to transfer. There’s nothing special about the amount – it’s just a reasonably large round number.

dbs_sgd = 100000 SGD

At that time DBS quote that I’ll get the following amount in Rupiah if I make the transfer via remittance.

dbs_idr = 970,873,786 IDR

Now we get the actual exchange rate that was quoted to me. In a sense, DBS is giving me a price (i.e. quoting) which says they’ll sell me that amount of IDR for the given SGD. Remember that DBS Remittance is a fee-less option – although not really free, which you should see better later on.

dbs_rate_idr_sgd =  dbs_idr / dbs_sgd => 9,708.7379 IDR/SGD

I’ve also tried the same trick using DBS’ SWIFT transfer option. They said they would sell me the following USD amount for that hundred thousand Singapore dollars. Fees not included of course.

dbs_usd = 72,296.12 USD    

Now we derive the SWIFT options’ exchange rate between SGD and USD.

dbs_rate_sgd_usd = dbs_sgd / dbs_usd => 1.3832 SGD/USD

Now let’s look at the other bank. BCA lists their exchange rates publicly, so there’s less guesswork involved. The following rates were taken from BCA’s TT Counter buy rates. In essence, they’re going to buy USD or SGD and pay with IDR through the telegraphic transfer channel.

bca_rate_idr_usd = 13,430.00 IDR/USD 
bca_rate_idr_sgd = 9,849.0 IDR/SGD

Notice that BCA has slightly better IDR/SGD exchange rates than DBS Remittance – 9849 IDR for each SGD than DBS’ 9708. This may look small, however if you’re transferring a few Mac Pro’s worth of money, this difference could mean a few extra Magic Trackpad.

Transaction Options

Now let’s encode these three transaction options into formulas. We’ll write a few functions which calculate how much would the resulting IDR value for a given SGD value sent.

As DBS Remittance is a no-fee option, calculating the IDR value received would simply by multiplying its exchange rate.

dbs_remittance_idr(sgd_value) = sgd_value * dbs_rate_idr_sgd

Then we’ll write a few functions for calculating the two various SWIFT options. First we define one to calculate the fees incurred given a transaction amount. Next we write functions to estimate the value obtained by transferring money through it.

DBS’ SWIFT fees has a base fee and a variable fee depending on the value bracket of the money being transferred. Based on the rates they publish, we define the corresponding SWIFT transaction fee function as follows.

dbs_swift_fees(amt_sgd) = 20 SGD + (
    if amt_sgd <= 5000 SGD then 5 SGD 
    else if amt_sgd <= 25000 SGD then 10 SGD 
    else 35 SGD )

In DBS’ e-banking screen for SWIFT money transfers, they encourage sending money using USD values unless the receiving bank prefers otherwise. Based on this we take into consideration the method where we send SGD through USD to reach an IDR account. In this setup, the sending bank converts the SGD value into USD whereas the receiving bank converts it into IDR. Moreover the SWIFT transaction fees are borne by the sender.

dbs_bca_swift_usd_idr(sgd_value) = 
    (sgd_value - dbs_swift_fees(sgd_value)) 
    / dbs_rate_sgd_usd * bca_rate_idr_usd

Finally we consider the more straightforward method of sending SGD value directly through SWIFT and let the receiving bank converts it to IDR. As before, fees are borne by the sender and deducted in SGD.

dbs_bca_swift_sgd_idr(sgd_value) = 
    (sgd_value - dbs_swift_fees(sgd_value)) 
    * bca_rate_idr_sgd

Sample Transactions

Now let’s plug in a few values and see how these methods compare. We’ll sample a number of SGD values and see how much would be the corresponding IDR values given a transaction method. Then we will see at what thresholds would one transaction method would be better than the other.

If you’re mathematically inclined, you could solve this numerically – or even analytically. But frankly since these are all linear functions, plugging in sample values have provided the rough threshold that I needed to make a decision.

Now let’s plug in some very large amounts. Large enough to warrant serious consideration and thinking but not astronomical values (i.e. nowhere near Bill Gates’ net worth).

From the examples below of transferring 100k and 10k SGD the results are pretty clear that transferring through SWIFT as SGD is the winner. That is, the function dbs_bca_swift_sgd_idr yields more IDR amounts for the given SGD values.

dbs_remittance_idr(100000 SGD)    => 970,873,786 IDR
dbs_bca_swift_usd_idr(100000 SGD) => 970,402,876.3096 IDR
dbs_bca_swift_sgd_idr(100000 SGD) => 984,358,305 IDR

dbs_remittance_idr(10000 SGD)    => 97,087,378.6 IDR
dbs_bca_swift_usd_idr(10000 SGD) => 96,802,408.0925 IDR
dbs_bca_swift_sgd_idr(10000 SGD) => 98,194,530 IDR

However at a thousand Singapore dollars and below, going through Remittance is more favorable as SWIFT fees are eating up more significant portions of the transaction.

dbs_remittance_idr(1000 SGD)        => 9,708,737.86 IDR
dbs_bca_swift_usd_idr(1000 SGD)     => 9,466,634.6931 IDR
dbs_bca_swift_sgd_idr(1000 SGD)     => 9,602,775 IDR

dbs_remittance_idr(100 SGD)        => 970,873.786 IDR
dbs_bca_swift_usd_idr(100 SGD)     => 728,202.6687 IDR
dbs_bca_swift_sgd_idr(100 SGD)     => 738,675 IDR

Now let’s try a bigger value of two thousand Singapore dollars. Going through SWIFT is still the winner but the difference is quite small. The difference of dbs_remittance_idr and dbs_bca_swift_sgd_idr at this point is about 34k IDR. To put things into perspective, that amount would probably buy you a simple lunch from a street vendor in Jakarta and probably won’t buy you a Big Mac there.

dbs_remittance_idr(2000 SGD)    => 19,417,475.72 IDR
dbs_bca_swift_usd_idr(2000 SGD) => 19,176,003.6091 IDR
dbs_bca_swift_sgd_idr(2000 SGD) => 19,451,775 IDR

Just for the sake of curiosity, let’s zoom in between those two values. At fifteen hundred Singapore dollars, DBS Remittance becomes attractive again compared to Swift. Similarly the difference is about the cost of one sidewalk lunch in Jakarta.

dbs_remittance_idr(1500 SGD)    => 14,563,106.79 IDR
dbs_bca_swift_usd_idr(1500 SGD) => 14,321,319.1511 IDR
dbs_bca_swift_sgd_idr(1500 SGD) => 14,527,275 IDR

Notice that in all cases that we tested, going through USD was never the most attractive option. That is, it was always somewhere in between remittance or directly SWIFT-ing Singapore dollars. Lesson learned is that don’t always trust your bank – they’re there to take care of their own butt, not yours.

This concludes today’s post and analysis. Hopefully this is useful for you and your situation. Until next time.


Get articles like this sent to your inbox as soon as they are published.

* indicates required

Unsubscribe any time and we won't share your details with third parties.

Tags: , , , , , ,