Dealer Fulfillment Analytics

Sign in with your Grasshopper Google account to access dealer order and fulfillment reporting.

First-time setup

Create an OAuth Client ID in Google Cloud Console (Web application). Add this page's URL as an authorized JavaScript origin. The Client ID is stored locally in your browser — no server required.
Access is restricted to @grasshoppermower.com Google accounts only.
Grasshopper Dealer Fulfillment Analytics

Upload & Sync

Source Sheet — Quivers Reporting

All sheet access flows through the secure proxy. Drop a CSV below and it'll be imported locally and pushed to the matching year's tab automatically. Email automation also feeds the same tabs on a schedule.
How it works: Drop CSV files below. New rows are added; duplicates are detected and skipped. All data accumulates in your browser's local database. Re-uploading the same file is safe. The proxy pushes uploads to the shared Google Sheet so teammates pick up the new data on their next sync.

Sheets Sync

List the years to sync. The proxy looks up each year's orders and fulfillers tab names from its TAB_MAP Script Property — no URLs needed in the client.

Manual Upload

When ON, dropping a file imports locally AND replaces the matching sheet tab. Other users will pick it up on their next sync. First push of the session will trigger a Google permission prompt.

Fulfiller Performance Report

CSV from the Fulfiller Performance export. Tagged with a period label so the same retailer can appear across multiple reports.

Drop or click to upload
fulfiller_performance-*.csv

Order Details by Item

CSV from the Order Details export. Deduped by Order Ref ID + Item Reference.

Drop or click to upload
order_details_by_item-*.csv

Fulfiller Inventory Snapshot

CSV from the Quivers Inventory export. Fulfiller columns are matched automatically. This is a full-picture snapshot — each upload replaces the previous one.

Drop or click to upload
Inventory-*.csv

Overdue Orders Report

Quivers "Overdue Shipment Item Details" CSV. Columns A, C, D, E, G, J, M are extracted; aging is computed from the Order Created Date. Each upload replaces the current snapshot.

Drop or click to upload
Overdue*.csv

Unclaim Requests by Fulfiller

Quivers unclaim_requests_by_fulfiller CSV → Unclaims tab. Replaces the current snapshot.

Drop or click to upload
unclaim_requests_by_fulfiller*.csv

Fulfiller Unclaim Reasons

Quivers fulfiller_unclaim_reasons CSV → Unclaims tab. Replaces the current snapshot.

Drop or click to upload
fulfiller_unclaim_reasons*.csv

Customer Surveys

Quivers consumer_surveys CSV → Customer Surveys tab. Replaces the current snapshot.

Drop or click to upload
consumer_surveys*.csv

Volume Parts List

Master list of volume-priced part numbers (column D). Compared against Order Details by Item (column T / SKU) on the Volume Parts tab. Each upload replaces the current list.

Drop or click to upload
volume parts list*.csv

Dashboard

Sales by Week

Weeks start Sunday · Sales Total = Subtotal + Shipping + Tax

Orders Over Time

Revenue by Day

Top 10 Dealers by Revenue

Top 10 Products by Quantity

Orders by State

Order Status Breakdown

Fulfiller Performance

Metrics computed from order detail data. Filter by Order Date to see how each fulfiller performed in any period — use this to identify coaching opportunities.

Geographic View

Map loads when you visit this tab.
Fulfiller and order pins are both driven by the Order Date range above — only fulfillers who had at least one order in that window appear. Fulfiller addresses come from the Dealers tab (with manual overrides for distributors / Grasshopper-direct). Hover or click any marker for details.
Map diagnostics (click to expand)
Open the Fulfillers tab to populate.

Order Details

Fulfiller Inventory

Overdue Orders

Unclaims

Unclaim Requests by Fulfiller

Fulfiller Unclaim Reasons

Customer Surveys

Volume Parts

Compares part numbers ordered (Order Details by Item, column T / SKU) against the Volume Parts master list (column D) to see how much of what's being fulfilled is volume-priced — by SKU count and by quantity.

Data Management

Storage Summary

Export Database

Download all stored records as JSON for backup or transfer to another browser.

Import Database

Restore a JSON backup. Existing data is preserved; only new records are added.

Publish to Google Sheets

Download the full merged, deduped data as CSV — ready to paste into your shared Google Sheet tabs. Teammates will then see this data when they sync.

Tip: In your Google Sheet, use File → Import → Replace current sheet to refresh the tab in one step.

Re-Export CSV

Danger Zone

Permanently delete all stored data from this browser only. Shared data in Google Sheets is not affected — you can re-sync to restore.