How Delivery Fees Are Calculated
This is the whole rule, in the open. If a customer ever questions a delivery charge, this page is the answer — nothing about the fee is decided by a person, an app tier, or the order value.
The two numbers you set
| Setting | Meaning | Default |
|---|---|---|
| Free delivery up to (km) | Every kilometre up to this distance is not charged | 0 — nothing is free |
| Charge per km beyond that (Rs) | The rate for each kilometre past the free radius | 0 — keep the flat fee |
| Delivery limit (km) | How far you are willing to go at all | empty — no limit |
You set these in Status & Visibility. They are saved with the rest of that page, in one save.
The arithmetic
distance = straight line from your kitchen to the delivery address × 1.3 (road factor)
gross fee = distance × per km charge ← shown struck through
charged fee = max(0, distance − free radius) × per km ← what the customer pays
Worked through at free 5 km and Rs 10 per km:
| Address is | Shown to the customer | Charged | You receive |
|---|---|---|---|
| 2 km | FREE |
Rs 0 | nothing for delivery |
| 4 km | Rs 0 | nothing for delivery | |
| 5 km | Rs 0 | exactly the free radius is still free | |
| 7 km | Rs 20 | Rs 20 added to the bill | |
| 25 km | Rs 200 | Rs 200 added to the bill | |
| 40 km, limit 12 km | order refused, distance named | no order | nothing reaches you |
If you leave the per-km charge at 0, none of this applies and the platform's flat Rs 40 fee is
used for every order — the same as before this feature existed.
Where the distance comes from
Order of preference, first one that works wins:
- A map pin the customer dropped. Saving an address in their profile now starts with the map: the pin is dropped first (or taken from "use my current location"), the written details follow, and the coordinates are stored with the address and sent with the order.
- The delivery address they typed, converted to coordinates once through an open OpenStreetMap-based service and then stored. The same address never needs converting again. This is the fallback for addresses saved before pins existed, and for an address typed fresh at checkout.
- The centre of the customer's area, when the address cannot be resolved.
Your own position is your kitchen pin, which Contact & Location now requires before the page saves — the centre of your area is only used for restaurants that have not saved that page since. That is what makes every distance exact instead of approximate.
There is no live-GPS pricing: your customer in Kota ordering to their office in Pune must be charged for the office, not wherever their phone happens to be. A shared location only fills the address in; the fee follows the address.
Why it costs nothing to measure
The distance is calculated on our own server from two stored coordinates — no map vendor is called when an order is placed, so there is no per-order fee, no quota that runs out mid-dinner, and no reason for a price to change between the cart and the kitchen. The only outside call in the whole flow is the one-time address conversion, and that service is free and open-source.
The road factor of 1.3 exists because a rider does not travel in a straight line. It is a rough estimate on purpose: distances are rounded to 0.1 km, finer than the estimate deserves would be theatre.
Three guards, so nobody gets clever with it
- The fee is never taken from the customer. Their browser only asks what delivery costs; when the order is submitted, the platform measures again and charges that. So an address edit, a stale tab or a tampered request cannot lower a fee.
- An unmeasurable address never becomes a free address. If nothing could be located, the flat fee applies and the free radius is not honoured. A guess is not a discount.
- The limit is enforced before payment, at checkout, so a 40 km order never becomes your problem to decline.
What the customer sees
At checkout, in the bill: the delivery line with the full amount struck through and what they
actually pay beside it (FREE, or the reduced amount), one line under it naming the kilometres and
your rule, and — if you set one — the distance you deliver up to. If their address is beyond your
limit, they are told so as a toast the moment the app works it out, and the address field says the
same, before they can continue. On the order, the fee row reads FREE rather than Rs 0, and the
kilometres travelled are listed.
Questions you might get
"The customer says 6 km, the app says 8 km." Straight-line distance multiplied by the road factor, from your pin to their address. If your pin is missing, the area centre is used, which can be a couple of kilometres off — set the pin and it is exact.
"Can I just offer free delivery to everyone?" Set the free radius to your limit instead: free within 8 km, refuse past it. That keeps the promise and the logistics in the same place.
"Does a bigger order get cheaper delivery?" No, and that is deliberate: the fee measures the trip, not the bill.
Ready to grow your restaurant?
Join 50+ restaurants on MyCityDeal and start receiving bookings today.