A flat "$20 a walk" rate ignores drive time, extra dogs, overnight on-call hours, and what your app takes in fees. This free calculator prices one visit from your real time and costs, then rolls your whole client list up into a monthly number you can check against your income goal.
Price one visit
Your visit inputs above are saved locally in this browser so you don't retype them next time. A shareable link puts the same numbers in the URL fragment — nothing is uploaded. Your client list below is never saved.
Price for this visit
$0.00
On-site + drive + on-call time
Labor
Mileage
Extra-pet fee
Overhead allocated
Margin
Holiday surcharge
Cancellation cushion
Processing fee
This is a planning floor from the numbers you typed, not a market rate. It does not add taxes, bad debt, or slow seasons unless you fold those into overhead yourself.
Add each recurring client's price per visit and visits per week. Blank or zero-price rows are ignored. These rows are never saved or uploaded — refreshing the page clears them.
Client
Price / visit
Visits / week
1
2
3
4
5
6
Weeks per month and target income are saved on this device and carried in your shareable link, the same as the visit inputs above — only the client rows are never saved.
Clients counted
Visits per month
Average price / visit
Monthly route revenue
Gap to income goal
Extra visits/month to close it
Private by default
Everything on this page runs in your browser and nothing is ever uploaded. Your visit inputs (on-site time, drive, mileage, pets, overhead) and your two route settings (weeks per month, target income) are saved locally on this device so you don't retype them next time — Reset to defaults clears them, and Copy shareable link puts them in a URL fragment your browser never sends anywhere. Your client rows are a different promise: they are never saved anywhere, and closing or refreshing the tab clears them. There is no account. We count only anonymous local feature events (estimate, route-check, link-copied, reset) so we can tell whether the calculator gets used — no names, prices, or route content are recorded, and Do Not Track / Global Privacy Control turn it off automatically.
Common questions
Why does drive time count as billable time if I'm not with a dog yet?
Because it is time you cannot spend on another visit or anything else that pays. A route of five stops with ten minutes of driving between each one spends nearly an hour a day just driving — leave that out of the price and every visit is quietly subsidizing the commute to the next one.
Why is an overnight priced with on-call hours instead of just the minutes I'm actually up and working?
An overnight stay commits your whole night to one client even during the hours nothing goes wrong — you cannot book another job, sleep at home, or leave. Pricing only the arrival, walk, and departure minutes treats being on call as free, which is why a flat per-night rate that ignores it usually undercharges the job with the most exposure.
Why does the calculator gross up the price for a payment processing fee instead of just subtracting it from what I planned to charge?
If a payment app takes 3% and you quote the pre-fee number, you net 3% less than you planned on every single visit. Grossing the price up so the fee comes out of the client's payment, not your margin, is the only way the number you typed as your target margin is the number you actually keep.
Does anything about my clients or route get uploaded?
No. Every field on this page runs in your browser only. Nothing is sent to a server, there is no account, and the client price/visit rows you type into the route table are never saved anywhere — they exist only in the page while it is open. The visit inputs and the two route settings above the table (weeks per month, target income) are different: those are saved locally on this device, so you don't retype them, and a shareable link can carry them to another device. Usage counting only tallies anonymous feature events, and you can turn it off with the button above.