Case study

Case study: Brazilian developer earning $5k

Case studyDeveloperUSDBusiness

A real scenario: a dev receiving $5,000 a month from a foreign company. How much is lost to FX, and how much can be recovered.

Brazilian developer working for a US company

The scenario

João is a contractor developer receiving $5,000 a month from a US company. The question almost no one asks: how much of that actually lands in the account after FX, fees and IOF? The table below is the bottom line at a glance; the rest of the article breaks down where each cost comes from.

$5,000 a month: before and after

CriteriaRuvoBank / SWIFT
FX + fees + IOF0.3% PJ / 0.5% PF~6% or more
TimeSeconds (Pix)1 to 5 business days
Approx. cost / month~$15 PJ / ~$45 PF~$300
Card spend in dollarsFree (0% IOF)3.5% IOF + 2-5% FX
Saved per year (vs bank)up to ~$3,400 (PJ)n/a

The hidden cost of the traditional way

Receiving via bank and SWIFT, the combined cost across FX spread, fees and IOF easily reaches 6% or more, about $300 a month, or close to $3,600 a year. And the money still takes days to arrive.

The same payment with Ruvo

With Ruvo, João receives the salary in dollars, free, holds the balance in USD and converts to reais when he wants. As a business (PJ), conversion is 0.3%; as an individual (PF), 0.5%. Either way there is 0% IOF, none of the 0.38% IOF that other providers charge to receive, so as a PJ the cost is about $15 a month and as a PF about $25, still a fraction of the bank’s cost.
Not sure which account is right for your situation? See our guide to the best accounts to receive USD in Brazil.

The card adds even more

Say João keeps $1,000 a month in dollars for tools, ads and subscriptions. On the Ruvo card that spend is free (0% IOF, 0% spread). On a Brazilian card it would carry 3.5% IOF plus a 2% to 5% FX markup, roughly $55 to $85 a month, gone, on top of the conversion cost.

The yearly math

On conversion alone the annual difference tops $3,000 in this example, before counting the free dollar spend, and without working a single extra hour. It is the kind of saving that quietly compounds and that few stop to calculate. And FX is only part of it: as a PF the income tax (Carnê-Leão, up to 27.5%) is far higher than as a PJ on Simples with pró-labore, see PF vs PJ and business tax on exported services, and how to receive a USD salary in Brazil with lower fees (confirm the tax side with your accountant).

What changes your number

João's numbers are an example, not a fixed rule. The gap between the bank and Ruvo grows or shrinks with a few levers:
  • PF or PJ. Converting as a business (0.3%) versus an individual (0.5%) is the single biggest factor at this income level.
  • How much you hold in dollars. Every dollar you spend straight from the USD balance, instead of converting to reais first, skips the conversion entirely.
  • Card spend. The more of your tooling, ads and travel you put on the dollar card, the more 3.5% IOF plus FX markup you avoid.
  • Conversion timing. Holding USD and converting in portions lets you pick your rate instead of taking whatever the bank gives you on arrival.

If you're working remotely for a foreign company and want to understand the full structure — contracts, tax, and FX — see our guide to working remotely for foreign companies.

Why we built Ruvo

This problem is personal. Ruvo was started by Mike Mason and Alec Howard, who were paying software engineers in Brazil and saw first-hand how much was lost to bad FX and IOF, and how long it took for the money to actually arrive. Ruvo is the account they wished those engineers had had: dollars received free, held, converted at a flat low rate, and spent with 0% IOF.

Frequently asked questions

The case of the dev earning $5k a month.

Talk to support
  • They are an estimate based on typical costs: 4%-8% total cost at banks over SWIFT versus under 1% at Ruvo. Exact figures vary with the bank, the rate and the tax regime.

  • As a PJ, the difference between ~6% at a bank and ~0.3% at Ruvo is about $285 a month. Over 12 months that approaches $3,400, not counting the dollars spent free on a 0% IOF card or the benefit of receiving in seconds instead of days.

  • Yes. The logic is proportional: the larger the recurring payment, the bigger the absolute saving from cutting FX and IOF.

  • The worked example shows the FX and IOF cost comparison and does not model the income tax layer. Income tax on foreign earnings depends on whether you receive as PF (IRPF up to 27.5%) or as PJ under Simples, Lucro Presumido, or Lucro Real. The fee savings shown are before tax — they apply regardless of which regime you use.

  • The case study assumes a contractor (PJ) structure, since employees of foreign companies in Brazil are typically on a payroll service that converts to reais before payout. If you are an employee via an EOR (Employer of Record), you may not control the conversion. If you are an independent contractor invoicing a US company, you do control it — and the case study scenario applies directly.

  • Open a Ruvo account (PJ or PF, depending on your structure), receive your US routing number and account number, share those details with your client or payroll platform, and update your payment method. The first transfer can take a business day or two to confirm. Once it arrives, you can convert or hold as needed. If you are not yet set up as PJ, speak to a contador about opening a CNPJ first — it typically takes a few days to a week.

Ready to Ruvo?

Start using Ruvo today and take control of your money.