Most of the delivery zones restaurant owners set up are either one flat radius with one flat charge, or no zones at all with a rider sent wherever the customer asks. Both lose money on the far orders and overcharge the near ones. The fix is three or four distance rings from the kitchen, each with a charge that roughly tracks what the trip costs you, and a free-delivery threshold that only kicks in where the order is big enough to carry it.
This is a practical how-to: measure your real delivery costs, draw the rings, set the charges, decide the thresholds, and put the zones into your ordering system so the customer sees the right charge before they confirm. It takes an afternoon with a map and last month's orders.
Why one flat delivery charge does not work
A flat ₹30 charge on every order feels simple and fair. It is neither. A trip to the next lane costs your rider five minutes; a trip 6 km out costs twenty-five minutes, more fuel, and the next order waits. If the charge is the same, near customers subsidise far ones, and far customers order more than they should because it is cheap for them.
Distance-based charges fix the incentive. Near customers get a low charge and order more often. Far customers either pay for the trip or add items to cross the free-delivery threshold. The outer edge of your map stops being a loss. The per-order arithmetic is laid out in what a 200 rupee order really costs to deliver; the short version is that a far delivery on a small order can cost more than the gross margin on the food.
Step 1: find out what a delivery costs you by distance
You need a rough cost per trip for a near, a mid and a far address. Two ways to get it.
If you use on-demand riders, open the courier app and price a trip from your kitchen to three addresses at 2 km, 4 km and 6 km, at lunch and at dinner. Those fares, averaged, are your cost per trip in each ring.
If you have in-house riders, take the full monthly cost of one rider, salary plus fuel plus a share of bike upkeep, and divide by the deliveries that rider does in a month. A rider costing ₹17,000 all in who does 400 deliveries costs ₹42.50 per trip on average. Then weight it by time: a far trip that takes twice as long as a near one costs about twice as much, because it consumes the rider's time that could have carried another order.
Write down three numbers. For a typical city kitchen they land around ₹25 to ₹35 for a near trip, ₹45 to ₹60 for mid, and ₹70 to ₹100 for far.
Step 2: draw the rings on a map
Plot last month's delivery addresses, or the last 200 orders, on a map. Most kitchens find that 70 to 80 percent of orders sit inside 3 km, a thin band between 3 and 5 km, and a scattering beyond. Draw the rings where the density changes.
A workable default for hot food:
- Zone 1: 0 to 3 km. Your core. Most orders, shortest trips, food arrives hot.
- Zone 2: 3 to 5 km. Worth serving, but the trip costs noticeably more.
- Zone 3: 5 to 7 km. Serve only with a charge that covers the trip, or only above a minimum order.
- Beyond: do not deliver, or offer pickup and scheduled orders instead.
Use road distance rather than straight-line distance when you can. A customer across a railway line or a river can be 1 km away as the crow flies and 4 km by road. Most ordering systems that compute distance from a map pin use road or driving distance for this reason. How far the outer ring should go is a question of your food and your city; cloud kitchen delivery radius: how far should you deliver works through it.
Step 3: set the charge for each zone
You will almost never charge the customer the full cost of the trip in Zone 1, because a ₹30 charge on a ₹200 order kills the order. The usual pattern is to under-recover in the core, where volume and repeat orders make it up, and fully recover in the outer rings.
| Zone | Distance | Your cost per trip (example) | Customer delivery charge | Free delivery above |
|---|---|---|---|---|
| Zone 1 | 0 to 3 km | ₹30 | ₹20 | ₹399 |
| Zone 2 | 3 to 5 km | ₹50 | ₹40 | ₹599 |
| Zone 3 | 5 to 7 km | ₹80 | ₹70 | No free delivery |
Two checks on the charges. First, the step between zones should be big enough that a customer on the boundary notices; ₹20 to ₹40 to ₹70 is a clear ladder, ₹20 to ₹25 to ₹30 is not. Second, the Zone 3 charge should be close to your actual cost, because those orders are rare and you do not have volume to make up the difference.
Step 4: decide the free-delivery thresholds per zone
Free delivery is a discount, and it should be set per zone because the thing it is discounting costs more in the outer rings. A single ₹399 threshold across all zones means a ₹400 order at 6.5 km gets an ₹80 trip for free, which is the gross margin on much of the order gone.
A common rule of thumb is to set the threshold at roughly 1.3 to 1.5 times your average order value in that zone, so the customer has to add one item to reach it. If your Zone 1 average order is ₹300, a ₹399 threshold nudges a starter or dessert onto the bill. In Zone 3, either set the threshold high enough that the margin on the order covers the trip, or do not offer it at all. The detailed reasoning is in free delivery threshold: what minimum order should you set.
Step 5: put the zones into your ordering system
Zones only work if the charge is applied before the customer confirms, with no manual step. On a phone order, staff guess the distance; on a WhatsApp chat without a system, they ask for a location and then type a charge.
In a proper ordering flow the sequence is: the customer shares a location pin or address, the system measures the distance, picks the zone, shows the charge and the free-delivery threshold for that zone, and the customer confirms with the total in front of them. Addresses outside the last ring are told politely that delivery is not available and offered pickup if you have it. This is also where the wider idea of serving the right menu and price by address comes in, covered in location-based ordering.
Review the zones once a quarter. Plot the new addresses, check which zone's orders are growing, and see whether a boundary should move. If Zone 2 has grown into a real cluster, a second outlet or a pickup point there may be the next step.
What this looks like on Tezzu
Tezzu has delivery zones with distance-based charges and a free-delivery threshold set per zone. In the dashboard you add each zone with its distance range, its delivery charge and, if you want one, the order value above which delivery is free in that zone. Thresholds are optional per zone, so you can offer free delivery above ₹399 in your core ring and none at all in the outer ring.
When a customer orders on your WhatsApp number or your free store page at tezzu.in/store/your-name, the bot collects their location, works out the zone, and shows the delivery charge in the order summary before they pay. Payment is by UPI or card through Razorpay, or cash on delivery if you allow it. The order lands in the live dashboard and the staff app with the zone and charge on it, so whoever books the rider or dispatches your own knows at a glance how far it is going. If you run more than one outlet on the same number, orders route to the nearest outlet and zones are set per outlet.
Setup takes about 30 minutes end to end, the zones themselves a few minutes, and every plan starts with a 7-day free trial at a flat ₹10 per order with no commission. The step-by-step is in delivery zones, charges and free-delivery thresholds in Tezzu.
Set your zones this afternoon
Start a free 7-day trial, add three zones with charges and thresholds, and place a test order from a far address to see the right charge appear before payment.
Start your free 7-day trialFrequently asked questions
How much should a restaurant charge for delivery?
Enough to cover most of the trip cost in the outer rings and part of it in the core. For many city kitchens that works out to around ₹20 within 3 km, ₹40 to 5 km and ₹60 to ₹80 beyond, with a free-delivery threshold that lifts the average order. Price it from your own rider or courier costs rather than copying a neighbour.
How do I calculate delivery charges by distance?
Find your cost per trip at a near, mid and far address, either from courier app fares or from your rider's monthly cost divided by deliveries and weighted by trip time. Draw rings where the cost steps up, set a customer charge a little below cost in the core and close to cost at the edge, and let the ordering system apply it from the customer's location.
Should delivery zones use road distance or straight-line distance?
Road distance, wherever your system supports it. Straight-line distance ignores rivers, railway lines, flyovers and one-way roads, and can place a 4 km trip inside a 2 km zone. Driving distance from the kitchen to the customer's pin reflects what the rider will actually ride and what the trip will actually cost.
Can I have different free delivery minimums for different areas?
Yes, and you should. The cost of a free delivery is the trip cost, which rises with distance, so the order value needed to justify it should rise too. Set a lower threshold in the core zone to encourage repeat orders and a higher one, or none, in the outer zone. Ordering systems with per-zone thresholds make this automatic.
What do I do with orders outside my delivery zones?
Decline delivery clearly and offer an alternative: self-pickup from the kitchen, a scheduled delivery slot when a rider is heading that way, or a courier for packaged items. An ordering system that checks the location before the order is placed handles this politely and automatically, so staff are not negotiating on the phone.