Skip to main content
The Shipping Agent lives under Agents → Shipping in app.dash.fi. This page walks through the layout, how to submit invoices yourself, and what each tab shows.

Prerequisites

The Shipping Agent is gated on a product entitlement. If Shipping doesn’t appear in your Agents list, contact support at support@dash.fi or your Account Executive to have it enabled for your account.

Layout

The Shipping Agent uses a second sidebar with three groups:
  • Overview — high-level KPIs and monthly spend trend.
  • Analytics — Spend Insights and Volume & Growth.
  • Audits — Billing, Charge Summary, Late Shipments, and Recovery.
Accounts that ship on Dash.fi’s negotiated UPS account also see a Dash Rate Savings tab. See Dash Rate Savings. The top bar shows the current audit status (“Audited”, “Analyzing”, or “No invoices yet”) and a Configure button for uploading files and managing integrations. Tabs under Analytics and Audits stay locked until at least one invoice has been audited. Once an audit completes, they unlock automatically.

Upload invoices and contracts

Uploading is self-serve. Click Configure in the top bar to open the Configure modal, which has three sections:
Upload UPS or FedEx invoices as .xlsx files. Each carrier’s invoice export from the carrier portal works directly — no reformatting required.The section lists past uploads with their parse status. Larger invoices (40+ MB) are supported; the file uploads directly to secure storage, and Dash.fi validates it server-side.
Upload your UPS carrier agreement as a .pdf. Uploading a contract adds a compliance audit to the Billing view — Dash.fi compares your invoiced rates to the agreement and flags surcharge or rate deviations.Contracts are optional. Invoice-only audits still surface billing errors and the Charge Summary rate comparison, but won’t include contract compliance findings.
Connects the UPS live API for delivery-time tracking and Guaranteed Service Refund (GSR) claim detection.Click Connect UPS API to start the OAuth flow. UPS prompts you to sign in and authorize Dash.fi to read your shipment tracking data. When you return to the dashboard, the section shows the connected UPS account and a Disconnect button. Reconnecting later replaces the existing connection.The connection is required for the Late Shipments tab to cover UPS shipments. Nothing else in the dashboard changes when you connect or disconnect.
Enables FedEx delivery-time tracking and Money-Back Guarantee (MBG) claim detection.FedEx doesn’t use a per-customer OAuth flow. Click Connect FedEx to enable tracking for your account. Dash.fi picks up the FedEx account number from your already-parsed invoices and uses a shared FedEx API credential to look up delivery times. When enabled, the section shows the connected FedEx account number and a Disconnect button.The connection is required for the Late Shipments tab to cover FedEx shipments. If no FedEx invoices have been parsed yet, upload them under Configure → Invoices first so Dash.fi can detect your account number.

How the upload runs

Uploads run in the background, so you can close the Configure modal or navigate between tabs while they finish:
  1. The file uploads directly to secure storage with a real progress bar.
  2. Dash.fi parses the file — invoices become line-item data, contracts become structured rate cards.
  3. An audit runs against the parsed data.
  4. When the audit finishes, the dashboard and top-bar status update automatically.
A progress pill stays visible while parsing and analysis run, so you always know when a fresh audit is on the way. Parsing can take a few minutes for large invoices; you don’t need to wait on the modal.

Tabs

Overview

Landing view for the agent. Shows total audited spend, package count, average cost per package, and a month-over-month spend trend. Use it as the starting point after every new upload. A This Period / Annualized toggle, the same control used in Charge Summary’s rate comparison, switches the Net spend and Shipments KPIs between the uploaded invoice period and a full-year projection. Use Annualized when you’ve uploaded only a month or two of invoices and want to see your full yearly shipping volume. Dash.fi projects the figures by multiplying the period totals by 365 divided by the number of days your invoices cover. When annualized, each KPI’s hint shows how many days of coverage the projection is based on, for example “Annualized from 31 days”.
  • Minimum coverage — annualizing needs at least 7 days of invoice coverage. Below that, the Overview keeps showing period totals with a note that there isn’t enough invoice history yet.
  • Older analyses — analyses that ran before annualized figures were available show period totals with a note asking you to re-run the analysis.
Est. recovery is always an annual figure, whichever toggle position you pick. It sums identified savings and recoverable charges per year. The total opportunity in the outline PDF is also annualized.

Spend Insights (Analytics)

Breaks spend down by service (Ground, Air, International, etc.), zone, weight bucket, and residential vs. commercial. The service donut collapses long tails into “Other” so the top five services stand out. Hovering a slice highlights the matching legend row.

Volume & Growth (Analytics)

Shipment counts over time, monthly growth, and volume distribution. Pair with Spend Insights to see whether cost changes are driven by volume or by rate.

Billing (Audits)

Actionable output of the audit. The tab is split into two sections:
  • Invoice compliance — ranked billing errors and surcharge overcharges pulled from your invoices. Each opportunity shows an annualized dollar impact and a High / Medium / Low severity badge (High at ≥ 25,000/yr,Mediumat≥25,000/yr, Medium at ≥ 5,000/yr, Low below). A Recovery potential KPI at the top sums the ranked opportunities.
  • Contract compliance — only appears when a UPS carrier agreement has been uploaded through Configure → Contract. Dash.fi compares your billed rates to the contract and lists each deviation with a High / Medium / Low severity badge, monthly and annual cost, and a plain-language description. If nothing violates the contract for the period, the section shows a compliant empty state. When violations exist, a Recovery potential KPI sums their annualized cost.
To trigger the contract compliance audit, upload your UPS agreement as a .pdf under Configure → Contract. The section appears on the next completed audit; without an uploaded contract it stays hidden.

Readiness alert

When the tab is empty or partial, Billing shows a readiness alert at the top instead of a blank page. The alert lists exactly which prerequisite is missing per carrier and, when you can act on it, an action button. Invoice compliance needs a parsed invoice per carrier. If neither UPS nor FedEx has one, the alert reads This audit needs more data with an Upload UPS invoice or Upload FedEx invoice button that opens Configure → Invoices on the right section. If one carrier is covered and the other isn’t, the alert switches to This audit is showing partial data and only calls out the missing carrier. Contract compliance surfaces as advisory items in the same alert whenever your invoices are being audited without a contract on file. In that case the tab still renders real Net Spend and Current Disc figures, but the Target Disc% and Benchmark columns can’t be filled in. The alert reads Unlock more with additional data and lists:
  • UPS — an Upload UPS contract button that opens Configure → Contract.
  • FedEx — a neutral notice that Target Disc% and Benchmark aren’t available for FedEx yet. Dash.fi doesn’t parse FedEx contracts today, so there’s no action to take. The line renders in muted text without a button.
Read-only cardholders (users without the agent:write permission) see the alert and its explanation but not the action buttons.

Charge Summary (Audits)

Compares your actual UPS invoice charges against Dash.fi’s contract rates, charge type by charge type. Use it to see exactly which charges Dash.fi would price lower and by how much. Savings are signed — a negative value (shown in red) means Dash.fi’s rate costs more for that charge type. UPS invoices only for now. At the top, a This Period / Annualized toggle switches the totals between the uploaded invoice period and a full-year projection. Annualizing needs at least 7 days of invoice coverage; below that, Dash.fi keeps showing period totals and explains why in a note under the toggle. Four KPIs summarize the comparison:
  • Compared net — what you actually paid across the charges Dash.fi could compare.
  • Dash net — what the same charges would cost at Dash.fi’s rates.
  • Dash savings — the signed difference. This is a target, not a contracted rate.
  • Dash savings % — savings as a percentage of compared net, with the coverage span in days.
Below the KPIs, the Charges by type table lists every compared charge with quantity, published rate, your discount, your net, Dash.fi’s discount, Dash.fi’s net, and the per-row savings. Charge lines that can’t be matched to a Dash.fi rate — no matching contract rate, zero billed weight, or zero shipment count — move to a Not compared section with their combined net amount, so excluded spend never inflates the headline savings percentage. If a minimum-charge floor applies to any Dash.fi rate, a note flags that it can lower the modeled savings.

Readiness alert

Rate comparison needs two things per carrier: a parsed invoice, plus at least one Dash.fi comparison contract enabled for that carrier. When either prerequisite is missing, Charge Summary shows a readiness alert at the top of the tab that names the missing piece and, when you can act on it, an action button.
  • No invoice on file — the alert reads This audit needs more data with an Upload UPS invoice or Upload FedEx invoice button that opens Configure → Invoices on the right section.
  • No Dash.fi comparison contract enabled — a muted line explains that rate comparison isn’t available right now. This gap is on Dash.fi’s side, so it renders without an action button. Contact your Account Executive if you need it enabled.
  • Partial coverage — if one carrier is ready and the other isn’t (for example UPS has an invoice but FedEx doesn’t), the alert switches to the warning variant This audit is showing partial data and only calls out the carrier that’s missing data. The rest of the tab still renders.
Read-only cardholders see the alert but not the action buttons.

Late Shipments (Audits)

Late-delivery refund claim worklist covering UPS Guaranteed Service Refunds (GSR) and FedEx Money-Back Guarantee (MBG). Requires a connected carrier: the UPS API connection under Configure → UPS API for UPS, or the FedEx connection under Configure → FedEx API for FedEx.

Readiness alert

When either carrier isn’t ready, Late Shipments shows a readiness alert at the top of the tab that explains what’s missing per carrier. Only carriers with something to report appear in the alert; a fully ready carrier contributes nothing.
  • UPS not connected — the alert reads This audit needs more data with a Connect UPS button that starts the OAuth flow under Configure → UPS API.
  • FedEx invoice not parsed — Dash.fi picks up the FedEx account number from a parsed invoice, so an Upload FedEx invoice button opens Configure → Invoices for FedEx first. Once an invoice lands, the alert switches to the FedEx-connection prompt on the next refresh.
  • FedEx tracking not available yet — Dash.fi is still waiting on production FedEx tracking API access. This gap always shows for FedEx today and renders as a muted, non-actionable notice (no button), since it’s on Dash.fi’s side. It sits alongside any customer-fixable FedEx gap.
  • Partial coverage — if UPS is ready and FedEx isn’t (or vice versa), the alert switches to This audit is showing partial data and the ready carrier’s rows still populate the worklist.
Once the missing prerequisite is in place, the alert clears within a couple of minutes and the worklist becomes:
  • Status filter tabs — All, Eligible, Expired, Not eligible, Exported, Error — each showing a count.
  • Tracking-number search.
  • Export eligible button that downloads the currently eligible claims as a CSV you can file in the UPS Billing Center or the FedEx Billing Online refund portal. Claims move to Exported once downloaded. Claims the Dash.fi team has excluded during review are left out of the export.
  • Re-download exported button that re-serves a CSV of everything already exported, without changing any claim’s status. Use it to grab a fresh copy of a previous export.
Both download buttons require the agent:write permission. Read-only cardholders see the worklist but not the buttons. Each row shows the tracking number, carrier (UPS or FedEx), service level, Picked up date (the carrier’s pickup date, not label creation), Scheduled delivery time, Delivered time, refund amount in the claim’s currency, the Window ends date (the filing deadline), and the current status. Hovering the status badge on a Not eligible or Expired claim reveals the reason it landed in that bucket. Delivery times render in the delivery’s local clock, not the viewer’s timezone, so a customer in London and one in Chicago see the same time for the same package. Date-only fields (Picked up, Window ends) render in UTC. Carrier coverage differs because the two programs have different terms:
  • UPS — all services with a UPS Service Guarantee. The 15-day filing window is anchored on the scheduled delivery date.
  • FedEx — only the four time-definite domestic Express services eligible under FedEx’s Money-Back Guarantee: FedEx First Overnight, Priority Overnight, Standard Overnight, and 2Day A.M. Ground and non-A.M. deferred Express tiers are excluded. The 15-day filing window is anchored on the FedEx invoice date.

Dash Rate Savings

Shows what you save by shipping UPS packages on Dash.fi’s negotiated UPS account instead of your own. Use it if you ship on both accounts and want to track the savings you’ve already realized alongside the savings still available on your remaining volume. UPS only. The tab is opt-in per customer and only appears in the sidebar once the Dash.fi team has registered your Dash-rate UPS account. There’s nothing for you to set up. If the tab doesn’t appear, your account doesn’t have a Dash-rate UPS account registered. Contact your Account Executive if you think it should. The tab splits your UPS volume into two halves:
  • Realized savings — what you’ve already saved on packages shipped through Dash.fi’s account. Dash.fi prices each package against a frozen baseline of what you paid for the same service on your own account.
  • Potential savings — what the packages still on your own account would save at Dash.fi’s rates. Dash.fi calculates this with the same engine as Charge Summary.

Baseline

Before Realized savings can show anything, the Dash.fi team derives a baseline from your own account’s invoice history and freezes it. Until then, the tab shows a readiness alert reading We’re still setting up your savings comparison, the Baseline KPI reads Pending, and the realized table explains that the comparison is still being set up. Potential savings work without a baseline, so that half of the tab populates right away.

Controls

Two toggles sit at the top of the tab:
  • View — Both, Realized, or Potential. Filters the KPI cards, the monthly chart, and the detail tables to one half of your volume, or shows both side by side.
  • This Period / Annualized — switches Potential savings between the selected period and a full-year projection. Realized savings and the monthly chart always show actuals and are never annualized.

What the tab shows

  • KPIs — Realized savings (with the number of packages shipped on Dash.fi rates), Potential savings, Volume on Dash rates (the share of packages shipped through Dash.fi’s account across complete months), and Baseline (Frozen with the baseline period, or Pending).
  • Monthly savings — a chart of Realized vs. Potential savings by month. UPS billing data runs about two weeks behind, so the current month is always partial.
  • Where the realized savings came from — one row per UPS service with package count, your baseline rate, Dash.fi’s rate, and the savings. Dash-rate packages that can’t be matched to a baseline rate are excluded from the total and counted in a note below the table, rather than estimated.
  • Where the potential savings sit — one row per charge item with your discount, your net, Dash.fi’s discount, and the Dash.fi savings.
Savings are signed. A negative value (shown in red) means Dash.fi’s rate costs more for that row.

Recovery (Audits)

Tracks what happens to UPS Guaranteed Service Refund (GSR) claims after they’ve been filed with the carrier. Where Late Shipments is the worklist of claims to file, Recovery shows the status of claims that have already been submitted. Filing and status changes are handled by the Dash.fi team, so the tab is read-only. You can’t open, edit, or withdraw a claim from here. If a claim needs attention, contact support at support@dash.fi. The tab requires the UPS API connection under Configure → UPS API. Before you connect, it shows a Connect UPS API prompt (read-only cardholders see a note to ask an administrator instead). Once connected, it becomes a paginated list where each row shows:
  • Tracking — the shipment’s tracking number, so you can match the claim to a package.
  • Carrier case — the carrier’s claim reference number, once the carrier has assigned one.
  • Status — where the claim is in the filing and review process (see below).
  • Submitted — the date the claim reached the carrier. Blank while the claim is still at Filed.
  • Recovered — the refund amount credited so far, in the claim’s currency. Empty until the carrier approves something.
A claim moves through these statuses: Every claim starts at Filed and only moves forward. The Dash.fi team files claims in batches, so a claim can sit at Filed briefly before the team confirms it reached the carrier and it moves to Submitted. If nothing has been filed yet, the tab shows an empty state until the first claim goes in.

Alternatives to self-serve upload

If you’d rather not upload invoices yourself, email them to support@dash.fi or send them to your Account Executive. The audit data ends up in the same dashboard either way.