I learned long ago to have a Brazilian, preferably someone from the local city so the accent is the same, get prices on everything from car rental to hotels. I get treated better than most turistas because I speak Portuguese (well, enough to get by). But there's a sharp drop-off when it comes to negotiating prices.
There's a good reason we're over-charged. In Brazil, as in all third world nations, people believe that all Americans are extremely wealthy. Considering my weekly income is about equal to what the average Brazilian makes in 15 months, there's some justification for the belief. BTW, that doesn't mean I'm wealthy -- just that they're terribly poor.
Even what we normally give as tips is astronomical to Brazilians. At one popular restaurant in Sarasota dinner for two costs about $60, not including tax, drinks or tip. Add a few martinis (or whatever) and the tab is close to $100. If service is good, the average American will give the waiter $20 or more. For a "well paid" Brazilian waiter that's two days' pay. You really can't blame people in poor nations for trying to get whatever they can out of some gringo rico.
Any time I visit a new city I study street maps and visitor info online first. That way I know where the fun places are, what parts of town to avoid and how to get from A to B. Once in a while a taxi driver will try to take me via a circuitous route to run up the fare. I just tell them in Portugues, "Please don't take me for a ride and I will take care of you." When I get out I give a
50% tip, which amounts to an extra US$3-4. Invariably the cabby will proffer a business card and ask me to call his cell phone any time I need a ride. That's a very small gesture of gratitude for an American but it's a real nice thing for the local guy.OTOH, when negotiating with hoteliers and realtors I try not to give up an inch. They're all crooks and most are richer than you or me. I'm sure Jim can tell similar stories about his favorite island haunts. :^)