Should a Handyman Charge for Picking Up Materials?

A customer opens an invoice for a bathroom fan swap and sees two and a half hours of labor on a job that took ninety minutes at the house. The missing hour was the drive to the hardware store and back. Should a handyman charge for picking up materials? On an hourly job, yes, because the store run is working time. But it is billable only if the customer heard the hourly rate covered it before the work started. On a flat-rate job, it is already in the number and billing it again is double-dipping.

The question comes from both sides of the invoice. A handyman wants to know whether the trip to the store belongs on the bill, and a customer wants to know why a two-hour visit shows three hours of labor. The answer is the same from either chair, so this guide is written for the handyman and gives the customer's side one section near the end.

The scope here is the drive to the store and the time spent in it. The charge for driving to the customer's house is a different question, covered in how far a handyman should travel for jobs, and the markup on the materials themselves is covered in how much contractors should mark up materials.

The short answer depends on how the job was quoted

Whether the store run is billable is decided by the quote, not by the invoice. Three situations cover nearly every job:

How it was quotedIs the store run billable?Where it lands
Hourly, run disclosedYes. It is working time.Its own line, at the hourly rate.
Hourly, run not mentionedContested. The customer approved the work, not the shopping.A dispute waiting to happen.
Flat rateNot separately. It was in the number.Nowhere. The run is a cost you priced.

The middle row is where the arguments come from. The handyman is not wrong that the hour was worked. The customer is not wrong that nobody told them. The fix costs one sentence at quote time, and the next two sections give it.

Hourly jobs: the store run is working time

On an hourly job, time spent buying materials is working time, because the hour is spent on the customer's job and cannot be spent on anyone else's. Operators and customers both ask online whether contractors charge for the time they spend buying materials, and the hour is rarely the real disagreement. The disagreement is whether the customer knew it would be billed. A handyman who bills the hour and a customer who objects to it are usually describing the same trip.

The sentence that closes the argument goes on the quote or in the terms the customer approves:

"My hourly rate covers time spent buying materials for your job. If I need to make a supply run, it is billed as a separate line at the same rate, and I will tell you before I leave."

Better than the sentence is the line item. A time-and-materials quote that lists "materials run: 1 hour at rate" gets approved with everything else, so the customer approved the hour instead of discovering it. The invoice mechanics for the whole job are covered in how to bill a time-and-materials handyman job, and this line is one row in that structure.

Some states write the principle into law for contracted home improvement work. Pennsylvania's Home Improvement Consumer Protection Act, as the Attorney General's office describes it, allows time-and-materials contracts only when the contractor gives the owner a written initial cost estimate before any performance begins. The contract must also say the cost may not exceed 10% above that estimate, and the price cannot rise past the estimate plus 10% without a written change order signed by both parties. The Attorney General's page says these provisions apply to home improvement contracts over $500, so a short hourly visit may fall outside them. The principle still travels well: estimate first, cap disclosed, signed change order past the cap. A store run priced inside the estimate is billable. A store run that pushes the total past the cap needs the customer's signature first.

Flat-rate jobs: it is already in the number

A flat price is a promise to deliver the finished job for one figure. The drive to the store and the wait at the contractor desk are costs of delivering that promise. If the run took longer than you expected, that is the risk a flat price asks you to carry, and a flat price has to be built with that risk inside it.

The mistake to avoid is quoting flat and then listing a "materials pickup" fee on the invoice. The customer agreed to one number, and a second line for something already inside it reads as a bait and switch even when the total is fair. If you want the run itemized, quote it as an itemized job from the start. If you want it hidden in a flat number, leave it hidden.

The exception is a change in scope. A customer who adds a second fan after you have quoted one has changed the job, and the extra run to buy it belongs on the change order, covered in how to charge for extra work not in the estimate.

Three ways to get materials on site

The decision upstream of the invoice is who gets the materials to the house. There are three options, and each one puts something different on the quote.

MethodWho spends the timeWhat goes on the quote
You shopYouA materials run line at the hourly rate, or the run folded into a flat price.
DeliveryThe store's driverThe delivery fee as a pass-through at what the store charged.
Customer buysThe customerA scope note naming who supplied the parts and what you will and will not stand behind.

Delivery is the cleanest for a job with a long materials list, because the delivery fee is a receipt and nobody argues with a receipt. Shopping yourself is fastest for a small job where one part is missing and the store is ten minutes away. Letting the customer buy is the right call when they have already picked a specific fixture, and it comes with conditions, covered next.

When the customer wants to buy the materials

A customer who buys the materials removes the store run from your day and from the invoice. It also changes three things that belong on the quote.

First, there is no markup, because you are not buying anything. Second, the part is theirs, so a defective unit is a return the customer handles, not a warranty call you absorb. Third, the wrong-part trip becomes the customer's problem: if they bought a fan that does not fit the opening, the visit that ends early is billed at the rate or the minimum, not waived.

A single scope line covers all of it: "Customer supplies the fan. I install it. Labor is warrantied. The part is not." The related question of whether to install something the customer bought at all is a policy decision of its own, and the plumbing version is covered in should plumbers install customer-supplied fixtures.

The forgotten-item trip: whose hour is it

Every thread on this topic ends up arguing about the second trip, the one for the connector that was not in the first bag. The rule is the same one that governs the first trip, with one addition: the cause decides whose hour it is.

A handyman works from a smaller truck than a specialty trade. Nobody expects a full stock of every fastener, so a trip for a part the quote could not have predicted is a cost of the job. A trip for something the handyman should have listed while planning the work is a cost of the handyman. If the customer approved a materials list and the list was missing a piece, the second run is yours. If the opening turned out to hold a different fitting than the photo showed, the second run is the job's and goes to the customer as a disclosed hour.

A store run costs more than the hour. The IRS business standard mileage rate is 76 cents per mile from July 1 through December 31, 2026, so a store ten miles away costs about $15.20 in vehicle expense for the round trip at that deduction rate. That figure is an illustrative floor for what the trip costs you, not a number to bill the customer, and it is one more reason a handful of small runs on one job add up faster than the hours suggest.

The habit that prevents the argument is to tell the customer before leaving: "I am missing one part. The run is about forty minutes and gets billed at the hourly rate, or I can order it for tomorrow." Offering the choice makes the hour a decision the customer made.

Worked example: one bathroom fan, three invoices

The numbers below are illustrative. The loaded hourly rate is a made-up $65, built on top of a wage floor: the Bureau of Labor Statistics reports a median of $23.84 per hour for general maintenance and repair workers as of May 2025, and your own rate adds the cost of insurance and a truck plus the hours between jobs that nobody pays for. The fan costs $85 at the store, passed through without markup to keep the math plain. The install takes 1.5 hours.

LineYou shopDeliveryCustomer buys
Install labor, 1.5 hr at $65$97.50$97.50$97.50
Materials run, 1 hr at $65$65.00$0.00$0.00
Fan at cost$85.00$85.00$0.00
Delivery fee (illustrative)$0.00$25.00$0.00
Invoice from you$247.50$207.50$97.50

Read across, the customer who has you shop pays $40 more than the one who takes delivery, and the difference is the cost of your hour minus the delivery fee. The customer who buys the fan pays the store $85 directly, so their total outlay is $182.50, still less than either other route. What they give up is the warranty on the part and your help if it is the wrong one.

On a flat quote, the first column becomes about $250 with the run folded in, and the invoice shows one line. Nothing on the invoice needs explaining because nothing was added after the customer said yes. That is the whole point of putting the hour on the quote: the customer's yes covers the number they later pay.

What the customer is entitled to know

A customer hiring a handyman by the hour is entitled to know, before the work starts, what the hourly rate covers. That includes whether time spent buying materials is billed, roughly how long supply runs tend to take, and whether the handyman will check before making a second trip. A handyman who volunteers that information before being asked is describing a normal practice, not apologizing for one.

A customer who dislikes shopping time billed at the full rate has legitimate options that cost nothing to raise up front: buying the materials themselves or asking for a flat price instead. The time to propose any of them is at the quote. After the run, the hour has already been worked.


Put the materials run on the quote before you leave for the store

We built EosLog's quote generator so a materials run or a change in scope becomes a written, line-item quote the customer approves from their phone.

Try the free handyman quote generator

No account required. You can also create a free EosLog account to save your line items and reuse them on every quote, or see the plans first.


Sources and further reading

  1. U.S. Bureau of Labor Statistics, Occupational Outlook Handbook, General Maintenance and Repair Workers (median wage $23.84 per hour, May 2025). There is no separate BLS category for handymen, so this is the closest occupation.
  2. Pennsylvania Office of Attorney General, Home Improvement Contractor Registration FAQ (time-and-materials contracts: written initial estimate before work, 10% cap, signed written change order beyond the cap; applies to home improvement contracts over $500).
  3. Internal Revenue Service, Standard mileage rates (business rate of 76 cents per mile, July 1 through December 31, 2026).

This article is general information, not legal advice. Estimate, change-order, and disclosure rules for handyman and home improvement work vary by state and by job size, and many small hourly jobs fall below the dollar thresholds that trigger them. Confirm what applies with your state licensing board or a local attorney before relying on this article for a specific job.