Skip to main content

FedEx Tracking in Google Sheets: The Complete Guide

· 8 min read
The team behind Your Package Tracker

FedEx splits its tracking across half a dozen internal systems — Ground, Express, Home Delivery, SmartPost (now Ground Economy), Freight, International — and each has its own tracking number format. If you've ever pasted a batch of FedEx numbers into a spreadsheet and tried to sort them by status, you know the problem: ups.com and fedex.com don't talk to each other, and neither talks to your sheet.

This guide shows how to consolidate every FedEx service into one Google Sheet using a single formula, so all your FedEx shipments live in one place — next to your order IDs, customer names, and everything else you already track.

The formula, in 30 seconds

Install Your Package Tracker from the Google Workspace Marketplace. In any cell, type:

=PKG_STATUS_LIVE("794657458294", "FedEx", TODAY())

You'll get back In Transit, Delivered, Out for Delivery, or whichever state FedEx has on file — and the cell keeps updating itself as FedEx posts new scan events. No script reruns, no manual refresh button, no Apps Script triggers. The formula auto-routes across FedEx services — you don't need to know whether it's Ground, Express, or SmartPost.

Live auto-updating is unique to Your Package Tracker. Other Google Sheets tracking add-ons return a value once and then sit stale until you re-run them. Ours uses live carrier push notifications so values stay current on their own. The TODAY() argument prompts Google Sheets to re-evaluate the formula daily; the menu's "Refresh Live Tracking" gives you instant updates whenever you want.

The rest of this guide is the detail worth knowing: how to read a FedEx tracking number, how to pull the data at scale, and how to handle the edge cases (international, SmartPost handoffs, freight pros).

FedEx tracking number formats you will see

Unlike UPS's single dominant 1Z format, FedEx uses many. The add-on recognizes all of them, but knowing what you're looking at helps when something doesn't resolve:

LengthLooks likeService
12 digits794657458294FedEx Express — standard domestic Air
15 digits100000000000000FedEx Ground, Home Delivery
20 digits61299998820821234567FedEx SmartPost / Ground Economy (USPS last mile)
22 digits (9611...)9611018765432012345678FedEx SmartPost alt format
Pro #, 9 digits123456789FedEx Freight (LTL)
FDX...FDX123456789FedEx freight pro (prefixed)

Rule of thumb: pass any of them with FedEx as the carrier and it will work. SmartPost numbers can also be tracked with USPS as the carrier in the final-mile phase — the add-on resolves either way.

Step-by-step: a FedEx tracking sheet

1. Install the add-on

Extensions → Add-ons → Get add-ons → search Your Package Tracker → Install. You get 3 free lookups.

2. Build the columns

The layout we see most often for FedEx-heavy ops:

ColHeaderExample
AShip date2026-04-18
BOrder IDSO-8821
CFedEx #794657458294
DCarrierFedEx
EStatus(formula)
FSummary(formula)
GLast event(formula)

3. Drop in the formulas

E2:  =PKG_STATUS_LIVE(C2, D2, TODAY())
F2: =PKG_SUMMARY_LIVE(C2, D2, TODAY())
G2: =PKG_LAST_EVENT_LIVE(C2, D2, TODAY())

4. Scale to a large list — just drag

Drag-fill E2:G2 down to E500:G500. The _LIVE formulas are designed for bulk: our backend batches new registrations behind the scenes, respecting FedEx's rate limits for you. No "too many requests" errors, no babysitting.

The first time each tracking number is seen, the cell briefly shows Registering...; within a few seconds it populates with real data. After that, values keep refreshing automatically as FedEx scans the package.

Prefer a one-shot snapshot? The classic Bulk Track Packages menu (Your Package Tracker → Bulk Track Packages) is still available for users who want a synchronous fetch. But for an always-fresh dashboard, _LIVE is the way.

What each FedEx service looks like once tracked

FedEx Express

The 12-digit Express numbers move fastest: ORIGIN SCAN → DEPARTED ORIGIN → ARRIVED AT DESTINATION HUB → OUT FOR DELIVERY → DELIVERED. For international Express, you'll also see Clearance in Progress and Released by Customs.

FedEx Ground / Home Delivery

15-digit Ground numbers have a different event vocabulary: Picked Up → At FedEx Destination Facility → On FedEx Vehicle for Delivery → Delivered. Home Delivery (residential Ground) adds evening/weekend windows.

FedEx SmartPost / Ground Economy

The tricky one. FedEx picks up bulk, linehauls it, hands it to USPS for the last mile. The 20- or 22-digit tracking number updates in FedEx's system until USPS takes custody, then updates in USPS's.

The add-on queries both networks so the timeline is continuous from your sheet's perspective, but expect the Last Event location to jump from a FedEx hub to a USPS facility partway through.

FedEx Freight (LTL)

Freight pros (9-digit or FDX-prefixed) track in FedEx Freight's system — different vocabulary again: Dispatched → Picked Up → At Destination Terminal → Out for Delivery. Signature confirmation usually appears as Delivered with a consignee name.

International Priority / Economy

International FedEx uses the same 12-digit Express format but surfaces customs events: Export Clearance, Arrived at Destination Country, Customs Clearance, Released by Customs, On Vehicle for Delivery. If a shipment stalls at customs, it usually says so explicitly.

Three FedEx quirks worth knowing

1. SmartPost tracking feels "slow" — it's not broken

SmartPost (now officially FedEx Ground Economy) is optimized for cost, not speed or tracking granularity. Scans are sparser than Ground: often you'll see an origin scan, a linehaul scan 2–3 days later, and then the USPS handoff. This is normal. Don't be surprised when a SmartPost tracking number sits at In Transit for 5 days.

2. 12-digit Express numbers can collide with old FedEx formats

A very old 12-digit number can sometimes be ambiguous between Express and reused Ground. The add-on disambiguates server-side, but if you ever see Tracking number not found on a number you're sure is FedEx, click Your Package Tracker → Refresh Live Tracking in the menu — it forces a fresh registration and usually resolves the ambiguity.

3. Freight pros need the full 9 digits, no prefix

If your TMS exports FDX-PRO-123456789, strip the FDX-PRO- part before passing it to the formula. Extra prefixes will fail the lookup. A quick helper:

=PKG_STATUS_LIVE(REGEXEXTRACT(C2, "\d{9}"), "FedEx", TODAY())

A worked example: a 3PL with mixed FedEx services

Picture a 3PL that ships on behalf of 30 Shopify merchants. Daily volume is 1,500 packages split roughly 60% Ground, 30% SmartPost, 10% Express.

The workflow we've seen work:

  1. One master sheet imports each morning from the WMS: order ID, merchant, tracking number, service (mapped to FedEx).
  2. Column E: =PKG_STATUS_LIVE(C2, D2, TODAY()), drag-filled to row 2000.
  3. Column F: =PKG_SUMMARY_LIVE(C2, D2, TODAY()) — this is what merchants see in their portal.
  4. No daily cron needed. The _LIVE formulas refresh themselves as FedEx posts new scans.
  5. Pivot table by status, sliced by merchant. Their ops team sees, per merchant per morning, how many are Delivered / In Transit / Exception.
  6. Filter view on Exception → that's the callback queue.

The key unlock: the 3PL stopped needing a separate FedEx account dashboard per merchant. One sheet replaced fifteen browser tabs.

Frequently asked questions

Do I need a FedEx developer account or API key? No. The add-on handles the carrier side. You never touch the FedEx developer portal.

Does the add-on work with FedEx Custom Critical? Custom Critical uses the same 12-digit Express format underneath. It's tracked like any other Express shipment.

Can I see signature / proof of delivery images? No. Proof-of-delivery images aren't exposed through FedEx's public tracking, so they can't be pulled into a cell. You'll still need fedex.com for the image itself. The PKG_SUMMARY_LIVE formula does include the signed-by name when available.

What about FedEx Trade Networks / FTN? FTN uses separate systems not covered by consumer tracking. The add-on supports parcel and LTL; FTN freight forwarding is out of scope.

How do I know when FedEx updates a status? With _LIVE formulas, values refresh automatically as FedEx posts new scans — you don't need a hard refresh in normal use. For an instant manual update across the whole sheet, use the menu: Your Package Tracker → Refresh Live Tracking. With the older PKG_STATUS (no auto-update), use =PKG_REFRESH(C2, D2) to bypass its 6-hour cache.

What does it cost? 3 free lookups to try. Paid plans from $19/month. See full pricing.

The takeaway

FedEx's tracking surface is fragmented by design — a legacy of the Ground/Express/Freight/SmartPost history. From inside Google Sheets, that complexity disappears: one formula, every service, every status, in the tool your team already uses.

Install Your Package Tracker free from the Google Workspace Marketplace →

Shipping with more than one carrier? Pair this with our UPS and USPS guides — or browse all articles.