This might be a bit too quick and "step-by-step-y". How much does the reputation increase with one successful sell? Maybe let's do something like "twice that".
Or, better, I think, something exponential. One slave refused twice = decrease, same rate as a successful sale. If that happens a second time with another client, the decrease is doubled. If that happens a third time, the decrease is doubled again. That'd reproduce a social downfall (Bethesda makes a buggy Skyrim? They dissapoint some buyers but they still maintain an incredible reputation. They make a buggy Fallout 4? That pisses off a lot of buyers, but lots of potential buyers haven't heard about the hate. Fallout 76? Ouch, everybody and their mom hates Bethesda now).
Good analogy.
Right now, your reputation increases based on the buyer. Each buyer has a demand, which I'm guessing is meant to represent his/her difficulty, and your reputation exp ("brand_rate") is increased by the buyer's demand / 2
One thing though, this way of doing it kind of calls for another modifier to balance this one out. One that increases with each successful sale that would in turn boost your reputation gains if you keep having successful sales. The positive modifier would increase slower, since trust is harder to earn then it is to lose.
Thing is, I always thought shop owners were less socially important than normal residents. I still believe they ought to be, but you made me doubt... I think let's put everyone at the same levels; small residents talk a lot so they have a lot of impact, big house presidents have a restrained friend circle of people so he won't tell the whole city with a megaphone, but everybody instantly believe his words. All-in-all, both have a seemingly similar result
Hmm.. I guess yeah..
The way I thought of it was like a relational tree. The big house presidents may have a small circle of friends but all of them are more influential then the average Joe, so it's not really that they talk to more people, but they talk to the people that matter. If one of them were to go the guild and say "Jack did an awful job" it would mean a lot more then if one of the residents said it since they have more money. Also, it would be way easier for the information to go to something like a newspaper. It's all about connections.
Also, I don't really see a way for any resident to spread info, except talking, so shops would be like a focal point where every time a resident goes it's very likely that the shop keeper would bring this into discussion if it's hot news, or especially if it's something that's bothering him since people like to rant.
At some point, after enough people know about it, yeah, the residents are more likely to spread it but until then, I think connections have a greater role then the amount of people that one average Joe knows because, even if Joe tells all his friends that Jack fucked up, most of them either don't care, cause they can't buy, and the ones that care, can only spread it around so much until enough people don't care and then it gets lost.
and that'll be convenient to code, right?
I think it's 3 "if" statements since I'm pretty sure I can categorize them based on their demand difficulty, so idk if it would be a problem.