The Federal Fee Rule and the State All-In Pricing Laws
Why this matters
"Junk fees" had a loud couple of years, and a lot of shop owners came away believing a federal rule now bans trip charges, fuel surcharges and service fees. It does not. The federal rule that was finally adopted is narrow and almost certainly does not reach your shop. What does reach many shops is a growing set of state laws, California's first among them, that require the price you advertise or quote to include every mandatory fee. The practical result is the same either way: the number the customer sees first has to be the number they pay, apart from taxes. But knowing which law actually applies tells you how strict you have to be and where.
What the federal rule covers, and what it does not
The FTC's Rule on Unfair or Deceptive Fees, 16 CFR Part 464, was finalized in December 2024 and took effect in May 2025. The proposal that preceded it would have applied across the economy. The final rule was cut back to two industries: live-event tickets and short-term lodging (hotels, vacation rentals and similar). For those businesses it requires the total price, including mandatory fees, to be shown more prominently than other pricing, and it forbids misrepresenting the nature and purpose of fees.
What the rule does not cover is almost every home service business. A plumbing visit, a furnace repair, a lawn treatment plan, a pool service route or a garage door spring replacement is neither a live-event ticket nor short-term lodging. Do not tell a customer the federal fee rule requires anything of you, and do not tell your staff it forbids anything; it is the wrong instrument.
What the narrowing did not change is the general law underneath. Section 5 of the FTC Act still forbids deceptive practices, and a fee buried until the invoice can be deceptive under it whether or not any fee rule exists, as can the same fee under your state's own UDAP statute. That test is owned elsewhere; see related: Unfair and Deceptive Practices Laws Behind Every Complaint. The FTC has said it may revisit other industries; check its site before relying on the two-industry scope a year from now.
The state all-in pricing laws
California went first, and broadly. Senate Bill 478 added a provision to the Consumers Legal Remedies Act (Civil Code 1770(a)(29)), effective July 1, 2024, that makes it unlawful to advertise, display or offer a price for a good or service that does not include all mandatory fees or charges, other than taxes or fees imposed by a government on the transaction and postage or shipping charges. It is not limited to particular industries. "Offer" is the important word for a service shop: the law reaches a price your office quotes on the phone or your website displays, not only a printed ad. The California attorney general's published guidance treats optional, customer-chosen add-ons as outside the mandatory-fee rule, but a fee the customer cannot avoid if they buy the service is inside it.
Because it sits in the Consumers Legal Remedies Act, a California consumer can sue, after a pre-suit notice, and the attorney general and local prosecutors can enforce it as well.
Other states followed in 2024 and 2025, and this is the part to re-check before relying on any list, because it moved fast. Minnesota's all-in pricing requirement took effect at the start of 2025; Colorado enacted one taking effect in 2026; Massachusetts adopted attorney general regulations on unfair and deceptive fees in 2025. Others were considering bills. Their scopes, exclusions and remedies differ: some exclude certain industries, some reach only advertised prices, some reach any price offered. Read your own state's text, and the text of every state you advertise into.
States without a specific law still have a UDAP statute, and a mandatory fee kept out of an advertised price can be argued deceptive under it. The difference is that in an all-in state the omission is a violation by definition, while elsewhere it is a question of net impression, which disclosure before booking can answer.
Sorting your fees under an all-in law
Under the California-style test, the question for each charge is not what you call it but whether the customer can avoid it while still buying the service:
| Charge | Mandatory if the customer buys the service? | Under an all-in law |
|---|---|---|
| Trip charge on every service call | Yes | Belongs inside the advertised or quoted service-call price |
| Fuel or environmental surcharge on every ticket | Yes | Belongs inside the price; renaming it does not help |
| Diagnostic fee, advertised as the price of a diagnostic | It is the price | Fine, as long as nothing else mandatory is added to it |
| After-hours premium, disclosed and chosen by booking after hours | Mandatory for that appointment | Include it in the after-hours price you quote |
| Optional add-on (a filter upgrade, a priority plan) | No | Can be priced separately |
| Sales tax and other government-imposed charges | Government-imposed | May be shown separately |
The middle row is where shops fight the rule hardest, and the honest answer is that a premium tied to an appointment type is part of that appointment's price. Quote it that way.
What these laws do not forbid
Two things owners often assume are banned, and are not, at least under the California text:
- Itemizing on the invoice. The rule is about the price you advertise, display or offer. Once the quoted price includes everything mandatory, the invoice can still break it into a diagnostic line, a trip line and a supplies line if your bookkeeping wants that. What it cannot do is add up to more than the price you quoted, apart from tax and work the customer approved.
- Charging for the cost. Nothing here caps what you charge. The trip cost, the fuel and the shop supplies can all be recovered; they just have to be recovered inside the number the customer sees first. The term for the practice these laws target is drip pricing: showing a low base price and letting mandatory charges drip in later in the transaction. Pricing high is legal. Pricing in installments the customer discovers one at a time is the problem.
Worked example: one invoice under two regimes
A shop's website and phone script say: "Diagnostic visit, one flat price." Call that price D. Every invoice then adds two lines the script never mentions: a "trip charge" equal to 0.40 times D, and a "fuel and shop supplies" surcharge of 6 percent of the subtotal. The shop works in California and also in a neighboring state with no all-in pricing statute.
What the customer actually pays for a diagnostic, before tax.
- Diagnostic: 1.00 D
- Trip charge: 0.40 D, so the subtotal is 1.00 D plus 0.40 D, which is 1.40 D
- Surcharge: 6 percent of 1.40 D, which is 0.084 D
- Total: 1.40 D plus 0.084 D, which is 1.484 D
The real price of a diagnostic is about 1.48 times the advertised one, and the customer learns it from the invoice.
California. Both added charges are mandatory for anyone who buys a diagnostic. The advertised and quoted price therefore has to be the 1.484 D total (rounded however the shop rounds its prices), not D. Disclosing the two fees on the phone does not cure it under this statute: the law requires the displayed or offered price itself to include them. The fix is to stop running them as separate lines on diagnostics and publish one diagnostic price at roughly 1.48 times the old headline, or to absorb some of the difference.
The neighboring state. There is no all-in statute, so the question becomes the general deception test. A website price that is about two-thirds of what every customer actually pays (1.00 D against 1.484 D is about 67 percent) is a strong net-impression problem. The shop's best position there, short of adopting the California fix everywhere, is to state the full price on the website and in the phone script before booking, and record that it did so. See related: Trip Charges, Diagnostic Fees and Disclosure.
The simplest answer for most shops is to run one price everywhere at the all-in number. A shop that advertises one number in California and a lower number next door is inviting a California customer to find the out-of-state page.
What changes the answer. If the surcharge is genuinely optional (for example, a priority dispatch the customer chooses), it can sit outside the advertised price in California and is simply an add-on everywhere. If the trip charge applies only outside a stated service radius and the customer's address is outside it, the price quoted to that customer has to include it, and the advertised price can describe the radius. And if the job is a commercial service call for a business customer, consumer statutes such as the CLRA may not reach it at all, though California's general unfair competition law and the deception test can still apply depending on the facts. Check before treating any commercial account as exempt.
The failure mode
The failure that produces complaints is rarely the shop that never disclosed a fee. It is the shop that put the fee in the fine print, on the second page of the website, or in a line the office reads only when asked. Under an all-in law that is not disclosure at all, because the rule is about what the price says, not about whether the fee can be found. A good check: call your own office as a customer, ask what a service visit costs, and compare the number you hear with the bottom line of a typical invoice before tax. If they differ by anything other than tax and optional work the customer chose, fix the script or the price.
This is not legal advice; for a shop advertising in more than one state, have your attorney review your published prices against each state's current statute.
References
- FTC Rule on Unfair or Deceptive Fees, 16 CFR Part 464 (live-event tickets and short-term lodging)
- California Civil Code 1770(a)(29), added by Senate Bill 478 (2023), and the California attorney general's published guidance on it
- FTC Act Section 5, 15 U.S.C. 45; your state's consumer protection statute and any all-in pricing law
- See related: How to Write a Price Disclosure Script for the Phone; The Fee Disclosure Before Dispatch SOP; Advertised Prices and the Bait-and-Switch Line