Pricing tiers — cost per bottle at each tier level (Tier 1 = standard)
Dashboard
Total Quotes
—
All time
Accepted
—
Acceptance rate
Active Clients
—
Total clients
Invoiced This Month
—
Loading…
⚠ Needs Attention
Recent Quotes
Quote ID
Client
Date
Status
Quotes by Status
Recent Invoices
Invoice ID
Client
Period
Total
Status
Created
No invoices yet
#
Client
Formulas
Shipping
Date
Status
Notes
Created By
Quote Details
Formulas to QuotePricing table will show all quantities (1, 2, 3, 6, 9, 12)
FormulaTier
Quote Summary
Select a client and add products to see the summary.
Client Name ↑
Contact ⇅
Quotes
Last Quote
Client Information
Quote History
#
Date
Formulas
Shipping
Status
Product SKU Mapping
Formula ID
Formula Name
Client SKU
Custom Pricing HistoryNegotiated prices used across all quotes
Formula
Custom Price
Quote
Date
Status
People at this company
Contracts, labels & documents
Uploading…
Formula ID ↑
Formula Name ⇅
Category
Weight (oz)
Tier 1
Tier 2
Tier 3
Tier 4
Tier 5
CSV Import Preview
Formula ID
Formula Name
Category
Weight (oz)
Tier 1
Tier 2
Tier 3
Tier 4
Tier 5
Group formulas into categories for faster quoting
Loading categories…
Define margin and discount for each pricing tier
Pricing Logic
Base Price = Product Cost ÷ (1 − Margin %)
Discounted Price = Base Price × (1 − Discount %)
Line Total = (Discounted Price + Shipping/unit) × Qty
Example — Gold tier (30% margin, 10% discount), Product Cost $5.40, Qty 6:
Base = $5.40 ÷ 0.70 = $7.71 → Discounted = $7.71 × 0.90 = $6.94 / unit
Manage team access
Name / Email
Role
Status
Invite Link
Define permission sets and assign them to users
Role Name
Users Assigned
Permissions Summary
Weight-based domestic ground rates (Tier 1–5)
Domestic Ground Rates
Weight Range
Tier 1
Tier 2
Tier 3
Tier 4
Tier 5
No rates loaded — import a CSV
Weight-based international rates by zone
International Rates
Weight Range
CA / UK / Australia
Rest of World
No rates loaded — import a CSV
Import History
File
Client
Period
Imported
Uploaded By
Rows
Matched
Unmatched
No imports yet
Invoices
Set to Sent after emailing, Paid once received
Invoice ID ↓
Client ⇅
Period ⇅
Total ⇅
Status
Created
Created By
No invoices yet
✓ Matched Rows
Order #
Ship Date
Recipient
SKU
Product
Client
Qty
—
✗ Unmatched SKUsThese SKUs have no client mapping — assign them first, then re-upload
Assign each SKU to a product formula — no need to re-upload
Order #
Ship Date
Recipient
SKU
Item Name
Qty
How To Use — Pronto Quotation App
Complete step-by-step guide for the full workflow — from setup to generating a client invoice.
★ App Overview
Pronto is a fulfillment quotation and invoicing tool. The core workflow is: set up your catalog → quote clients → import ShipStation shipment data → generate invoices automatically based on what was actually shipped and at what agreed price.
Clients — the companies you fulfill for
Formulas / Products — your SKUs with weight and pricing tiers
Pricing Tiers — volume-based discount schedules per client class
Shipping Rates — domestic and international rate tables by weight
Quotes — agreed pricing for a client covering specific products and a shipping tier
ShipStation Import — monthly CSV upload of what was actually shipped
Invoices — auto-generated from the import using accepted quote prices
1 Initial Setup — done once
Before quoting or invoicing, you need your catalog, pricing, and shipping rates configured.
A
Go to Formulas. Add every product you fulfill. Each formula needs a SKU, name, weight in ounces (used for shipping cost calculation), and pricing for up to 5 tiers (Tier 1 = standard, Tier 5 = best/highest volume). Use Bulk Add to import many at once.
B
Go to Fulfillment & Shipping → Domestic and International. Upload your rate tables. Domestic rates have 5 tier columns (matching your pricing tiers). International rates have two zones: CA/UK/AU and Rest of World. Weight ranges are in ounces.
C
Go to Clients. Add each client company with their contact info, address, and assigned pricing tier. You can also manage their SKU mappings from this view.
2 Client SKU Mapping
Each client identifies your products by their own SKU codes (e.g. "TIB-BS-001") rather than your internal formula IDs. This mapping tells the system how to translate ShipStation shipment lines into your products.
1
Open a client from Clients, then click Manage SKUs. A modal opens showing all formulas.
2
For each formula the client orders, type their SKU code in the input field. Leave blank for formulas they don't use. Click Save SKUs.
3
Each client SKU must be globally unique — two clients cannot share the same SKU code. The system will show an error if a conflict is detected, naming the client that already holds that SKU.
Tip: SKU mapping also works inline — if you upload a ShipStation CSV and some SKUs are unmatched, you can assign them to a formula directly in the import detail view without re-uploading.
3 Creating & Managing Quotes
A quote is an agreed price list for a specific client covering a set of products and a shipping arrangement. Invoices use the Accepted quote price for each product.
1
Go to Quotes → New Quote. Select the client, shipping type (Domestic or International), and the shipping tier. Add the formulas they're ordering — pricing is set per formula in the product catalog, and the account manager selects which tier to apply per line when building the quote.
2
Save the quote. It starts as Draft. Share it with the client. When they confirm, change the status to Accepted. Only Accepted quotes are used for invoice pricing.
3
A client can have multiple Accepted quotes (e.g. different quotes for different products, or a renegotiated price). If two Accepted quotes cover the same product at different prices, the system will ask you to choose which price to use before generating an invoice.
4
Custom pricing: In the tier dropdown for any formula line, select Custom $ instead of a numbered tier. A price input appears — enter the negotiated per-unit price. The quote cannot be saved if any custom-priced line is left at $0. On the generated invoice, custom-priced lines are flagged with an amber Custom badge. All custom prices used across a client's quotes are visible in the Custom Pricing History card on that client's detail page.
Quote statuses: Draft → Sent → Accepted or Rejected. Only Accepted quotes feed into invoice generation.
4 ShipStation Data Import
At the end of each billing period, export the shipment CSV from ShipStation and upload it here. The system matches each shipment line to a client and product using the SKU mapping, then validates everything before letting you generate invoices.
1
Go to Invoicing → ShipStation data import. Select the Billing Period (month/year) and the Client this CSV is for. Then click Upload CSV and choose your ShipStation export file.
2
The system immediately parses the file and shows a summary: total rows, matched (green), unmatched (red). You'll be taken to the import detail automatically.
3
If there are unmatched SKUs: a red section appears at the top of the Unmatched card. For each unknown SKU, select the correct formula from the dropdown and click Save Mapping. The rows are re-matched instantly — no re-upload needed. Invoices cannot be generated until all SKUs are matched.
3b
SKU already claimed by another client: If the SKU you're trying to map is already assigned to a different client, an amber warning strip appears naming that client. Click Reassign to this client → to move the mapping over. The previous client's mapping for that SKU is removed. Use this when a SKU code has been reused or transferred between accounts.
4
Once all rows are matched (unmatched = 0), a green bar appears: click Generate Invoices.
Required CSV columns: Order Number, Order Date, Ship Date, Recipient Name, SKU, Item Name, Quantity. Include a Ship Country column (2-letter country code, e.g. US, CA, GB, AU) for correct domestic vs. international shipping classification. Rows without a country code default to domestic.
One import per client per period. Upload a separate CSV for each client. The system filters SKU matching to only that client's mappings, so mixing clients in one file will result in unmatched rows.
5 Generating Invoices
Once an import has no unmatched SKUs, click Generate Invoices in the import detail. The system groups all shipment rows by product, finds the applicable Accepted quote price, and creates an invoice automatically.
1
Normal case: One Accepted quote per product → invoice created immediately. You'll see a toast "Generated 1 invoice" and be taken to the Invoices list.
2
Price conflict: If two Accepted quotes cover the same product at different prices, a modal appears. For each conflict, select which quote's price to apply, then click Generate with Selected Prices.
3
No quote found: Products with no matching Accepted quote are invoiced at $0.00 with a "No quote" flag. You can still generate and then manually adjust the notes field, or create an Accepted quote first and delete/regenerate the invoice.
4
Duplicate prevention: Clicking Generate a second time for the same import returns an error naming the existing invoice. Delete the existing invoice first if you need to regenerate.
6 Managing Invoices
Go to Invoicing → Invoices to see all invoices. Each invoice has a product line-items section and a Shipping & Fulfillment section that auto-calculates shipping cost per order based on product weights and your rate tables.
1
Status workflow: Invoices start as Draft. Change to Sent after you email it to the client. Change to Paid when payment is received. Status can be changed directly in the invoices list (no need to open the detail).
2
Click View to open the full invoice detail: client address, line items with quote reference, shipping cost per order, and a grand total (products + shipping).
3
Use the Print / PDF button in the invoice detail to open a print-ready version in a new window. Use your browser's print dialog (Ctrl+P / Cmd+P) to save as PDF.
4
Click Delete (in the list or detail view) to permanently remove an invoice and its line items. This also frees that import to be re-generated if needed.
Shipping calculation: Requires (a) product weights set in Formulas, (b) domestic and/or international rate tables loaded under Fulfillment & Shipping, and (c) the applicable quote having a shipping type and tier set. The Shipping & Fulfillment section on each invoice shows a row per order with a 🏠 Dom or ✈ Intl badge, the order weight, and its shipping cost. Domestic and International subtotals are shown separately at the bottom. If rates are not configured, the shipping section shows $0.00.
✦ Recent Updates
↕
Column sorting — Click any underlined column header in Clients, Formulas, or Invoices to sort ascending or descending. Click again to reverse.
⧉
Clone a quote — In the Quotes list, click Clone on any row to instantly duplicate it as a new Draft with today's date. Useful for repeat orders or similar clients.
⬤
Invoice filters — The Invoices page now has All / Draft / Sent / Paid pills at the top to quickly narrow the list by status.
⚠
Needs Attention widget — The Dashboard shows an amber alert card whenever there are unmatched SS imports, unsent Draft invoices, or Sent quotes with no response after 7 days. Disappears automatically when resolved.
$
Client lifetime value — Open any client to see four stats at a glance: total lifetime billed (Paid invoices only), number of paid invoices, total quotes, and quote acceptance rate.
7 Analytics
Go to Analytics to see revenue, volume, and quote performance data across any date range, client, or formula.
📅
Filter by date range: Choose This Month, Last Month, This Quarter, This Year, or Custom to pick exact dates. Leave all filters blank to see lifetime stats.
📊
Six summary cards show: Total Invoiced, Total Paid, Outstanding (sent but unpaid), Units Shipped, Draft Invoices, and Quote Acceptance Rate — all recalculated live when you apply filters.
📈
Monthly Revenue chart shows invoiced amounts per month as bars. Hover each bar for the exact total and invoice count for that month.
🚚
Shipments by Method table breaks down all shipments into Domestic and International rows, showing units, total weight, and the shipping cost charged for each. The classification uses the Ship Country from each ShipStation row, respecting the quote's shipping type setting. Totals are shown in a summary row at the bottom.
🏆
Top Formulas by Volume ranks formulas by units shipped with product revenue and a Total row. Top Clients by Revenue ranks clients by total invoiced — this table is automatically hidden when you filter by a specific client, since you're already looking at just that one.
Scale note: Analytics are computed server-side using SQL aggregation — the page handles hundreds of clients and thousands of invoices without slowdown.
8 Settings
Go to Settings to configure how quote and invoice IDs are formatted.
⚙
Prefix — Set any short label (e.g. Q, QT, INV, BILL) that appears before the hyphen in every new document ID.
#
Digits — Set how many zero-padded digits follow the prefix (2–8). For example, 4 digits produces Q-0001, while 6 digits produces Q-000001.
👁
A live Preview panel shows what the next ID will look like as you type. Click Save Settings — changes take effect immediately for all new documents.
Admin only. Only users with the Admin role can change settings. Non-admins can view the current configuration but cannot save changes.
→ Monthly Billing Workflow
Do this every billing period:
1
Export shipment CSV from ShipStation for the billing period, filtered per client.
2
Go to ShipStation data import → select period + client → Upload CSV.
3
If unmatched SKUs appear, assign them to formulas inline. Repeat for each client.
4
Click Generate Invoices. Resolve any price conflicts if prompted.
5
Open each invoice → Print / PDF → send to client → change status to Sent.
6
When payment comes in, change status to Paid.
Loading analytics…
Monthly Revenue
No data yet
Quote Performance
No data yet
Shipments by Method
Shipping Method
Units
Weight
Shipping $
No data yet
Top Clients by Revenue
Client
Invoices
Invoiced
Paid
No data yet
Top Formulas by Volume
Formula
Units
Revenue
No data yet
Document Numbering
Configure the prefix and digit count used when generating new quote and invoice IDs. Changes take effect for all new documents immediately after saving.
Letters or numbers, e.g. Q or QT
Zero-padded digits (2–8)
Letters or numbers, e.g. INV or BILL
Zero-padded digits (2–8)
Preview
Next Quote ID
Q-0001
Next Invoice ID
INV-0001
⚠ Only admins can change settings.
Access Denied
No permission to view this page
Your account role doesn't include access to this section. Contact your administrator if you believe this is an error.
Client SKU Mapping
Assign a unique client-facing SKU to each formula. These SKUs identify products in ShipStation shipments and fulfillment records.