Example website Cardinal Moving Co. is not a real company. This page shows Tailgate Office’s NapkinPrice widget running on a contractor’s own site, quoting against real rates in a real account. Missed-call text-back Open the demo dashboard About NapkinPrice
Cardinal Moving Co.Charles Town, WV · Local and long-distance since 2011 (301) 555-0142
Local moves, pianos and long distance · Jefferson and Berkeley County

You have a date, a lease ending and no idea what a mover costs. Here is the number.

Tell us how much there is, roughly how far it is going, and what the stairs are like at each end. You get a price range in about a minute with the drive out already inside it — then we come and walk the house before anything is booked.

Licensed and insured, DOT and WV PSC Pads, tape and dollies included Written price before we load
Instant price range
The drive out is in the price$165 for the truck and the crew to reach your door, quoted up front. Nothing appears at the end.
Both ends, asked about separatelyStairs at the pick-up and stairs at the drop-off are two different days’ work. The form asks about each.
We do not quote a move we have not seenThe range books the date. The written price comes after we walk the house, and it is the one you pay.
Move in October, not JulyFrom May 15 the trucks around here are spoken for and the rate says so. The same move in the autumn is 14% less.
What we do

Three trucks, four crews, and nothing we have not moved before

Pads on the furniture before it leaves the room, shrink wrap on anything upholstered, and floor runners down at both ends. A mover who leaves a gouge in your stair nose has not saved you anything.

Priced on this page

Local move, house or apartment

A studio to a four-bedroom house, anywhere inside a hundred miles. Three movers and a 26-footer is the standard crew and most houses are a single day.

Priced on this page

One heavy item, or a few pieces

An upright piano, a gun safe, a sofa from Marketplace, a storage unit emptied. Two movers, a truck and a stair-climbing dolly.

Counted, not guessed

Packing, by the room

Boxes, paper, tape and the labour, charged per room and nothing for the rooms you pack yourself. The kitchen counts as two, because it is glass and it takes twice as long.

Priced on this page

Pianos, safes and pool tables

An upright is a piano board and three people. A grand comes apart. A pool table is three slates and a level, and it is a different trade putting it back — we will tell you who.

On the form

High-rise and certificate-of-insurance moves

Loading dock booked, elevator reserved, pads hung, certificate naming the building. We deal with the management office; you should not have to.

Site visit

Long-distance, out-of-state and storage moves

Over a hundred miles, across a state line, or with a gap between your two dates. Those are priced on weight and real road miles after we have seen the house.

Two addresses, one form

A move has two addresses. This form asks for one, and here is exactly why.

Every other trade prices work at one address. Ours does not, and rather than quietly guess at the second one we would rather tell you what the form does and does not know. Nothing on this page looks up a route between two places.

The ZIP code is where we LOAD from

That is the one the form asks for, and it is the one that decides what it costs to get a truck and three movers to your door in the first place — before a single pad comes off. It sets the drive-out line on your estimate, and you can see every zone and every figure further down this page.

The distance between them is yours to tell us

We cannot work it out and we do not pretend to. You pick a band — it is one question, near the top — and the drive time between your two addresses is priced from that. Pick the band above if you are not sure; we true it up when we walk the house, and it moves the number either way.

  • Same town, under 10 miles no uplift
  • 10 to 25 miles +10%
  • 25 to 50 miles +22%
  • 50 to 100 miles, still one day +45%

Stairs are two questions, not one

Carrying a sofa down two flights and into a ground-floor house is a completely different day from the reverse, and averaging the two would be wrong in both directions. So the form asks about the place we load from and the place we deliver to separately. You do not need a second address to answer either one.

Over a hundred miles we come and look

A long move is priced on the weight that actually goes on the truck and the real road miles between the two addresses. Neither of those is something you can type into a form, so past that we stop quoting and start with a twenty-minute walk-through. There is no charge for it.

How we price

How much there is, how far it goes, and how hard it is to carry

The form at the top of this page uses our real rates. It shows a range rather than a single number because how much is actually in the attic, and what the staircase does at the bottom, are things we can only settle in your house.

Size it, then place it

Pick the nearest home size, then the mileage band between your two addresses and the access at each end. Packing is per room and stays at zero if you are packing your own.

See the range

Midpoint plus or minus 12%, with the $165 drive-out inside it. Nothing quotes under our $395 minimum. Anything over $7,500 gets an estimator instead of a number — past that we are not guessing at your house.

We walk it and confirm

Written price before we load, drive-out priced from the ZIP you are moving out of, and our moving season (+14%) applies from May 15 to September 10, because in those weeks a date given to you is one taken from somebody who rang in March. One heavy item, or a few pieces carries no seasonal rate at any time of year — nobody schedules a piano around a lease, so that service prices the item and the stairs instead of the month.

Service area

Based in Charles Town. We say what the drive out costs before we make it.

This is the one thing your ZIP code decides: what it costs to get the truck and the crew to the address we are loading from. It is not the distance to where you are going — that is the mileage band on the form, and it is a separate line.

  • Local: Charles Town, Harpers Ferry, Shepherdstown and MartinsburgZIPs 254xx
    No drive-out fee
  • Loudoun County and WinchesterZIPs 201xx and 226xx
    +$140
  • Frederick County, MarylandZIPs 217xx
    +$165
  • Prince William, Fairfax, Arlington and AlexandriaZIPs 220xx, 221xx, 222xx and 223xx
    +$285
  • Everywhere else we load fromAny other ZIP we can reach with a truck
    +$425 and +6%
Notes for anyone evaluating the demo
  • Priced path. Pick Local move, house or apartment, then: a two-bedroom apartment or townhouse, 10 to 25 miles apart, two or more flights, no elevator at the address we load from, an elevator or a long carry at the address we deliver to, 0 rooms packed, nothing over 300 pounds, not a Saturday or a month end, no certificate of insurance, nothing to take apart. Use ZIP 25414. The live pricing engine returns $1,034 – $1,316 with the disclaimer, and the lead lands in the demo account’s inbox. That is the job this business does most weeks: the $165 drive-out plus $640 for the two-bedroom is $805 of dollars, and the mileage band (+10%), the pick-up stairs (+22%) and the delivery carry (+14%) pool to +46% and apply once to all of it, for a midpoint of $1,175.30.
  • The two-address gap, which is the whole point of this account. The widget takes ONE ZIP and it picks a travel zone — that is the entire geography the engine has. A move has two addresses and the gap between them is most of the price, so this fixture makes it a DECLARED dropdown of mileage bands and says so on the question, in the disclaimer and in a section of this page. It is the same move trades/plumbing.php makes with urgency, which is a dropdown for the same reason: no hour of the day reaches the engine either. Nothing here implies a lookup: there is no per-mile rate anywhere in the fixture, and the long-distance service’s mileage question carries no pricing rule at all and its help text says so out loud.
  • The ZIP is the ORIGIN, and the travel zone prices only the deadhead. Hold the priced path still and change nothing but the ZIP. 20176 (Leesburg, over the Blue Ridge) is $1,157 – $1,473; 21701 (Frederick, Maryland) is $1,179 – $1,501; 22201 (Arlington) is $1,285 – $1,636. Every one of those is the same move — same size, same eighteen-mile gap, same stairs — costing more only because the truck has further to go to START. Any ZIP outside the listed prefixes, whether 21044 (Columbia, Maryland) or 75001 (Texas), falls to the catch-all: $1,470 – $1,871, the percentage first and then the flat fee.
  • Both ends are asked about separately, and the engine still pools them. This is worth seeing rather than being told. Take the priced path and SWAP the two access answers — the long carry at the pick-up and the two flights at the delivery — and the quote is identical at $1,034 – $1,316, because qf_price() sums every percent into one pool and +22 then +14 is the same as +14 then +22. So the two questions are not there to price the ends differently. They are there because a customer cannot honestly answer one averaged question about two different buildings, and because the dispatcher needs to know which end has the stairs. Flatten the pick-up to a ground floor and the same move is $878 – $1,118; flatten both and it is $779 – $992, which isolates the mileage band on its own.
  • The rate on its own. Strip the priced path back — two-bedroom, same town under 10 miles, ground floor and the truck at the door at both ends, nothing else — and you see it with no percentages at all: $708 – $902, an $805 midpoint, which is exactly $165 + $640. The smallest thing this service will quote is a studio on the same terms: $400 – $510, and the biggest plain one is a three-bedroom house on the same terms: $1,008 – $1,282. Those two are the ends of the $400 – $1,500 local range docs/trade-pages-plan.md section 9 puts on this trade, and the rate card was fitted to land there.
  • One answer at a time from the priced path, everything else held still. A three-bedroom house instead of a two-bedroom apartment is $1,471 – $1,872. Moving the mileage band up from 10–25 to 25–50 is $1,119 – $1,425. Four rooms packed is $1,728 – $2,199. An upright piano in the house is $1,580 – $2,011. A Saturday or a month end is $1,141 – $1,452.
  • The engine has no calendar below MM/DD, so the expensive days are declared. A season can express “mid-May to the week after Labor Day” and nothing finer — no day of the week, no day of the month (docs/trade-pages-plan.md section 9, gap 4). A Saturday and the turn of the month are the two most expensive days in this trade, so they are a single yes/no the customer answers rather than something the engine pretends to look up. Same discipline as the mileage band, same reason.
  • Per room is the only thing that multiplies. Packing is a multiply at $135 a room and answering 0 fires nothing at all, which is exactly right. Home size, the heavy item and the take-apart fee are flat amounts added once for the job; the mileage band, both access bands and the Saturday answer are percentages. One compromise is worth naming: a pooled percent lands on the WHOLE additive subtotal, so the mileage band also marks up the packing labour — and packing a kitchen takes the same two hours whether the new house is two miles away or forty. Measure it rather than assert it: take the four-room case above and drop the mileage band alone to same town, under 10 miles and the midpoint falls from $1,963.70 to $1,829.20, of which $54 is the band landing on the $540 of packing that it has no business touching. The stairs bands arguably should reach it — carrying packed cartons down two flights genuinely is harder — but the miles should not. The packing question’s help text says the rate is “figured across the job” rather than papering over it, and the estimator trues it up.
  • Home size is a dropdown and not a number, and that is a bug avoided. qf_price() skips every rule on a number question answered zero or less (includes/quote-engine.php) — correctly, because “0 rooms packed” must not add a room’s worth of money. Bedrooms as a number would therefore have priced a studio, which has zero bedrooms, at nothing at all. So the size is a pick-one with flat amounts and the studio is an option rather than a zero.
  • A rule that raises the floor instead of adding a fee. A studio, same town, ground floor at both ends, nothing packed — but Yes to the certificate-of-insurance question: the work itself is $455, but the rule lifts the minimum to $1,150 and the quote comes back $1,150 – $1,288. Note the low end of the band is the floor itself, not 12% below it. A booked loading dock, a reserved elevator and a certificate naming the building turn a half-day job into a whole one whatever is in the apartment, and that is what a minimum is for.
  • Out of area. Use ZIP 99901. The visitor gets a polite decline instead of a price, and the lead is still captured.
  • Over the ceiling, and the season is what pushes it there. A four-bedroom house, 50 to 100 miles, two flights at the pick-up, a long carry at the delivery, six rooms packed, a grand piano, on a Saturday, with things to take apart. On --date=2026-09-15 that prices at $5,847 – $7,442, a $6,644.40 midpoint, just inside the $7,500 ceiling. Run the identical answers with --date=2026-06-15 and the +14% season lifts the midpoint to $7,574.62 and the widget routes instead of pricing. The ceiling is checked on the FINAL midpoint, after the season and the travel zone, which is exactly why the same answers can quote in one month and ask for an estimator in another. That is the engine behaving correctly and it is worth demonstrating once.
  • The season sits on one service, it is an uplift rather than a discount, and it is not about the weather. Local move, house or apartment carries the moving season, +14% from May 15 to September 10. Start is before end, so the engine matches it with AND rather than the OR branch a wrap-around range takes. It prices something real and dated: leases turn on the first, the school year ends in June, and from the middle of May to the week after Labor Day the trucks and crews around here are spoken for. Re-run the priced path with --date=2026-06-15 and it comes back $1,179 – $1,501 instead of $1,034 – $1,316; the bare two-bedroom goes from $708 – $902 to $808 – $1,028. One heavy item, or a few pieces carries no season at all, and that is a decision rather than an omission: nobody schedules a piano around a lease, so charging 14% more for one in July because other people are moving house would be a surcharge dressed up as a season. Run its priced path with --date=2026-06-15 and it is still $523 – $640. Both branches of the engine’s season handling are therefore exercised on this one page.
  • The second instant service. Pick One heavy item, or a few pieces: an upright piano, 1 piece, 10 to 25 miles, ground floor at the pick-up, one flight of stairs at the drop-off, nothing to come apart, not a storage unit, ZIP 25414. $523 – $640 — and the $115 roll-out for two movers and a truck is inside that rather than added at the door. One appliance across town with no stairs is $223 – $273; six pieces with one flight is $461 – $563; the same piano out of a second-floor walk-up with a door to take off is $843 – $1,030. The cheapest possible answer set floors at the service minimum: $215 – $237. Its ceiling is $1,800, which a grand piano plus eight pieces, 50 to 100 miles, two flights at both ends and a door off clears at $2,895.70, so that one routes — at that point it is a household move and the other service prices it properly. Its band is 10% rather than the household 12%, and TIGHTER on purpose: a known number of known pieces is a known day, where a house is however much is actually in the attic.
  • The mileage bands bite harder on the small service, and that is deliberate. They are 0, 12, 30 and 60 percent here against 0, 10, 22 and 45 on a household move. On a half-day job the driving genuinely IS the job. The same piano priced from 22201 (Arlington) is $780 – $953 and from the catch-all zone $937 – $1,146 — on a $580 ticket the drive-out is then more than half the price, which is honest arithmetic and also the reason this company does not chase single pieces into the District.
  • Routing mode, and the number this page will not print. Pick Long-distance, out-of-state and storage moves. That service is in site-visit mode, so it never shows a price at all; the visitor sees “we like to see it first”. None of its questions carries a pricing rule — including the one that asks roughly how many road miles it is, whose help text says out loud that the answer carries no price and is only there to decide whether somebody comes out this week or next. This page never prints an engine figure for a long-distance move, because the fixture cannot compute one. An interstate move is priced on the weight that actually goes on the truck and the real road miles between two addresses, and the engine has neither — which is exactly the condition site-visit mode exists for, and the same discipline the chimney demo keeps for a reline and the masonry demo for natural stone.
  • Two questions carry no pricing rule at all, on purpose. On the single-item service, “is either end a self-storage unit” moves no money — it decides whether somebody checks the gate hours and the aisle width before booking you in. On the long-distance service, the road-mileage number is validated between 50 and 3,500 and priced at nothing. Both prove the widget renders and validates an answer that changes no figure, which is a legal and useful thing for a service to ask.
  • The photo question carries no rule. Photos never move the price — the engine skips them entirely. Nothing is uploaded either: on a demo the visitor can tick “I have photos I can send” and the lead records “Has photos to send, not uploaded”, which is the owner’s cue to ask for pictures on the call. Attaching the image itself is on the roadmap.
  • The missed-call text-back. The CallMitt page replays which of five messages a missed caller would get and why. Straight about where it stands: nothing on this platform delivers a text message yet, because there is no SMS gateway and no carrier registration, so the reply becomes an outbox row marked queued and stops there. The rules, the hours, the quiet hours and the opt-out handling are built and running.
  • The widget’s cardinal red matches this site because the account’s key carries a theme color; the same script on an agency’s client site would carry the agency’s color.