Taxi company management · Québec
Enter the coupon once.
It ends up on the invoice.
Karnet is a management platform for Québec taxi companies. The driver captures the coupon on their phone, even with no signal. The office validates it, invoices its corporate accounts and produces driver pay — from that same entry, never retyped.
- French and English
- Hosted in Canada
- Monthly subscription
- Client
- Manufacture du Fleuve
- Route
- Lévis → Vallée-Jonction
- Taxi
- 619
Syncs automatically as soon as the network is back.
Once recorded, this coupon can no longer be edited — it can only be disputed with the office.
The first of the month
What the paper book costs you, every month.
None of this is your office’s fault. It is what happens when the only copy of a trip is a sheet folded in a pocket.
Closing the month, as it actually goes
Today- 01
The coupons arrive in a stack, at the end
Someone retypes them into a spreadsheet, one by one, while the next month has already started.
- 02
A number is missing from the book
Nobody can say whether it was lost, voided, or never filled in. The question gets settled from memory.
- 03
The driver’s total doesn’t match the office’s
The gap is hunted by hand, coupon by coupon, and is rarely found in full.
- 04
The client disputes the invoice
The line carries an amount and a date, but not the route. An invoice a client cannot reconcile gets disputed as a whole.
All four come from the same place: the trip was written down only once, on paper, and never at the moment it happened.
On the road
The driver writes it once, where they are.
The driver app has four tabs and works with no network. A basement, a country road, an underground garage: the entry goes out anyway, and the queue replays it when the signal returns — never creating a duplicate.
- 01
Today
The trips published for the day: departure, route, vehicle type, expected headcount. The office publishes the schedule the day before.
- 02
Coupon
The number is scanned or typed, and the client appears on its own from the book. One last confirmation screen, then it is recorded.
- 03
Earnings
The week’s total, how many trips are proven, and what the office has not yet checked against the paper. The driver no longer has to ask.
- 04
Profile
Their taxis, their language, their notifications. Nothing more: this screen is not a dashboard.
The sync queue
Every entry carries a submission identifier. If the network drops between the send and the reply, the app retries — and the server recognizes the entry it already received instead of writing it twice.
That is what makes it possible to capture without checking for bars.
At the office
And that same entry travels the rest on its own.
Nothing is retyped between these five screens. Each takes what the previous one laid down, and refuses to move on if something doesn’t hold.
- 01
Coupons
What the drivers captured lands here. The office validates, or corrects the price with a stated reason.
- 02
Run reports
The driver’s report is reconciled against the published trip: headcount, route, gaps to justify.
- 03
Anomalies
Cross-checks surface what doesn’t add up before invoicing — and critical cases block it.
- 04
B2B invoicing
A closed month invoices in one gesture: one invoice per client, commission computed per contract.
- 05
Driver pay
What the company owes each driver for the period, from those same coupons.
What the cross-checks catch
Before the invoice- Coupon number entered twice
- Number outside the client’s series
- Published trip with no report
- Report with no published trip
- Headcount different from the plan
- More passengers than seats in the vehicle
- Coupon captured and still not validated
These seven checks run over the period before an invoice exists. A critical anomaly blocks invoicing rather than letting it go out wrong.
The back office
Fifteen screens, grouped the way you work.
This is the product’s real navigation. Every register carries its counted scope tabs, its server-side search, and its CSV export covering the whole filtered set — never just the page on screen.
Operations
- DashboardThe closed month, coupons to validate, open anomalies
- ScheduleThe week by vehicle, published to drivers
- Run reportsWhat was planned against what actually ran
- CouponsDriver capture, office validation, reasoned adjustment
- Coupon seriesRanges received from the printer, assigned to a client
Revenue
- B2B invoicingWhat the period would invoice, per client, before running it
- InvoicesThe issued documents, with their coupons underneath
- Driver payWhat is owed to each driver, over the same period
- AnomaliesThe cross-checks, open and resolved
Reference data
- Clients and contractsCorporate accounts and their commission rates
- My routesThe usual trips, reused to build the schedule
- Fleet and driversThe vehicles, their types, and who drives what
Administration
- UsersWho gets in, with which role, and until when
- Audit registerWho did what, over the chosen period
- SettingsSecond factor, billing identity, language
Roles are not a fixed list: an administrator creates their own, named as they like, by ticking capabilities. Only two are locked, so a company cannot lock itself out.
How your data is protected
The guarantees, and where they live.
These are not intentions: each one is a rule in the code, not a guideline to follow.
- 01
Amounts are computed on the server
Always. Taxes go through a single service, with rates versioned by effective dates. The screen displays what the server returns — it never recomputes it.
- 02
Strict isolation between companies
A global application filter on every query, and PostgreSQL row-level security underneath. Two locks, not one.
- 03
An audit register that cannot be erased
Who did what, when, on which record. Lines are appended; nothing is rewritten.
- 04
Exports are recorded
Who exported which register, and how many rows. The bytes wait for that write: an export that cannot be logged does not happen.
- 05
Two-step verification
A one-time code on top of the password, with the option to ask for it again on every sensitive office action.
- 06
Hosted in Canada
The infrastructure is provisioned in the Canada Central region. Logs carry identifiers, never names or phone numbers (Law 25).
- 07
French and English, end to end
Both applications, both languages, at parity. Time zone and currency follow the company.
- 08
Your colours, not ours
The company’s brand colour is applied at load time. Every tenant sees their own.
Getting started
We are not asking you to jump. We are asking you to compare.
The first phase runs on double entry. The driver fills in the paper coupon as usual, and also captures it in the app. At the end of the week, the two totals must be identical.
- 01
One contract, two willing drivers
We do not switch the company over. We take one corporate client and two drivers who agree to try.
- 02
One week, paper and app side by side
The book keeps existing. Nothing depends on the software yet, and nothing is lost if it disappoints.
- 03
We compare the two totals
If they match, you have proof rather than a promise. If they don’t, we know exactly where to look.
Getting started
CADUntil the two totals are identical, the paper stays the reference. You decide when it stops being one.
Price
Monthly subscription, indexed to your active drivers.
Hosted, updated, backed up — no server to keep running at your place. The price follows how many drivers actually capture during the month, because that is the only measure that moves when your company moves.
The tiers are not settled yet
Karnet is starting with its first companies, and setting a grid before knowing their volumes would mean inventing a number. Write to us with how many drivers and contracts you have: the answer will be a price, not a brochure.
A demonstration
Thirty minutes, your numbers, not ours.
We show you the product with a month that looks like yours: your driver count, one of your contracts. You will see the capture on the phone, the validation at the office, and the invoice that comes out.
Or write directly to [email protected]
Request a demonstration
fr-CA · en-CASent. We reply within one business day.
Something is missing: check the name, company and email.
The send did not go through. Write to us directly at [email protected] — the message was not lost on the way, it simply never left.
This information is used only to call you back. It is neither sold nor shared. Privacy policy