Did the truck company charge you more than they promised? RateProof compares what they promised with what they charged, and shows you the difference in plain numbers. No jargon, no IT help needed.
Move your mouse over the 3D cards — they tilt in real time. No account needed to try the calculator below.
Change any number. The flagged total updates live, using the exact same formulas as the real app. This starts with the tour test case.
Detention in this calculator uses 2 hours free at $75/hr, to match the tour case. In the real app you set free hours, rate and cap per carrier.
If you can read a bill, you can use RateProof. No trucking software knowledge needed.
Type in the price your carrier agreed to. That is called a rate card. Example: $2,000 to move the load.
Type in, or upload, the bill they sent you. Example: they charged $2,100.
RateProof shows: you overpaid $100. It checks fuel and waiting time the same way, and writes a short letter you can send. You decide — RateProof never sends it for you.
1. The price sheet — what the carrier promised. 2. The bill — what the carrier charged. That is it. No software to install, no IT help, no long setup.
Like checking a restaurant bill: promised price vs charged price. If they do not match, RateProof shows you by how much, and why.
Want the exact maths? Every result in the app still shows billed, promised, and the calculation, step by step. Simple on the surface, exact underneath.
Billed vs contract, dollar for dollar, with a $1 flag threshold so noise never becomes work.
Your FSC table plus the DOE price for that week. The formula is shown, not guessed.
Wait minus free time, times your rate, capped at your cap. The maths is in the dispute itself.
Bulk import with a column mapper, plus assisted PDF text extraction where you confirm every number.
Per-account isolation, hashed passwords, HttpOnly sessions. Your rate cards are never shown to another user, and never used to train anything.
One clean draft per invoice, ready to copy, download, or paste into your email. Mark it recovered when the credit lands.
This is a static tour mockup using the same test example as the hero, so you can see the layout before you sign up. The real app starts empty and fills only with your data.
Overcharges by type: Linehaul $100 · Fuel $100 · Detention $75. In the real app these bars come from your audit, not from this mockup.
$275 flagged
Linehaul $100 · Fuel $100 · Detention $75
Dispute draft ready to copy.
This hosted version is free to try today. Toggle to see annual pricing. Nothing is charged in this version.
Billed monthly, or $1,990/year on annual.
Up to 100 invoices/mo · 1 user · Upload + email ingest · Detention + fuel only
Billed monthly, or $3,990/year on annual.
Up to 300 invoices/mo · 3 users · CSV/TMS import · Full dispute pack · Monthly savings report
Billed monthly, or $7,990/year on annual.
Up to 1,000 invoices/mo · 5 users · LTL add-on · QuickBooks/Xero export · Quarterly rate-card review
Overage $1 per invoice over your plan. Onboarding $499, waived on annual.
No. RateProof drafts the dispute and you approve and send it. Your carrier relationships stay in your hands.
CSV and manual entry do not depend on a PDF layout. For PDFs, you confirm the extracted numbers before anything is audited, so a layout change cannot silently create a false flag.
No. Data is isolated per account, passwords are hashed, sessions are HttpOnly, and rate cards are never shown to another user or used to train a model.
Export your backup from Settings at any time. Your carriers, invoices, and audit results export as JSON you control.
Because detention and fuel on truckload are deterministic and auditable to a high standard by a solo-built product. LTL, with weight, dims, and reweigh rules, comes later as a paid add-on once FTL is proven.
RateProof stores only what you add: your account, rate cards, invoices, audit results and dispute status, per account, in a Cloudflare D1 database. Passwords are hashed with PBKDF2 and are never stored in plain text. Sessions use HttpOnly cookies. Your rate cards and invoices are never shown to another user, never sold, and never used to train a model. You can export a JSON backup at any time from Settings, and Delete all my data removes your invoices, rate cards and audit log from this account. This is a plain-English summary, not legal advice, and it is honest about the current product: there is no third-party analytics, no advertising tracker, and no email service connected yet, so password reset by email and team invites are not yet available.
RateProof is an audit aid, not legal advice and not a guarantee that a carrier will pay. It flags differences over $1 between a billed amount and the rate card you entered, and drafts a dispute for you to review, approve and send. You are responsible for checking that the rate card matches your signed rate confirmation, for the DOE price you enter, and for what you send to a carrier. Plan prices shown on the site are the planned prices; no payment provider is connected yet, so no charges are made in this version, and plan limits are enforced on invoice counts as described in Settings. If you cancel or delete your data, your backup export is your copy. Use of the service must not involve invoices or data you do not have a right to audit.
If RateProof cannot find real overcharges in your data, you have lost nothing but a few minutes. If it can, you have a dispute pack in your hands.
Your account lives on the server, not in this browser tab. Sign in from any device and your rate cards and invoices are there.
Passwords are hashed on the server. They are never stored or shown in plain text.
Signed in as · Checking connection…
1. Add what the carrier promised (Carrier prices). 2. Add what the carrier charged (Bills). 3. Look at Overcharges & letters to see if you overpaid, and get a letter to send.
You only need 2 things: the carrier's price sheet, and the carrier's bill. Everything else in this app is just those two things, compared.
RateProof shows no sample clients, no sample savings, and no demo invoices. Add a rate card, then add your first real invoice, and this dashboard will show only numbers calculated from your data on the server.
This chart draws only from invoices you have added.
All numbers come from your real invoices and dispute outcomes. Reference monthly price is your selected plan price, not a charge, because no payment provider is connected yet.
Loading report…
One card per carrier. This is the contract truth the audit compares against.
Your CSV needs a header row. Columns: load_id, carrier, invoice_no, date, linehaul_billed, doe_price, fsc_billed, wait_hours, detention_billed.
Upload a carrier invoice PDF. RateProof extracts its text and shows it below. You then enter the confirmed numbers in the manual form.
This page shows only bills where you were charged more than promised. Each one shows: what they charged, what they promised, and the difference. Small differences under $1 are ignored. Review the letter before you send it anywhere.
Export last month, upload it in Invoices & Import, match your columns once, and import. Save the same format each month and importing takes under 2 minutes.
Export Google Sheets or Excel as CSV, then upload it. No reformatting beyond the header row is required.
Save carrier invoices to a folder, download the month's files in one batch, and upload them here. Automatic email ingest needs a mail service and is on the roadmap, not faked.
Keep invoices in one Drive folder per month. Download the folder as a batch, upload the files here. Direct Drive sync needs OAuth and is on the roadmap.
Your data lives in the server database, per account. Export a backup regularly.
Loading account…
Billing status: no payment provider is connected yet, so no charges are made. Saving a plan only sets your invoice limit and reference price.
Forgot your password while signed out? Password reset by email is not connected yet — no email will be sent. That is stated honestly here instead of pretending otherwise.
This is how validation is collected: your answer is saved to your account only, and it powers the pilot report. It is not shared.