Privacy & limitations
Updated · 17 September 2026
Your files
The comparison runs in this browser. The comparison does not transmit the selected CSV files or save files in browser storage. Optional anonymous action counts are described below. If you explicitly save a quote in Price history, the chosen SKU and quote details are uploaded as described below. Clear files or close the tab to remove the application's current file references. Downloaded reports remain wherever you save them.
The hosting provider may process ordinary page-request metadata and authentication data under its own policies. “Files stay on your device” describes the comparison application, not a promise that visiting any website produces no network traffic.
What the service does
- Compares UTF-8 CSV or TSV data, up to 5 MB and 25,000 data rows per file. Comma, semicolon and tab separators are recognized.
- Matches exact SKUs, preserving case and leading zeros. Surrounding whitespace, duplicates and invalid prices or pack quantities require review.
- Divides pack cost by a positive integer pack size. Prices allow up to four decimal places. Pack sizes must be whole numbers up to 1,000,000.
- Requires the same currency, underlying unit and pricing basis in both files. No currency, tax, shipping, discount, weight or volume conversion is performed.
- Added and removed items indicate file membership only. They do not establish product availability or discontinuation.
- The printed summary contains the currently shown rows. Export CSV for the full comparison, including rows hidden by filters or pagination.
Reports
Review results against source documents before making purchasing decisions. Original files are never overwritten. Costs in the display are rounded; very small values use scientific notation. CSV numerical results are rounded to eight decimal places. Formula-like text in CSV exports is prefixed with an apostrophe to reduce spreadsheet formula injection risk; some spreadsheet software can still re-interpret exported values. Import SKU columns as text to preserve leading zeros.
Language selection changes the interface, not your data. The chosen language is included in page URLs; no language preference is stored in cookies or browser storage. No files or account data are sent to a translation service.
Your online workspace
Signing in with ChatGPT provides a Site-specific account ID and email. Direct Google sign-in, when enabled, uses a verified Google account ID and email instead. Google and ChatGPT workspaces are separate; matching email addresses do not merge them. We use these IDs to separate saved entries. Google sign-in loads Google Identity Services only on the sign-in page. It does not request Gmail or Drive access. A secure, HttpOnly cookie holds the Google sign-in token until it expires (at most one hour); a separate ten-minute cookie protects the sign-in challenge. Signing out clears both. The app does not store Google passwords or request refresh tokens. When you explicitly click Save or restore a workspace backup, we store the name you provide, selected column headers, currency/number settings, or comparison category totals with a timestamp. Column profiles and summaries do not upload original files, filenames, individual SKUs or prices. Price history is a separate, optional action: after you confirm uploading and select Save quote, we store that SKU, supplier, quote date, currency, underlying unit, pack price and quantity in your account. Restoring a backup containing quotes also uploads those records and requires confirmation. Each quote uses one saved-entry slot. You can read, export and delete price records through your workspace. Quotes do not restore original files or full reports, and saving a quote does not upload the rest of your CSV. Avoid sensitive information in entry names or column headings. Saved entries persist across visits until you delete them. You can export saved entries as JSON, restore that backup to your signed-in account, and delete entries from your workspace. Restore keeps existing entry IDs unchanged and cannot recover original CSV files or full reports. The hosting provider may retain backups and operational logs under its own policies.
Optional usage counts
The checkbox at the bottom of the app is off by default. If you enable it, subsequent completed demos, comparisons, successful saves and live checkout openings send only an action name, an allowlisted example category (pack, sku, review or direct) and the consent flag to this site's server. We store a UTC daily total for each action/category, not event histories, cookies, visitor IDs, account IDs, IP addresses, referrers, filenames, SKUs, prices or file contents. Hosting providers may still process request metadata under their own policies. Counts older than 90 days are removed when the next accepted event arrives. Counts are optional, may include repeat actions, and do not establish unique visitors or purchases.
The choice lasts only for the current page load; uncheck it to stop future counts. Reloading or closing the page resets it. Do Not Track or Global Privacy Control signals disable counting. Previously aggregated counts cannot be linked back to you. No third-party analytics service is loaded. Checkout opening is not a completed payment.
Payments
Free and paid Pro plans are available. Confirming a Pro subscription in Stripe creates a real monthly subscription that renews until canceled. Test-mode checkout, when configured, is restricted to the designated operator account. For a configured checkout, the application sends the signed-in account’s email and account ID to Stripe to create a customer. It stores the account-to-customer mapping and subscription status separately from workspace entries; test and live billing records are kept separate. Stripe hosts payment entry and subscription management. The application does not receive your full card number or security code. It queries subscription status to determine saved-entry capacity and receives signed billing notifications from Stripe.
Deleting saved workspace entries does not delete billing records or cancel a subscription. Billing records persist separately; Stripe retains its own payment records under its policies. For questions about your information or a deletion request, contact support@unitcostdesk.com. Requests may require account verification, and records required for accounting or disputes may need to be retained. Do not email passwords, complete card numbers or identity documents.
Contact
Contact UnitCost Desk at support@unitcostdesk.com. Messages to this address are forwarded through Cloudflare Email Routing to a Gmail inbox used for support. Your sender address, message and any attachments are processed by those providers and used to respond to your enquiry. Support replies are sent through Resend, which processes the recipient address, reply content and any included attachments. Send only information needed to explain the issue; original price lists are not required.
Commercial status
The service offers a free plan and a Pro subscription at US$19 per month. An eligible subscription increases saved-entry capacity from 100 to 1,000. When it ends or payment is overdue, new saves use the free limit; existing entries remain readable, exportable and deletable. Subscription and refund terms are published. The Plans page shows current subscription availability.