As a person who currently has way too much time on my hands, I suggest not getting so detailed that the guy who sells the magi, correction does not even sell but rather simply refers them to a different cheaper merchant to sell them grain, and then know that the guy lives in Basil and is OCD about selling the most pristine grain and goods and left his father's merchant house in Trier because the Bishop became aware of the guys relationship with another young man who's parents wish him to enter the priesthood, but refused to leave his lover.
Yeah... that was way too much info for a guy who had a 20 minutes scene.
But I don't think you can ever go wrong with a NPC that is too detailed, but it should not be necessary.
One trick I use though, to keep a game silky smooth, is I make a list of say 50 men's names and 50 women's and then write what their name means. Just a few words. GAËL: "white, fair, blessed, generous". This way as I go through a game if I suddenly need a NPC who is a fair and honest librarian, merchant, captain, ect. I just look at the list and say, "Hey Gael is a good name." And plop it goes in.
However I also do the other trick of if a character is going to be adverse to the players and there will be dice rolls, I keep a list of relevant scores. ((Oh I lie, I actually make out the entire sheet and history... but again, I have endless amounts of time))
Though Xavi does make a great point, having the sigil of a NPC magus, a strange tick or feature of a NPC, or even a odd vocal affect of the NPC, are easy and terrific ways to bring a NPC to life without doing much work. The woman in scarlet who cast snakes of flame in a alley is fine, but if she were to have eyes that bulged and twitched or a voice that was broken and stuttered, people will remember it and it will spark a memory in their own heads of someone they know and then they will identify with it.
I was playing in a RPG called Kult, and the ST describe a man as "smelling like vanilla covering up rotting flowers" and that blew my mind!