Center-of-Gravity Method for Warehouse Location
For supply chain it architects and product owners · Compare approaches

Center-of-Gravity Method for Warehouse Location: Illustrative logistics integration monitoring and event-queue reconciliation desk; not a client facility.
Quick answer: center of gravity method warehouse location
The center-of-gravity method for warehouse location weights each supplier, port and customer coordinate by annual tonnes times freight rate, takes the weighted mean latitude, and weights longitude by the cosine of latitude. The result is a balance point for screening regions, not the cheapest site; a Weiszfeld iteration and road-distance check must confirm it.
TL;DR — what you’ll learn
- Weight each point by annual tonnes times its freight rate per mile or kilometre; tonnes alone moved the US example's center 66 miles toward the import port.
- Correct longitude with the cosine of latitude, as the Census Bureau does; the effect was 3 miles here but grows on networks spanning many degrees of latitude.
- The weighted mean is not the minimum-cost point: the US center modelled 5.6% above the Weiszfeld optimum, and the India center 13.8% above the port.
- Before site visits, tie extract tonnes to invoiced tonnes within 1% by state and test service reach against the 11-hour driving limit or e-way bill validity.
Topics: center of gravity method warehouse location · weighted coordinates warehouse location · center of gravity method limits · center of gravity worked example · weiszfeld minimum cost location
All quantities, amounts, product codes and events are illustrative teaching examples.
A network study ends with a pin on a map. Someone averaged every customer and supplier coordinate, weighted by volume, and the pin dropped between two interstates. The site team starts calling brokers within ten miles of it, a lease gets signed, and the first full year of freight invoices lands well above plan. Nobody checked whether the pin was the cheapest place to stand or only the balance point of the data.
The center-of-gravity calculation is worth keeping. It takes thirty minutes, needs nothing more than a spreadsheet, and points the search at the right region. Used with the right weights, a cosine correction and a minimum-cost check, it tells you how far the cheapest point may sit from the pin and which data errors could have moved it.
- What you will be able to do: compute a weighted center from shipment history, correct longitude for latitude, and compare the result with the true minimum-cost point.
- Worked numbers: a US network fed through the Port of Savannah, priced in dollars, and an Indian network fed through JNPA, priced in rupees, with the same arithmetic shown for both.
- Controls: who owns the input data, which checks a script can enforce, and a review checklist before any site visit is booked.
What a center-of-gravity result tells a network planner
The center of gravity is the point where your freight weights balance, not the point where freight cost is lowest. It is a screening answer: it narrows a continent to a region, and it gives every later model a sensible starting coordinate.
The US Census Bureau uses the same idea for its mean center of population. Its computation note describes a weightless, rigid, flat surface that would balance if a weight sat at each person's location. Replace people with tonnes or freight dollars and you have the warehouse version. The Bureau also computes a median center and states plainly that the two answers differ; network planners should expect the same.
The center-of-gravity method for warehouse location averages origin and destination coordinates weighted by annual tonnes times freight rate, using the Census Bureau's cosine-of-latitude longitude correction; in the US example below the resulting point models 5.6% more annual freight cost than the minimum-cost point found by iteration.
Three assumptions sit under every result. Freight cost grows in a straight line with distance, distance is measured as the crow flies, and any point on the map is available. None holds exactly. Trucks follow roads, rates taper on long hauls, and the pin may land in a reservoir or a protected forest. Treat the output as a region to investigate, then test candidate sites with road distances and real rate cards.
- Good use: deciding whether a second warehouse belongs in the Southeast or the Midwest before paying for a full network model.
- Good use: giving a mixed-integer or simulation model a starting coordinate and a sanity check on its output.
- Poor use: choosing between two industrial parks thirty miles apart, where labour, rent, tax and road access matter more than straight-line miles.
Choosing weights: tonnes, shipments or freight cost per mile
Weight each point by annual volume multiplied by the freight rate that applies to that flow. Volume alone treats a full-truckload inbound tonne the same as a tonne delivered in small LTL drops, which pulls the pin toward the wrong side of the network.
The choice matters more than most planners expect. In the US example below, weighting by tonnes alone moves the center 66 miles south-east of the freight-cost-weighted answer, because the import flow from Savannah is cheap per tonne-mile but large in tonnes. Shipment counts mislead in a different way: a customer who orders daily in parcels looks heavier than one who takes four full trucks a month.
Scroll horizontally to see all columns.
| Weight used | What it represents | Typical distortion | When it is acceptable |
|---|---|---|---|
| Annual tonnes | Physical mass moved to or from each point | Ignores that inbound truckload costs less per mile than outbound LTL or parcel | All flows use one mode at similar rates |
| Shipment count | Number of dispatches or receipts | Overweights frequent small orders and underweights bulk lanes | Parcel-only networks where cost per package is flat |
| Tonnes x rate per tonne-mile | Freight cost sensitivity to each extra mile | Depends on rate assumptions that may change at the next tender | Default for mixed inbound and outbound networks |
| Annual freight spend | Money already paid on each lane | Spend already includes today's distance, so far points look heavier than they are | Avoid as a weight; use only to check totals |
Use the freight rate per unit of distance, not total lane spend. Total spend already contains the current distance, so a remote customer served from today's warehouse looks heavier than the volume justifies, and the method double-counts the existing network. Rates per tonne-mile or per tonne-kilometre come from your tariff or tender results, split at least by inbound full load and outbound delivery mode.
The weighted-coordinate formula and its cosine correction
Latitude is a plain weighted mean; longitude needs each weight multiplied by the cosine of that point's latitude. Degrees of longitude shrink toward the poles, and the Census Bureau's method applies exactly this correction for its population centers.
The block below is the whole calculation, including the haversine distance used to price a candidate site and the iteration that finds the minimum-cost point. Every variable is defined so the formula can be copied into a spreadsheet or a short script and reviewed by someone who did not write it.
Inputs per point i (supplier, port, plant or customer cluster):
lat_i, lon_i decimal degrees (south and west negative)
V_i annual volume (tonnes)
R_i freight rate for that flow ($ per ton-mile or Rs per tonne-km)
w_i = V_i * R_i
Center of gravity (Census Bureau style):
lat_c = SUM(w_i * lat_i) / SUM(w_i)
lon_c = SUM(w_i * cos(lat_i) * lon_i) / SUM(w_i * cos(lat_i))
Distance from candidate site s to point i (haversine, sphere radius r):
a = sin^2((lat_i - lat_s)/2) + cos(lat_s) * cos(lat_i) * sin^2((lon_i - lon_s)/2)
d_is = 2 * r * asin(sqrt(a)) r = 3,958.8 mi or 6,371 km
road_is = d_is * k k = circuity factor (assumed 1.20 US, 1.25 India)
Annual modelled freight cost at s:
C(s) = SUM(w_i * road_is)
Minimum-cost point (Weiszfeld iteration, start at the center of gravity):
x_next = SUM(w_i * x_i / d_i) / SUM(w_i / d_i) for both coordinates,
using x and y in a local projection (y = lon * cos(lat_c)); stop when the
move is under 0.001 degree. If x lands on a point, check that point's cost.
In mid-latitude networks the cosine correction is small. For the US example it moves the answer about 3 miles, because the points span only ten degrees of latitude. It grows when a network spans Canada and Mexico or north and south India, and leaving it out is an avoidable error that a reviewer will rightly question.
Worked US example: a Savannah import flow and five demand cities
The freight-weighted center for this illustrative network lands at 35.39 N, 85.21 W, about 24 miles from Chattanooga, Tennessee. The minimum-cost point sits near the Athens–Winder area east of Atlanta, and Atlanta itself models 5% cheaper than the center.
The company imports 18,000 tonnes a year through Savannah and moves them inbound by full truckload at an assumed $0.12 per ton-mile. It delivers the same tonnage to five metro clusters by mixed LTL and truckload at an assumed $0.20 per ton-mile. Coordinates are city centres; volumes and rates are illustrative, chosen to show the arithmetic rather than any market rate.
Scroll horizontally to see all columns.
| Point | Lat, lon | Tonnes a year | Rate ($/ton-mile) | Weight w | Road miles from center | Cost from center ($) |
|---|---|---|---|---|---|---|
| Port of Savannah (inbound) | 32.08, -81.09 | 18,000 | 0.12 | 2,160 | 395 | 852,781 |
| Chicago | 41.88, -87.63 | 6,500 | 0.20 | 1,300 | 561 | 728,701 |
| Atlanta | 33.75, -84.39 | 4,200 | 0.20 | 840 | 147 | 123,405 |
| Dallas | 32.78, -96.80 | 3,800 | 0.20 | 760 | 824 | 626,380 |
| Columbus, Ohio | 39.96, -83.00 | 2,300 | 0.20 | 460 | 406 | 186,673 |
| Charlotte | 35.23, -80.84 | 1,200 | 0.20 | 240 | 296 | 71,023 |
| Total at the center (35.39 N, 85.21 W) | 36,000 | 5,760 | 2,588,963 | |||
| Chattanooga, TN (candidate) | 35.05, -85.31 | 2,580,624 | ||||
| Atlanta, GA (candidate) | 33.75, -84.39 | 2,459,933 | ||||
| Minimum-cost point (33.92 N, 83.96 W) | 2,451,653 |
The sums behind the center are short enough to check by hand. The weighted latitudes add to 203,836 and the weights to 5,760, giving 35.388. The cosine-weighted longitudes add to -399,134 against cosine-weighted weights of 4,684.1, giving -85.210. Road miles use the haversine distance times the assumed 1.20 circuity factor.
Worked India example: JNPA imports feeding five metro markets
For an illustrative importer moving 24,000 tonnes a year through JNPA, the center lands at 20.24 N, 74.72 E in north Maharashtra, about 30 km from Manmad. Bhiwandi, near the port, models ₹1.10 crore a year cheaper than the center.
Inbound containers move by full truck at an assumed ₹3.0 per tonne-km; outbound deliveries to five metro clusters run at an assumed ₹4.5 per tonne-km. Road distance is the haversine figure times 1.25, an assumption a planner should replace with actual highway distances for the shortlisted sites.
Scroll horizontally to see all columns.
| Point | Lat, lon | Tonnes a year | Rate (₹/tonne-km) | Weight w | Road km from center | Cost from center (₹) |
|---|---|---|---|---|---|---|
| JNPA, Nhava Sheva (inbound) | 18.95, 72.95 | 24,000 | 3.0 | 72,000 | 294 | 2,11,35,874 |
| Pune | 18.52, 73.86 | 4,000 | 4.5 | 18,000 | 265 | 47,65,523 |
| Ahmedabad | 23.02, 72.57 | 5,000 | 4.5 | 22,500 | 476 | 1,07,08,870 |
| Delhi NCR | 28.61, 77.21 | 7,000 | 4.5 | 31,500 | 1,205 | 3,79,51,915 |
| Bengaluru | 12.97, 77.59 | 5,000 | 4.5 | 22,500 | 1,080 | 2,43,07,059 |
| Hyderabad | 17.39, 78.49 | 3,000 | 4.5 | 13,500 | 634 | 85,65,581 |
| Total at the center (20.24 N, 74.72 E) | 48,000 | 1,80,000 | 10,74,34,821 | |||
| Chhatrapati Sambhajinagar (candidate) | 19.88, 75.34 | 11,08,59,615 | ||||
| Bhiwandi (candidate) | 19.30, 73.06 | 9,64,27,739 | ||||
| Minimum-cost point (the port itself) | 18.95, 72.95 | 9,44,10,689 |
India adds a tax layer that the coordinates cannot see. Under section 25 of the CGST Act a business registers in each state where it makes taxable supplies, and section 25(4) treats each registration as a distinct person. Schedule I, paragraph 2 makes supplies between distinct persons taxable even without consideration, so stock moved from a Maharashtra warehouse to a Karnataka one is invoiced and taxed, not just transferred.
India warehouse-location studies weight JNPA inbound tonnes against metro deliveries, then add the CGST Act section 25(4) distinct-person rule, because each extra state warehouse is a separate registration; in the illustrative network the center sits 13.8% above the cost at the port, while Bhiwandi sits 2.1% above it.
Mean center versus the minimum-cost point: Weiszfeld's correction
The point that minimises weighted distance is found by iteration, not averaging, and it can sit far from the center of gravity. Run the Weiszfeld update from the center as a starting point and compare costs before anyone visits a site.
E. Weiszfeld published the iteration in 1937 in the Tohoku Mathematical Journal. Each step re-weights every point by the inverse of its distance from the current estimate, so far-away points lose influence that the plain average gives them. In the US example the first three steps move the estimate from 35.39 N, 85.21 W to 34.07 N, 83.84 W, and it settles at 33.92 N, 83.96 W.
The India case shows an extreme version. The port carries 40% of the total weight, and the remaining pulls from Delhi, Bengaluru, Ahmedabad and Hyderabad partly cancel because they point in different directions. The iteration converges onto the port itself. Any point holding at least half the total weight is always the minimum-cost location, by the triangle inequality, and a dominant point can win with less.
- Check the gap: if the minimum-cost point models more than 3% cheaper than the center, shortlist sites around the minimum-cost point, not the pin.
- Check for a dominant point: if the iteration lands on a port or plant, test sites within drayage range of it before looking anywhere else.
- Check flatness: price a ring of points 50 miles or 80 km around the optimum; a flat cost surface means labour and rent should decide.
Road miles, drive-time limits and the service radius test
Once a region is chosen, test every candidate against the delivery promise in hours, not miles. A site that is cheap on ton-miles but cannot reach a key market inside one driver's legal shift will add relay, team-driver or second-day costs that the average never priced.
In the United States, 49 CFR 395.3(a)(2) bars a property-carrying driver from driving after 14 consecutive hours on duty, and 395.3(a)(3)(i) caps driving at 11 hours inside that window. At an assumed 50 mph average including congestion, one shift reaches roughly 550 road miles. Chicago at 561 miles from the US center is borderline; Dallas at 824 miles is not a single-driver, same-shift lane.
The service-radius test for a center-of-gravity warehouse site compares TMS road miles with the 11-hour driving limit in 49 CFR 395.3(a)(3)(i); at an assumed 50 mph, lanes over about 550 miles need a relay, team or second-day promise, which the weighted average never prices.
India has no single equivalent cap built into network design, but distance drives compliance time. Rule 138(10) of the CGST Rules makes an e-way bill valid for one day for up to 200 km and one more day for every further 200 km or part of it, with tighter limits for over-dimensional cargo. A 1,205 km road leg to Delhi NCR from the India center therefore carries seven days of validity, and a slower lane risks an expired document.
Data errors that move the pin: a geocoding incident in five steps
The most common cause of a wrong center is not the formula but the address behind each shipment. Geocode the physical ship-to location, reconcile tonnes by state against invoiced sales, and only then compute weights.
The trace below is a composite of a typical failure, using the US example's data. It shows how half of one city's volume can be attached to a head-office address and why a state-level tonnage tie-out catches it before anyone books flights.
- Mon 09:05, extract: the analyst runs TMS report RPT-4471, "Delivered shipments by consignee, FY2025", exporting 41,880 lines with consignee name, ship-to ZIP, weight and mode.
- Mon 09:40, geocode: 1,612 lines have a blank ship-to ZIP because one retailer's load tenders carried only its bill-to party; the geocoding script falls back to that address, its Minneapolis head office, moving 2,100 tonnes of Atlanta-area deliveries 900 miles north-west.
- Mon 11:15, compute: the center lands at 36.21 N, 85.79 W, 65 miles north-west of the correct answer and 55 miles from Nashville; the draft deck recommends a Nashville-area search.
- Tue 10:00, control check: the review script compares tonnes by destination state with ERP billing document totals; Minnesota shows 2,100 tonnes in the extract against zero invoiced, and the run is blocked.
- Tue 14:30, rerun: ship-to addresses are rebuilt from the delivery documents, the center returns to 35.39 N, 85.21 W, and the shortlist moves to Atlanta's east side; on correct data a Nashville site would have modelled $336,501 a year more than Atlanta.
Who owns the inputs and where tools assist the analyst
Each input to the calculation has an owner outside the analytics team, and each owner signs a specific figure. The analyst owns the method and the run log; finance, transport and sales own the numbers that go into it.
Scroll horizontally to see all columns.
| Input or output | Where it comes from | Owner | Signs off |
|---|---|---|---|
| Delivered tonnes by ship-to location | TMS shipment history tied to ERP billing documents | Transport analytics | Logistics controller |
| Inbound tonnes by port or supplier | Purchase orders, bills of lading, goods receipts | Procurement and import desk | Supply planning lead |
| Rate per tonne-mile or tonne-km by flow | Current tariffs and latest tender results | Freight procurement | Head of transport |
| Growth or loss assumptions per market | Sales plan for the design year | Commercial planning | Sales director |
| Coordinates, circuity factor, method version | Geocoder output and run log | Network analyst | Network design lead |
| Candidate shortlist and cost ranking | Model output plus road-distance check | Network design lead | Supply chain VP and CFO |
Software helps most where data is messy and judgement is narrow. A model can read free-text consignee names and propose ship-to matches, or flag a ZIP code that does not match the city. It should not decide which customer volumes to exclude, which growth case to use, or whether a port-adjacent site beats the pin. Those are commercial choices with a named signatory.
Scroll horizontally to see all columns.
| Task | Fixed rule a script enforces | Where software or AI assists | Who decides |
|---|---|---|---|
| Matching consignee text to a ship-to site | Every line needs a geocode with match quality recorded | Suggests matches for misspelt or abbreviated consignee names | Transport analyst accepts or rejects each suggestion |
| Tonnage tie-out | Extract total within 1% of invoiced tonnes, by state | Explains variances by listing the largest unmatched shipments | Logistics controller |
| Longitude correction | Cosine weighting always applied; run fails if missing | None needed | Not a judgement |
| Choosing rates for each flow | Rate source and date stored with the run | Fits a distance taper from recent invoices | Freight procurement |
| Reading a candidate site's land-use map | Point must fall on land zoned for warehousing before costing | Summarises zoning maps and flood-zone overlays for each site | Real estate lead |
| Picking the shortlist | Minimum-cost and service-radius checks completed | Ranks sites on cost and drive time | Network design lead, then CFO |
Center-of-gravity review checklist before site visits begin
Do not book a site visit until every line below has evidence attached. The checklist takes about a day for a mid-size network and prevents the two expensive mistakes: searching the wrong region and searching the right region around the wrong point.
Scroll horizontally to see all columns.
| Step | Evidence required | Pass condition |
|---|---|---|
| Data period and design year stated | Extract dates and growth case named in the run log | Twelve months or more of history; design year agreed with sales |
| Ship-to geocoding | Match-rate report and list of fallbacks | No bill-to or head-office fallbacks; unmatched tonnes under 1% |
| Tonnage tie-out | Extract versus invoiced tonnes by state | Within 1% for every state over 2% of volume |
| Weights | Volume and rate per flow, with rate source | Inbound and outbound rates set separately |
| Cosine correction and formula version | Script or spreadsheet with locked formulas | Second analyst reproduces the center within 0.01 degree |
| Minimum-cost comparison | Weiszfeld result and cost ratio | Gap reported; shortlist centred on the cheaper point |
| Sensitivity runs | Center moved for plus or minus 25% on the two largest markets and inbound rate | Shortlist holds or is widened to cover the range |
| Service radius | Road miles or km from each candidate to each market | Key markets reachable inside the promised delivery time |
Sensitivity runs earn their place. In the US example, raising Dallas by 50% (with matching inbound) moves the center 37 miles west, while lifting the inbound rate from $0.12 to $0.15 per ton-mile moves it 28 miles toward Savannah. If a plausible change moves the answer further than your shortlist radius, widen the shortlist before narrowing it.
- Price the region: our own-warehouse versus 3PL cost comparison runs the shortlisted region over ten years.
- Size the building: the warehouse design process takes over once a site is chosen.
- Long outbound lanes: mode choices for the farthest markets are covered in FTL vs LTL vs PTL, with more network topics in the logistics and supply chain library.
If you want the shipment extract, geocoding checks and minimum-cost run built into your TMS and ERP reporting rather than a one-off spreadsheet, send us a short brief describing your current network and the decision you need to make.
Discuss this workflow
Describe your current systems, the recurring exception and the outcome you need. Keep shipment, customer and financial records out of the initial message.
Common operational questions
Practical answers for operations, engineering, and finance teams working on center of gravity method warehouse location in logistics & supply chain.
Does the center of gravity give the lowest-cost warehouse location?
What should the weights be in a center-of-gravity calculation?
Why multiply longitude by the cosine of latitude?
What if one port or plant carries most of the volume?
References
Sources checked 13 November 2026. US and India statutory authorities and vendor documentation support platform facts; the worked examples and diagrams are original.
- US Census Bureau - Centers of Population Computation for the United States, 1950-2020 (Geography Division, November 2021)Balance-point definition, mean versus median center, and the cosine-of-latitude weighting for longitude. Accessed 13 November 2026.
- US Census Bureau - Centers of Population for the 2020 CensusLanding page linking the computation documentation. Accessed 13 November 2026.
- E. Weiszfeld - Sur le point pour lequel la somme des distances de n points donnes est minimum, Tohoku Mathematical Journal, First Series, vol. 43 (1937), pp. 355-386Original iterative method for the minimum weighted-distance point. Accessed 13 November 2026.
- eCFR - 49 CFR 395.3 Maximum driving time for property-carrying vehiclesParagraphs (a)(2) 14-hour window and (a)(3)(i) 11-hour driving limit; text read on the Cornell LII copy because eCFR blocked automated access. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Rules, 2017, Rule 138(10) (validity of e-way bill)One day up to 200 km and one more day per further 200 km or part, with separate limits for over-dimensional cargo. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Act, 2017, Section 25 (registration; sub-section (4) distinct persons)Registration in each state where liable and treatment of each registration as a distinct person. Accessed 13 November 2026.
- CBIC - Central Goods and Services Tax Act, 2017 (consolidated text as on 28 September 2022), Schedule I, paragraph 2Accessed 13 November 2026. Supply of goods or services between related persons or between distinct persons as specified in section 25, when made in the course or furtherance of business, is treated as supply even without consideration.
- ASC X12 — EDI Supply Chain & Transportation Transaction Sets (204/210/214/856/940/945)US standard for electronic data interchange across shippers, 3PLs, and motor carriers.
- FMCSA — 49 CFR Part 395 Hours of Service & Electronic Logging Devices (ELD)US federal motor carrier dispatch and driver duty-status compliance mandate.
- ULIP & NIC GST E-Way Bill Portal — Unified Logistics & Rule 138 ComplianceIndian statutory goods-in-transit and multi-modal logistics verification framework.