Larry, your product works very well on upholstery. If the question was about fabrics then I would have mentioned your product and would not mentioned Maxim Advanced for Wool for fabrics. Wool is a different matter. Area rugs and even broadloom are not protected like most upholstery is protected at the source of manufacturing. Wool is not a flat surface, but has a lot of surface area to protect. Spills are generally from 3 feet and most of the spill penetrates the surface and into the fiber to stain the rug. An acid dye resistor works like a dye and fills up open dye sites limiting staining.
However, the best protection for a rug is to treat with a product with an acid dye resistor (anionic). After the rug is dry (Maxim SOS is very good in this situation), then add a solvent protector (non-ionic). At that point you do have great stain resistance, water repellency, oil repellency and no re-soiling residue. The two protectors do not work against each other (based on their compatible charges), but complement one another. No one protector provides above average stain resistance, soil resistance, water repellency and oil repellency. Even with this combination, the soil resistance is average.
If you want one product, then one which has an acid dye resistor is the best for wool as stains are its greatest danger to continued use. There are some rugs which are bleeders where a solvent makes sense as does our water based Maxim Advanced for Upholstery with Dye Loc. Dye Loc inhibits bleeding of colors as do solvents.
Just because a lot of people use something does not mean it is always the best choice. I hope the rug plants who use your product have good ventilation as I would not want to breath in solvent fumes all day based on the amount you would need to apply to a rug to approximate the protection you get on a fabric. We have a lot of cleaners who use Flex Powder automatically when the better choice for some jobs would be Bio Break or another pre-spray. In short, the answer for protection, pre-spray, rinses, spotters, etc. should not always be one product.