When looking at the [USD/BRL conversion rate](https://www.xe.com/currencyconverter/convert/?Amount=1&From=USD&To=BRL) I see a rate more or less 1 USD = ~ 3.90BRL. Then when I want to transfer my funds from my contractor (in USD) to my local account (in BRL), I wait for a day with bigger rate. 

But, by example, the site shows this rate like "1 USD = ~ 3.90BRL" and when ask the transfer, the rate is something like "1 USD = ~ 3.62BRL". 

My questions:

1. Why does this happen?
2. How can I know the correct (or best approximate) conversion rate?
['https://money.stackexchange.com/questions/98715', 'https://money.stackexchange.com', 'https://money.stackexchange.com/users/75994/']
Banks/brokers/currency traders etc... are in the business of making money, not speculating on where an asset class is going to move. Currency is just another "asset" it can change value just like a stock can depending on supply and demand, or a host of other factors. 

If the bank/broker just bought and sold at the market rate everyone sees, they would end up breaking even at best. More realistically they would lose money because they have to pay people to do this for you, and they have to provide the infrastructure to make these trades. All of that costs money. Losing money is not good for business. How do banks/brokers get around this? The same way that a casino makes money, they put a system in place where they always win. 

If the quoted market conversion rate is 1:3.90 then the bank will charge you a percent of that (typically 1.5-2%), it shows up in the rate they give you. When you buy the currency they will over charge you by 2% (so you get less of the currency than you should). When you sell the currency they will give you 2% less then what you would theoretically get in the open market. That is why you see a buy rate and a sell rate, the bank has to make money. They keep the difference, they make a profit, you get your desired currency. Everyone wins. 

If you want to speculate on where the currency goes, or you just want the money to go traveling. It doesn't matter one bit to them they have a business to run they need to make money. If they always buy for less than what the currency is worth and sell it for more, they will always make money in the long run. Typically the rate they use is based on an average of where the rate was for the past 12 hour period, then in 12 hours they change it. So if the currency moves 2% in that period (unlikely but does happen) that will also show because they are giving you an older rate.

The best conversion rate is what someone is willing to give you, some companies charge 1.5%, some charge 2%, some charge more it depends on their cost structure. If it is a big concern to you shop around and do business with the people that give you the best rate. 

Some basic math shows you (3.90-3.62)/3.90 = 0.072, it looks like you are getting charged 7.2% if those are the numbers they give you. Some part of that is also going to be the difference in trading rate between those 12 hour periods.
Because there's is a difference between "Buy rate" and "Selling Rate" of a currency.
The spread in between 2 is the margin which money exchanger earns.
So, for example, a money exchanger buys 5 USD @ 70 INR/USD and sell USD @ 70.5 INR/USD, thereby making profit of 2.5 INR.
You need to see currencies as commodities to understand this concept.