/pricing, Book Rides Online publishes a floor of $59, and GRiDD Technologies’ domain no longer resolves at all. Our modeled six‑vehicle Baltimore operator pays $462.11 a month, of which $282.11 — 1.57× the subscription — is meters.
Fifty-eight limousine companies, and four of them are in the city
There is a version of this article that opens with the global chauffeured‑transportation market and a compound annual growth rate quoted to two decimal places. It would tell a Baltimore operator with six cars nothing at all. So here is the local picture instead, counted rather than modeled, taken from the Census Bureau’s County Business Patterns file for 2023 — still the most recent county‑level release — which we downloaded and filtered ourselves on 3 September 2026.
Two industry codes matter here, and the split between them is the first interesting thing in the data. NAICS 485320 is limousine service. NAICS 485310 is taxi and ridesharing services. They are adjacent trades that share roads, airports and sometimes drivers, and the file describes two very different businesses.
| NAICS | Industry | Establishments | Employees | Annual payroll | Employees per establishment | Payroll per employee |
|---|---|---|---|---|---|---|
| 485320 | Limousine service | 58 | 600 | $34,392,000 | 10.3 | $57,320 |
| 485310 | Taxi and ridesharing services | 43 | 272 | $21,260,000 | 6.3 | $78,162 |
Limousine service is the larger employer by a wide margin — more establishments, and more than twice the headcount — and yet it pays $57,320 a head against the taxi code’s $78,162. That is backwards from what anyone who has ridden in both would guess, and the reason is a single concentration that the county file makes visible.
| Where | Establishments | Employees | Annual payroll | Employees per establishment | Payroll per employee |
|---|---|---|---|---|---|
| Baltimore County | 13 | 66 | $3,045,000 | 5.1 | $46,136 |
| Montgomery | 12 | 270 | $19,572,000 | 22.5 | $72,489 |
| Prince George’s | 7 | 25 | $507,000 | 3.6 | $20,280 |
| Howard | 5 | 4 | $100,000 | 0.8 | $25,000 |
| Anne Arundel | 4 | 44 | $1,362,000 | 11.0 | $30,955 |
| Frederick | 4 | 114 | $7,252,000 | 28.5 | $63,614 |
| Baltimore City | 4 | 22 | $851,000 | 5.5 | $38,682 |
| Charles | 3 | 12 | $217,000 | 4.0 | $18,083 |
Baltimore City has four limousine establishments with paid employees. Baltimore County has 13, and Montgomery has 12 carrying 270 people between them, which is the Washington market wearing a Maryland address. The limousine business in this region is suburban: it lives where the driveways are long and the airport runs are booked a week ahead, not where the hotels are.
The taxi code inverts that completely, and produces the strangest number in the file.
| Where | Establishments | Employees | Annual payroll | Payroll per employee | Share of state payroll |
|---|---|---|---|---|---|
| Baltimore County | 10 | 59 | $1,504,000 | $25,492 | 7.1% |
| Anne Arundel | 7 | 32 | $916,000 | $28,625 | 4.3% |
| Baltimore City | 6 | 114 | $16,602,000 | $145,632 | 78.1% |
| Montgomery | 5 | 22 | $653,000 | $29,682 | 3.1% |
| Prince George’s | 4 | 31 | $1,192,000 | $38,452 | 5.6% |
Six establishments in Baltimore City hold 78.1% of Maryland’s entire taxi‑and‑ridesharing payroll, and pay $145,632 per employee against a statewide average of $78,162. No one is paying cab drivers $145,000 a year. Something else is sitting inside that code.
The state file’s legal‑form‑of‑organization breakdown says what. Of the 43 establishments in NAICS 485310 statewide, nine are corporations, and those nine hold 121 of the 272 employees and $16,763,000 of the $21,260,000 payroll — 78.9% of the money on 20.9% of the establishments, at $138,537 a head. The other 34 establishments hold the remaining 151 employees and $4,497,000, which is $29,781 a head. That is a 4.65× gap inside one six‑digit industry code.
Two different cuts of the same file — one by geography, one by legal form — land within one percentage point of each other on payroll share. We cannot join them directly, because the Bureau does not publish the cross‑tabulation, and we are not going to pretend otherwise. But the most economical reading is that Maryland’s taxi NAICS contains a small number of incorporated dispatch and technology operations headquartered in Baltimore City, wearing the same code as a two‑car cab company in Dundalk.
That distinction matters more than it looks, because it is the same distinction the rest of this article is about. One code, two industries: the people who move passengers, and the people who route them. The software question for a Baltimore operator is which of those two businesses they are in, and how much of the second one they are currently renting.
The caveat that is itself the story
County Business Patterns counts only establishments with paid employees. Every figure above excludes sole proprietors and independent contractors, and in this trade that exclusion is enormous. A limousine company with six cars and nine drivers may have two people on payroll and seven on 1099s. Every Uber and Lyft driver in Maryland — tens of thousands of them — is a nonemployer and appears nowhere in the 43 establishments above.
We flag that caveat in every one of these articles, but here it is not a footnote, it is the reason the software is priced the way it is. When most of the labor in a trade is not on payroll, per‑seat pricing collapses, because there is no stable count of seats. So the products in this category meter something else: the booking. Hold that thought, because Maryland meters the same unit, for its own reasons, and the two meters do not measure the same thing.
What the software costs, and the one number the card does not print
We do this in every article in this series, and it is the part readers write to us about. On 3 September 2026 we went to every limousine, livery and black‑car dispatch product we could identify and asked each one a single question: what does it cost? Not what an aggregator says it costs. What the vendor publishes, at a URL, on that date.
The method is a request to /pricing and /plans with a desktop browser user agent, following redirects, recording the status code. It is crude and it is remarkably informative.
| Product | /pricing | Root | What we found |
|---|---|---|---|
| FASTTRAK | 200 | 200 | A complete rate card — three plan families, seven volume tiers, setup fees, overage rate and nine separately metered add‑ons |
| Book Rides Online | 200 | 200 | A floor and no ladder: “plans starting at just $59 a month, all features are included,” first 30 days free, no setup fee |
| Limo Anywhere | 404 | 200 | The most widely deployed product in the category; healthy site, no pricing page |
| Busify | 404 | 200 | Healthy site, no pricing page |
| LimoLive24 | 404 | 200 | Healthy site, no pricing page |
| Ridebits | 404 | 200 | Healthy site, no pricing page |
| TripSpark | 404 | 200 | Healthy site, no pricing page |
| Moovs | 403 | 200 | Refused our request outright; we cannot say what is behind it |
| Livery Coach | no response | no response | DNS resolves to 198.99.138.102; nothing answered on either port within 15 seconds |
| Karhoo | no response | no response | DNS resolves; nothing answered |
| GRiDD Technologies | — | — | NXDOMAIN. The domain does not resolve at all |
Eleven products. One publishes a usable rate card. Five return 404 on a pricing page while serving a healthy homepage, which is a deliberate product decision and a perfectly legitimate one — enterprise software has been sold by conversation since long before any of us were born. Two resolve in DNS and answer nothing. One has no DNS record left.
We want to be careful about what a 404 means. It does not mean a vendor is hiding something, and it certainly does not mean the product is bad — Limo Anywhere is the most widely used system in this trade for good reasons. It means the buyer cannot compare without a sales call, and that when a six‑car operator in Baltimore sits down on a Tuesday night to work out whether to keep paying, the market gives them one number to work with.
The line that runs from 250 to 1,500
So let us take that one number seriously, because FASTTRAK’s card is the best‑designed meter we have found in eight months of doing this, and it rewards being read closely.
| Plan | Bookings included | Base price | One‑time setup | Cost per booking | Predicted by the line |
|---|---|---|---|---|---|
| Starter | 100 | $99.00 | $100 | $0.9900 | $111.00 |
| Professional | 250 | $129.00 | $195 | $0.5160 | $129.00 |
| Professional | 500 | $159.00 | $195 | $0.3180 | $159.00 |
| Professional | 750 | $189.00 | $195 | $0.2520 | $189.00 |
| Enterprise | 1,000 | $219.00 | $495 | $0.2190 | $219.00 |
| Enterprise | 1,500 | $279.00 | $495 | $0.1860 | $279.00 |
| Enterprise | 2,000+ | $319.00 | $495 | $0.1595 | $339.00 |
Five of the seven tiers — every tier from 250 bookings to 1,500, across two different plan families — are generated exactly by one formula:
base price = $129.00 + $0.12 × (bookings − 250)
Check it: 250 gives $129.00. 500 gives $159.00. 750 gives $189.00. 1,000 gives $219.00. 1,500 gives $279.00. Every one of those is the published price to the cent. The move from Professional to Enterprise, which reads on the page like a change of category, is arithmetically not a change at all — the line runs straight through it.
Only the two ends depart from the line, and both depart in the customer’s favor. Starter at 100 bookings should cost $111.00 and costs $99.00, a $12 discount for the smallest operator. Enterprise at 2,000 should cost $339.00 and costs $319.00, so the last step prices its extra 500 bookings at 8 cents rather than 12. The card bends down at both ends and is perfectly straight in the middle. That is not an accident and it is not a spreadsheet that got away from someone; it is a deliberately designed curve, and we have taken apart enough vendor pricing in this series to say that it is unusual to find one this coherent.
Two hundred bookings, exactly
Now the part that is worth actual money to a reader, and that we have not seen anyone write down.
FASTTRAK charges 15 cents for each booking above your base volume. Moving up one sub‑tier costs $30 and buys 250 more included bookings. Divide: $30 ÷ $0.15 = 200.
If you will exceed your base volume by more than 200 bookings, buy the next tier. If you will exceed it by fewer than 200, stay where you are and pay the overage. The break‑even is exactly 200 bookings past your base — 80% of the way through the increment you would be buying — and it is the same 200 at every step of the card, because the step is always $30 and the overage is always 15 cents.
Work an example. An operator doing 640 bookings a month looks at the card and sees that the 750 tier is the one that “fits,” at $189.00. But 640 is only 140 bookings past the 500 tier, and 140 is fewer than 200, so the 500 tier plus overage costs $159.00 + (140 × $0.15) = $180.00. Staying on the smaller plan and going over saves $9.00 a month, or $108.00 a year. The tier that fits your volume is not always the tier you should buy, and the crossover sits at 700 bookings, not at 750.
None of that is a criticism. A meter where the marginal price of a tier upgrade (12 cents) is below the overage rate (15 cents) is a meter that makes upgrading rational at scale — overage costs exactly 25% more than buying the same bookings inside a tier. That is honest design. It simply also means the card has an optimum, and the optimum is computable, and almost nobody computes it.
The one number that is not on the card
There is a gap, and it is a specific one. FASTTRAK’s footnote reads, verbatim: “All Pro and Enterprise Plan Series have a base fee for the referenced base volume. Volumes (bookings) in excess of the base subscription are charged at 15 cents and scales down at higher usage levels.”
Pro and Enterprise. The Starter plan’s own footnote says only that “booking in excess are more expensive than the professional plan,” and advises upgrading past 100 bookings a month. It never states the Starter overage rate.
So the single tier a two‑car Baltimore operator would actually start on is the one tier whose marginal price is not published. We are confident the advice is given in good faith — and the arithmetic shows why it has to be. If Starter’s overage were also 15 cents, then Starter plus overage would cost $121.50 at 250 bookings against Professional’s $129.00, and would still be exactly level with Professional at 500 bookings ($99.00 + 400 × $0.15 = $159.00). The Starter rate is necessarily higher than 15 cents, and a buyer cannot work out by how much.
What the meters actually add
The base fee is not the bill. Underneath it FASTTRAK meters nine things separately, and this is where a Baltimore operator’s money actually goes.
| Meter | Unit | Rate | Included |
|---|---|---|---|
| FlightView server calls | Per call | $0.06, scaling to $0.004 at 60,000 | 1,000 per month |
| SMS texting | Per segment | $0.06, scaling to $0.005 at 60,000 | 1,000 per month |
| Driver app | Per booking over 250 | $0.12, scaling to $0.002 at 50,000 | First 250 tier |
| Web services API | Per booking over 250 | $0.035, scaling to $0.005 at 40,000 | First 250 tier |
| Affiliate exchange | Per exchange | $0.50 | None |
| GroundSpan corporate bookings | Per month | $35.00 | — |
| CRM integration (Zoho) | Per month | $25.00 | — |
| Digital signing | Per request | $1.00, plus $25.00 per month | — |
| Additional company alias | Per company per month | $60.00 | First two companies |
| Non‑FASTTRAK ground pay integration | Per month | $100 / $200 / $500 by plan | — |
Look at the first row for a moment, because it is the one that belongs to this city specifically. FlightView server calls at 6 cents. A Baltimore black‑car operator lives on BWI runs, and an airport run means tracking a flight, and tracking a flight means polling an API repeatedly as the arrival time moves. The card even says so in its own footnote: “FlightView fees are charged to us based on the number of server calls (hits) in a given month. All plans enjoy 1000 hits FREE. Frequencies are adjustable by the operator to minimize costs or maximize service.”
That last sentence is the most honest thing on any vendor pricing page we have read this year. It says out loud that the operator is being handed a dial with money at one end and service quality at the other, and that where they set it is their business. We wish more products said that. It is also a precise statement of why airport‑heavy operators in this trade are structurally more expensive to serve than wedding‑heavy ones, and why a national price list cannot know which you are.
What it costs a real Baltimore operator
Here is the model we will use for the rest of the article. It is built to sit near the middle of what the CBP file describes: Baltimore City’s limousine establishments average 5.5 employees and Baltimore County’s average 5.1, so a six‑vehicle shop with nine drivers and two people in the office is an ordinary business in this market rather than an unusual one.
| Assumption | Value | Why |
|---|---|---|
| Vehicles | 6 | Four sedans and SUVs seating seven or fewer, two larger vehicles seating eight to 15 |
| Drivers | 9 | A mix of employees and contractors, as this trade actually runs |
| Office staff | 2 | Near the Baltimore City average establishment size of 5.5 on payroll |
| Bookings per month | 640 | About 107 per vehicle, or 3.5 a day — ordinary black car utilization |
| Airport share | 55% | 352 BWI runs a month; this is a Baltimore business |
| Flight polls per airport run | 8 | The operator’s own dial, set conservatively |
| SMS segments per booking | 3 | Confirmation, driver en route, trip complete |
| Affiliate exchanges per month | 45 | Farm‑in and farm‑out work, which is normal in this trade |
| Line | Working | Monthly |
|---|---|---|
| Professional base, 500 bookings | — | $159.00 |
| Overage | 140 × $0.15 | $21.00 |
| Driver app | (640 − 250) × $0.12 | $46.80 |
| SMS | (640 × 3 − 1,000) × $0.06 | $55.20 |
| FlightView | (352 × 8 − 1,000) × $0.06 | $108.96 |
| Web services API | (640 − 250) × $0.035 | $13.65 |
| Affiliate exchange | 45 × $0.50 | $22.50 |
| GroundSpan | — | $35.00 |
| Total per month | — | $462.11 |
| Of which meters | $462.11 − $180.00 | $282.11 |
| Total per year | $462.11 × 12 | $5,545.32 |
| First year including setup | $5,545.32 + $195.00 | $5,740.32 |
The subscription is $180.00. The meters are $282.11 — 1.57 times the subscription. Anyone budgeting this line from the pricing page’s headline number will be wrong by a factor of two and a half, and will be wrong in a direction that scales with exactly the thing they are trying to grow.
| Unit | Working | Cost |
|---|---|---|
| Per booking | $462.11 ÷ 640 | $0.7220 |
| Per vehicle per month | $462.11 ÷ 6 | $77.02 |
| Per vehicle per year | $5,545.32 ÷ 6 | $924.22 |
| Per driver per month | $462.11 ÷ 9 | $51.35 |
| Against the Class Q plate | $924.22 ÷ $215.00 | 4.30× the annual limousine registration fee |
Seventy‑two cents a booking. We will say plainly what we say in every one of these articles when it is true: that is good value, and an operator at this size should keep paying it. Reservations, dispatch, driver assignment, affiliate exchange, billing and a driver app are genuinely hard software, and $5,545 a year to not build them is a bargain. Nothing in the rest of this article argues otherwise.
What the rest of this article argues is that there is a second system this operator needs, that no product in the table above sells, and that the reason no product sells it is entirely reasonable: it is written in the Maryland Code, and it does not generalize past the state line.
The part no national platform models
Every article in this series has a section like this one, and it is always the section we spend the most time on, because it is where a local business is actually different from the national average the software was built for. In most trades that difference is a fee schedule or a filing deadline. In this trade it is something stranger. It is the question of what you are.
A limousine is a limousine
Maryland regulates for‑hire passenger transportation under the Public Utilities Article, and the regulator is the Public Service Commission — the body that sets electricity and natural gas rates. That is not a filing quirk. It shapes everything that follows, and we will come back to it. Start instead with the definitions, because they are where a software person’s trouble begins.
Public Utilities §10‑101(e)(1) defines the category most readers of this article operate in:
“Limousine service” means operating a motor vehicle for hire using a motor vehicle classified as a Class Q (limousine) vehicle under §13‑939 of the Transportation Article. — Md. Public Utilities §10‑101(e)(1)
That is a foreign key. It tells you nothing about what a limousine is; it tells you to go and look somewhere else. So we did. Transportation Article §13‑939(a) reads, in its entirety:
When registered with the Administration, every limousine operated for hire is a Class Q (limousine) vehicle. — Md. Transportation §13‑939(a)
Read those two sentences together. You are providing limousine service if your vehicle is Class Q. Your vehicle is Class Q if it is a limousine. Neither statute has yet said what a limousine is.
There is a third door, and it is worth walking through because of what is behind it. Transportation Article §11‑129.1 does supply a definition, in three alternatives:
“Limousine” means a vehicle that: (1) Has been modified or stretched for transportation of passengers; (2) Is driven as part of a service provided by a person that advertises itself as a provider of limousine services or registers with the Public Service Commission as a provider of limousine services; or (3) Is equipped with amenities not normally provided in passenger cars, including a custom interior, television, video cassette recorder, musical sound system, telephone, ice storage area, additional interior lighting, and driver‑passenger communication such as an intercom or power‑operated driver partition. — Md. Transportation §11‑129.1
The second alternative closes the loop. You are providing limousine service under the Public Utilities Article because your vehicle is Class Q under the Transportation Article; your vehicle is Class Q because it is a limousine; and it is a limousine because you registered with the Public Service Commission as a provider of limousine services. Three sections, two agencies, one circle.
We are not the first people to notice that legal definitions can be self‑referential, and we are not claiming anybody is confused in practice — the Commission plainly administers four separate permit types and everyone in the trade knows which one they hold. The point is narrower and it is a software point. There is no computable definition here. A developer asked to populate a service_type column from facts about the vehicle and the trip cannot do it, because the middle branch — the one that does the real work — resolves to “because you said so.”
The two branches that are computable are branches (1) and (3), and they are both facts about metal. Branch (1) asks whether the body has been stretched. Branch (3) asks whether the car carries amenities not normally found in passenger cars, and then enumerates them — and in September 2026 that enumeration still contains a video cassette recorder.
We are not making fun of the drafters. That list was written when it described the actual difference between a limousine and a Buick, and it has simply never needed amending, because branch (2) does the real work. But it is a genuinely instructive artifact for anyone building software against a regulatory schema: the law’s feature list is a snapshot of the hardware that existed on the day it was written, and a modern Escalade with wireless charging, a glass roof and no VCR has to be mapped onto it. On the text, the surviving qualifiers for a normal 2026 black‑car SUV are the intercom and the power‑operated partition — and most of them have neither.
Which is where the money finally appears. Transportation §13‑939(b) sets the annual registration fee for a Class Q vehicle at $215.00 on or after 1 July 2025, up from $205.00 in the preceding year, and §13‑939(c) requires the Administration to issue special limousine plates.
So the practical answer to “what makes this a limousine rather than a sedan” is: $215 a year and a distinctive plate. That is not a formality. As the next section shows, it is the instrument that decides which of four statutory categories every ride you sell belongs to.
Four categories, four different axes
Maryland does not have one for‑hire category with variations. It has four, they are defined in the same section of the same statute, and each one is defined on a completely different axis from the others.
| Category | Defined by | The statutory test | Excludes the others? |
|---|---|---|---|
| Taxicab service | The transaction | Advertised as a taxicab; or a fare based on distance traveled, time elapsed, or both; or engaged by street hail or at a stand — §10‑101(h) | No |
| Sedan service | The seat count | A vehicle designed to carry 15 or fewer individuals, including the driver — §10‑101(j)(1) | Yes — §10‑101(j)(2) |
| Limousine service | The registration class | A vehicle classified Class Q under Transp. §13‑939 — §10‑101(e)(1) | Yes — §10‑101(e)(2) |
| Transportation network service | The software, and the clock | Three defined coverage periods running from logged‑on, to en route, to passenger departure — §10‑101(n)(1) | Yes — §10‑101(n)(2) |
Sit with that table for a second, because it is the whole problem. To decide which row a ride belongs to, you must consult, in order: a registration record held by the Motor Vehicle Administration, a physical property of the vehicle, the method by which the fare was computed, and the state of a piece of software at three points in time. Those four facts live in four different systems, and exactly one of them is in your dispatch platform.
The transportation network definition is the most software‑shaped thing in the Maryland Code and deserves quoting, because it defines a business by the state of an application:
“Transportation network services” means the activities of an operator during: (i) coverage period one, during which the operator is logged onto and ready to accept a prearranged ride request…; (ii) coverage period two, during which the operator accepts a ride request… and is traveling to a predetermined location to pick up the passenger; and (iii) coverage period three, during which the operator transports the passenger and continuing until the passenger departs the motor vehicle. — Md. Public Utilities §10‑101(n)(1)
That is a state machine. Someone wrote a state machine into a statute, gave the states names, and then — as we will see when we get to the money — attached a tax to the third one.
The exclusions all point one way
Now the part that took us longest to see, and that we think is the single most consequential fact in this article for anyone designing a schema.
Look again at the right‑hand column. Sedan service “does not include providing taxicab services, limousine services, or transportation network services.” Limousine service “does not include providing taxicab services, sedan services, or transportation network services.” Transportation network services “does not include providing taxicab services, sedan services, or limousine services.”
Taxicab service has no such clause. §10‑101(h) defines it and stops. Three of the four categories carve themselves out of the others; the fourth carves itself out of nothing.
Structurally, that makes taxicab the residual category and the other three exceptions to it. And the taxicab test is broad: §10‑101(h)(2) catches any for‑hire service “regardless of how or when engaged” that runs between points chosen by the passenger “for a fare that is based on the distance traveled, the time elapsed, or both.” Prearrangement is expressly no defense — the words “regardless of how or when engaged” are there to say so.
Hourly charter is priced on time elapsed. A great many point‑to‑point transfers are priced on distance. On the bare text, an enormous amount of ordinary black‑car work satisfies the taxicab test, and the only thing that pulls it back out is the exclusion clause in §10‑101(e)(2) or §10‑101(j)(2) — which is available to you only if you are a limousine service or a sedan service, which depends on the Class Q plate or the seat count.
We want to be careful here, because this is a reading of statutory text and not a description of how the Commission enforces. Nobody at the PSC is going to tell a limousine company that its hourly wedding work is taxicab service. Four permit types exist, operators hold one, and the system functions. The conclusion we draw is not about enforcement. It is about where the field lives:
Service type is not a property of the ride. It is a property of the operating authority the vehicle is running under. Every dispatch product we looked at models it the other way round — a dropdown on the booking, chosen per trip, sometimes by whoever answered the phone. In Maryland that field should be derived from the vehicle’s permit and registration and then made read‑only, with the booking screen showing it rather than setting it. That is a small change to a data model and a large change to what the system can prove twelve months later.
Seven rules that count seats, and they disagree about the driver
If service type is the most conceptually tangled field in this business, seat count is the most overloaded. One integer — how many people the vehicle holds — independently decides at least seven separate things, under instruments written by four different bodies.
| Instrument | The phrase it uses | Counts the driver? | What it decides |
|---|---|---|---|
| COMAR 20.90.01.01 | “seven persons or fewer, including the driver” | Yes | Whether the vehicle can be a taxicab at all |
| COMAR 20.95.01.18B(1) | “seating capacity of seven passengers or less” | Not stated | Insurance minimum: $120,000 combined single limit |
| COMAR 20.95.01.18B(2) | “seating capacity between eight to 15 passengers” | Not stated | Insurance minimum: $250,000 combined single limit |
| COMAR 20.95.01.18B(3) | “seating capacity of 16 passengers or more” | Not stated | Insurance minimum: $500,000 combined single limit |
| Md. Public Utilities §10‑101(j)(1) | “15 or fewer individuals, including the driver” | Yes | Whether you are a sedan service |
| Md. Public Utilities §10‑102(b)(1) | “designed to transport more than 15 persons” | Not stated | Whether Title 10 applies to you at all |
| FMCSA, per PSC carrier packet | “more than 8 passengers (including the driver)” | Yes | Whether you need a USDOT number |
Three instruments say “including the driver.” Three say “passengers” and leave it there. One says “persons” and leaves it there. They are not written to a common definition, because they were not written together.
Take a concrete vehicle: a passenger van with 15 passenger seats plus a driver’s seat, which is an entirely ordinary thing for a Baltimore operator to own for airport groups and hotel shuttles.
| Rule | Reading “capacity” as 15 passengers | Reading “capacity” as 16 seats |
|---|---|---|
| Sedan service, §10‑101(j)(1) | 16 including the driver, so not a sedan service — this rule says “including the driver,” so there is no ambiguity | |
| Title 10 applies at all, §10‑102(b)(1) | 15 persons, Title 10 applies | 16 persons, Title 10 does not apply |
| Insurance minimum, COMAR 20.95.01.18B | 8–15 band: $250,000 | 16‑or‑more band: $500,000 |
| USDOT number | 16 including the driver, so required either way | |
The gap between those two readings is $250,000 of required coverage and the question of whether an entire title of the Maryland Code governs the vehicle, and it turns on whether the person driving is a passenger.
In practice this is settled: insurers and the Commission have a working reading, and an operator who asks will get a straight answer. But a schema cannot ask. The design consequence is concrete and worth doing: store passenger seats as the base column, store the driver’s seat separately, and derive every threshold from the pair — never store one integer called capacity. Any system that stores a single number has silently picked one of the two readings, and it has not written down which.
And the thresholds themselves are worth noticing as a set: 7, 8, 15 and 16, in four instruments, none of which agree on the boundary. A vehicle with eight passenger seats is above the taxicab line, exactly on the USDOT line, in the middle insurance band and well inside sedan service. There is no arrangement of seats that makes all four rules line up.
Your rate card is a filed tariff
Here is where being regulated by a utility commission stops being a curiosity and starts being an operating constraint.
In almost every trade we write about, the price list is the one thing that is unambiguously the owner’s to set. A florist raises the price of a bouquet on a Tuesday because roses got expensive. A dry cleaner adds a dollar to a comforter. Nobody files anything. In Maryland’s for‑hire passenger business, that is not how it works, and the governing regulation is COMAR 20.95.01.08, titled — in the language of gas and electric utilities — “Schedules — Rates and Charges.”
A schedule of rates and charges may not be instituted or changed by an owner or Transportation Network Company without providing the Commission and the Maryland Office of People’s Counsel with 14 days notice. — COMAR 20.95.01.08B(1)
The Office of People’s Counsel is Maryland’s statutory consumer advocate in utility proceedings — the office that intervenes when a gas company wants a rate increase. It is entitled to object to your price list, and interested persons may do the same, within 14 days of submission. If the Commission does not suspend the schedule within 14 days, it takes effect on the date you specified.
The mechanics of a change are pure tariff practice, and reading subsection D is like opening a filing cabinet from 1931. An application to institute or change rates “shall be typewritten or printed” and shall include an original and two copies of the proposed tariff change, plus:
| The filing must state | Which means your rate card needs |
|---|---|
| A reference to the specific rate or charge section being changed | Stable section identifiers that survive edits |
| A list of the rate or charge pages being revised | Pagination — your prices have page numbers |
| A brief description of the nature of the change | A human‑written changelog entry per revision |
| The percentage of increase or decrease and the dollar amount for each class | A computed diff against the currently effective version, per rate class |
| The proposed effective date | Effective‑dating, not overwriting |
| The name and telephone number of a representative who can answer questions | An owner on the record for each revision |
| The signature of the owner or an authorized representative | A signed artifact, not a database row |
Every line in that right‑hand column is a database design decision, and taken together they describe something very specific: a versioned, effective‑dated, diffable price list with an approval state. Not a price field on a service record. We have built exactly this shape before for other reasons, and the reason it matters here is subsection E:
An owner shall provide access to a copy of the effective and proposed schedule of rates and charges to the public on a website, or if the owner does not have a website, at their principal place of business. — COMAR 20.95.01.08E
Read that twice. Your website must publish two price lists at the same time: the one in force, and the one you have proposed and that has not taken effect yet. There is a fourteen‑day period in which both exist and both must be visible to the public.
We have never seen a booking site do this. Not one of the products in our pricing table has a concept of a proposed rate schedule that is public but not yet chargeable, because in forty‑nine other states there is no reason to build one. It is roughly two days of work if the rate model is versioned from the start, and a rewrite if it is not.
One more provision, because it is the clearest example we have found anywhere of a regulator writing directly into a pricing algorithm. Subsection B(4) permits a filed schedule to include ranges rather than fixed numbers:
A schedule of rates may include a range of maximum and minimum rates, including a range of base rates, and any applicable surge pricing capped at a maximum multiplier. — COMAR 20.95.01.08B(4)
Surge pricing is permitted, and the cap on it is a number you file with the state. Your dynamic pricing engine has a legally filed ceiling, and the ceiling has a fourteen‑day change process. For transportation network companies, subsection G goes further and requires the platform to “include in its digital platform a feature that requires a passenger to acknowledge that surge pricing is in effect.” That is a modal dialog, specified in a regulation.
Ten days, thirty days, forty-five days, sixty days
Insurance is where the four‑category problem stops being philosophical and starts having a number attached to it.
The same event — your insurer decides to cancel — comes with four different amounts of warning depending on which category you are in and, in one case, on who wrote the policy.
| Category | Instrument | Notice | Notice given to |
|---|---|---|---|
| Sedan and limousine (PSC permit) | COMAR 20.95.01.18E(1) | 10 days | The Commission and the insured |
| Taxicab, Maryland Automobile Insurance Fund policy | Md. Public Utilities §10‑207(b)(1)(ii) | 30 days | After the Commission receives written notice |
| Taxicab, any other insurer | Md. Public Utilities §10‑207(b)(1)(i) | 45 days | After the Commission receives written notice |
| Transportation network company | Md. Public Utilities §10‑405(d)(1)(ii)1.G | 60 days | The Commission and the Insurance Commissioner |
Ten days to sixty days. A 6× spread on the identical event, and the limousine and sedan operator — the reader of this article, the smallest business in the table, the one least able to place coverage in a hurry — gets the shortest warning of the four.
If you take one operational thing from this article, take this: ten days is not enough time to find commercial auto coverage for a mixed fleet, and the notice arrives as paper. A system that watches policy expiry and renewal dates and starts asking questions sixty days out is doing work the regulation does not do for you. This is the cheapest piece of software in this entire article and the one most likely to save the business.
The underlying requirements are per‑vehicle and banded by capacity, which is where the seat‑count problem from two sections ago turns into a premium.
| Seating capacity | Per person | Two or more persons | Property damage | Or, combined single limit |
|---|---|---|---|---|
| 7 passengers or fewer | $50,000 | $100,000 | $20,000 | $120,000 |
| 8 to 15 passengers | $75,000 | $200,000 | $50,000 | $250,000 |
| 16 passengers or more | $75,000 | $400,000 | $100,000 | $500,000 |
Note the shape of the split limits: moving from the first band to the second raises the per‑person figure once, from $50,000 to $75,000, and then it never moves again. What escalates is the two‑or‑more figure — $100,000, $200,000, $400,000, doubling at each band — which is exactly right, because the risk a bigger vehicle adds is not that one person is hurt worse, it is that more people are in it.
An operator may post a bond instead, and the bond table is the most quietly elegant thing in COMAR. It is indexed on two axes at once, fleet size and capacity, and it runs to thirty cells.
| Number of vehicles | 7 or fewer passengers | 8–15 passengers | 16 or more passengers |
|---|---|---|---|
| One vehicle only | $120,000 | $325,000 | $575,000 |
| 2 to 5 | $150,000 | $355,000 | $605,000 |
| 6 to 15 | $180,000 | $385,000 | $635,000 |
| 16 to 30 | $210,000 | $415,000 | $665,000 |
| 31 to 50 | $240,000 | $445,000 | $695,000 |
| 51 to 80 | $270,000 | $475,000 | $725,000 |
| 81 to 120 | $300,000 | $505,000 | $755,000 |
| 121 to 170 | $330,000 | $535,000 | $785,000 |
| 171 to 230 | $360,000 | $565,000 | $815,000 |
| 231 to 300 | $390,000 | $595,000 | $845,000 |
Thirty published numbers, and one formula generates every one of them:
bond = base + $30,000 × (fleet band − 1), where base is $120,000, $325,000 or $575,000 according to capacity.
Every step down every column is exactly $30,000. The increment does not vary with capacity at all, which means Maryland prices the marginal vehicle in a fleet at the same $30,000 whether it is a Town Car or a motorcoach. Only the intercept moves.
Two further observations from the table that a careful operator can use. First, at one vehicle in the smallest capacity band, the bond and the combined single limit are the same $120,000 — but at every other capacity the bond is $75,000 higher than the equivalent insurance limit ($325,000 against $250,000; $575,000 against $500,000). The bond route is free of penalty only for the single‑car operator with a sedan. Second, the table simply stops at 300 vehicles. There is no row for 301, and the regulation does not say what happens next.
For our six‑vehicle model operator with two vehicles in the 8–15 band, the applicable bond cell is the bolded one: $385,000.
The fleet has a regulatory life, and it starts at the factory
Most fleet software amortizes a vehicle from the date you bought it. Maryland does not care when you bought it.
Three separate provisions stack into a lifecycle, and all three are keyed to model year:
| Model years of age | What is required | Source |
|---|---|---|
| New, under 7,500 miles | Bill of sale and certificate of origin may be substituted for the inspection | COMAR 20.95.01.11F(3) |
| Up to 10 | Annual inspection certificate | COMAR 20.95.01.11F |
| More than 10 | Semi‑annual inspection certificate | COMAR 20.95.01.11F(2) |
| More than 12 | May not be used, unless historic under Transp. §13‑936 or over 10,000 lb GVWR | PSC carrier application packet |
A vehicle enters service, inspects once a year for ten years, twice a year for two more, and is then finished. That is a depreciation schedule written by a regulator, and it is not the one in your accounting system.
Because the clock runs on model year rather than on the date of purchase, a used vehicle arrives having already spent part of its regulatory life, and the arithmetic is stark.
| A 2019 model bought used | A 2026 model bought new | |
|---|---|---|
| Model years already elapsed at purchase | 7 | 0 |
| Last calendar year it may operate | 2031 | 2038 |
| Calendar years of permitted service | 6 | 13 |
| Years at annual inspection | 4 (2026–2029) | 11 (2026–2036) |
| Years at semi‑annual inspection | 2 (2030–2031) | 2 (2037–2038) |
| Share of permitted life spent at double inspection cadence | 33.3% | 15.4% |
The new car buys 13 years of authority and the seven‑year‑old car buys 6 — 2.17 times as much regulatory life for whatever the price difference is. And the used vehicle spends a third of its permitted service under the doubled inspection burden against the new one’s fifteenth.
We are not telling anyone to buy new cars; the acquisition cost usually swamps this and a used vehicle is very often the right call. We are saying that the comparison is not “price against mileage.” It is price against permitted years, and permitted years is a field your software can compute the moment you enter a model year — and almost certainly does not.
The toll is not optional, and the route election is a field
Buried in the general provisions of Title 10, three lines long, is a sentence that quietly imposes a data requirement on every for‑hire trip in Maryland:
If a passenger elects to use a route where a highway or bridge toll charge occurs, the for‑hire driver shall assess the passenger the cost of the highway or bridge toll charge. — Md. Public Utilities §10‑109
Not “may.” Shall. In a state where the two harbor crossings on I‑95 and I‑895 are tolled and half of Baltimore’s airport and downtown work crosses one of them, this is a statutory instruction that a specific line item must appear on the bill.
What makes it a software problem rather than a billing preference is the conditional. The duty is triggered by the passenger electing the route. So the trip record has to carry not just which toll facilities were crossed and what they cost, but who chose the route — and if the answer is “the driver, to save time,” the section on its face does not apply.
We have looked at a lot of trip records over the years. They store origin, destination, distance, duration, waiting time and a list of accessorial charges. We have never seen one with a field for who elected the route. It costs nothing to add and it is the difference between a toll line you can defend and one you cannot.
The manifest Maryland already designed for you
One of the odder pleasures of writing these articles is discovering that a regulator has already specified the schema an operator is about to pay someone to design. Maryland did it for taxicabs in §10‑208, and although a limousine operator is not bound by that section, it is worth reading as a statement of what the state considers a complete trip record.
A taxicab driver must carry a manifest containing the time and date issued, the expiration time, the driver’s name and badge number, the taxicab number, and — the part that would never occur to a product manager — “space for meter readings and the calculation of driver income.”
The state requires the trip document to carry the driver’s pay calculation on the same piece of paper as the fare. That is a design opinion, and it is a good one: it means a driver can reconcile a shift without asking anyone, and a dispute has one artifact rather than two. Most modern systems put the fare in the booking and the pay in a separate payroll run, and then spend engineering effort building a reconciliation screen to put them back together.
The same section carries three more rules that are pure software:
A taxicab driver “may not operate a taxicab for more than 12 hours of any continuous 24‑hour period.” Note continuous — that is a rolling window, not a calendar day, and the difference matters enormously to whoever writes the check on it. A driver who works 8pm to 2am and then 6am to noon has worked twelve hours across two calendar days and twelve hours inside one rolling twenty‑four, and is exactly at the line. A daily‑totals report would show two six‑hour days and nothing to see.
A driver “shall report each change of residence within 72 hours to the Commission.” The address field on a driver record has a three‑day service level agreement attached to it by statute, and by contrast COMAR 20.95.01 gives the company 15 days to notify the Commission of a change of address. Same event, two clocks, and the person with the shorter one is the one least likely to remember.
And on shared rides, §10‑209(d)(4) sets a fare rule that is a two‑term minimum: each passenger is charged the fare on the meter when they arrive at their destination, but “may not be charged more than the fare applicable at the established rate for transportation over the shortest and most direct route.” Every shared‑ride fare in a Maryland taxicab is therefore min(meter_at_dropoff, shortest_route_fare), and the second term requires you to compute a counterfactual trip that never happened.
Then there is §10‑209(d)(3), which is the only statutory constraint on an optimization function we have found in any of these articles:
A taxicab driver may not refuse service in order to group passengers more profitably. — Md. Public Utilities §10‑209(d)(3)
Maryland has legislated against a specific dispatch strategy. Whatever your assignment algorithm maximizes, it may not maximize that.
Where the fare originated decides whether you may drive
Two governments wrote the same directional rule from opposite ends, and between them they make the legality of a dispatch decision depend on a fact about the trip’s history rather than about the car.
The state end, §10‑209(b)(3): taxicabs operating in Baltimore City “may transport a passenger from Baltimore City into Baltimore County and return to Baltimore County for the same passenger; but may not solicit a passenger within Baltimore County at any time.”
The city end, Baltimore City Code Article 19 §52‑2(b)(1), which makes it unlawful to operate in the city from another jurisdiction “unless such transportation is a fare or the continuation of a fare originating in said other jurisdiction.” The penalty under §52‑2(c) is a fine of up to $500 or up to six months imprisonment, or both, on a citation issued by a police officer.
So whether a given car may lawfully take a given job depends on where the fare originated and whether this is the return leg for the same passenger — two facts that live in the trip’s history, not in the vehicle record or the driver record. A dispatch board that shows available cars by proximity is showing the wrong thing. The question is not which car is nearest; it is which car’s current fare makes this assignment lawful.
For a Baltimore operator working the city, the county, BWI and the Washington market, that is four jurisdictions with four sets of directional rules, plus the Washington Metropolitan Area Transit Commission, whose certificate the PSC’s own application packet tells you to obtain separately if you intend to operate point‑to‑point inside the Metropolitan District.
Twenty-five cents, and a fee that cannot be stored in cents
The two provisions in this section do not apply to a limousine or sedan operator. They apply to the transportation network companies you compete with, and we include them because they are the clearest statement in Maryland law of how the state now thinks about a ride — and because that thinking travels.
§10‑406 lets a county or municipality impose an assessment of up to 25 cents per trip, on trips that originate in that jurisdiction. The taxable event is precise: it attaches only to a service that includes a passenger trip during coverage period three — the state machine from earlier. A canceled ride is not assessable; a ride where the passenger actually got in is.
Which jurisdiction collects it is decided by a rule that is, genuinely, a race that finished ten years ago. A municipality normally has priority over its county; but the county takes priority if it authorized an assessment by 1 July 2016 and the municipality was not itself an eligible jurisdiction. Both may assess only under a revenue‑sharing agreement filed with the Comptroller, and even then their sum is capped at the same 25 cents.
To compute the 25 cents on a $12 ride you must resolve the pickup point to a municipal boundary, then apply a priority rule whose tie‑breaker is whether a county council took a vote before 1 July 2016, unless there is a revenue‑sharing agreement on file. That is not a tax rate. It is a geospatial lookup joined to a historical fact.
Then §10‑408 adds the statewide transportation network company impact fee, and its structure is the most software‑hostile thing in the title.
| Trip type | Fee | What decides it |
|---|---|---|
| Standard passenger trip | 75 cents | — |
| Fuel cell or plug‑in electric vehicle | 50 cents | A property of the vehicle |
| Shared passenger trip | 50 cents | A checkbox at booking time |
Look closely at the third row. §10‑408(a)(2) defines a shared passenger trip as one for which the passenger agrees, at the time the passenger requests the ride, to be transported with another passenger — “regardless of whether another passenger is transported.”
The discount is earned by intent expressed at request time and is completely immune to what actually happened in the vehicle. A passenger who ticks the box and rides alone pays 50 cents. A passenger who does not tick it and ends up sharing pays 75. The fee is a function of a boolean captured before the trip, and no subsequent event can change it — which is, to be fair, the only way it could be administered, and it is a good example of a regulator choosing a rule that is cheap to audit over one that is precisely correct.
And then the indexation clause, which is where it gets genuinely awkward. From 1 July 2028 and every 1 July after, the fee rises with the Consumer Price Index for All Urban Consumers, announced by the Comptroller on or before 1 June, capped at an 8% annual increase and never falling. The increase is “rounded to the nearest one‑tenth of a cent.”
Maryland has written a fee whose legal value, from 2028, cannot be represented as a whole number of cents. Seventy‑five cents becomes something like 77.3 cents. It must appear on the receipt as its own line, distinct from the fare and from every other tax, labeled with the exact string “Transportation Network Company Impact Fee.” Any money column in the pipeline stored as an integer number of cents — and most of them are — is a two‑year clock.
There is one more piece of arithmetic worth extracting, because it is the rare case of a statute paying you for compliance work. §10‑408(d)(2) lets the company retain, for the expense of reporting and remitting, the lesser of 0.9% of the amount remitted or $250. Those two are equal when the remittance is $27,777.78, which at 75 cents a trip is 37,037 trips in a quarter. Below that, your collection allowance grows with volume. Above it, you are collecting the state’s money for a flat $250 a quarter forever.
None of this binds a limousine company today. All of it describes the direction of travel, and the unit the state has settled on. Maryland has decided that the atom of this industry is the trip that a passenger actually boarded, and it has attached a state fee, a local assessment, a receipt format and a mandatory string to that atom. When a rule eventually reaches sedan and limousine work — and the fact that §10‑406 and §10‑408 are drafted against “for‑hire transportation services” in places suggests the drafters were thinking about it — it will land on the same unit. The operators who will absorb that in an afternoon are the ones whose trip record is already the system of record.
The credential board nobody is running
One last piece, and it is the one we would build first.
A for‑hire driver’s license runs for “not less than 1 year and not more than 3 years, as the Commission sets” under §10‑106(a) — so the term is not a constant you can hard‑code, it is a value that arrives on the credential. Nine drivers on staggered terms of possibly different lengths is nine independent clocks, and the operator is the one who cannot dispatch if one lapses.
Underneath that sits something most operators do not know is happening. §10‑104(b)(2)(ii) provides that if criminal history information is reported to the Central Repository after the initial check, the Repository shall provide a revised printed statement to the Commission and to the licensee. That is continuous monitoring written into statute: a driver’s standing can change without the driver applying for anything, without your knowledge, and without any event occurring in your system.
A company may submit its drivers’ background and driving‑record information on their behalf under §10‑104.1(f), and — a genuinely valuable protection that is worth knowing about — §10‑104.1(h) exempts records the company provides from the Public Information Act entirely, and requires the Commission to notify the company before disclosing them under any court order. If you are going to hold your drivers’ sensitive data, Maryland has at least fenced it.
Since 1 April 2026 the Commission no longer accepts paper applications for a passenger‑for‑hire or taxicab driver’s license; the process is online only, through an account the applicant registers. The Commission’s own guidance puts processing at two weeks to sixty days depending on the application. Sixty days is a long time to be a driver short, and it is the number your hiring pipeline should be built around rather than the two weeks.
What custom software actually costs
We publish fixed prices, which is unusual in this business and is the single thing readers email us about most. Here is how those prices sit against the $5,545.32 a year our model operator is already spending, so the comparison is concrete rather than rhetorical.
| Package | Fixed price | What it is, for this trade | Equals this much subscription |
|---|---|---|---|
| Prototype Sprint | $3,500 | One week. The authority model and the credential board, working, against your real permit, your real fleet and your real driver list — so you can see it before committing to anything larger. | 0.63 years |
| Online Store | from $6,000 | Your quoting and booking site on your own domain: vehicle classes, hourly and transfer pricing, the effective and proposed rate schedules published side by side as COMAR requires, corporate accounts, your customer list. | 1.08 years |
| Custom App / Internal Tool | from $12,000 | The layer above dispatch: operating authority as the source of service type, passenger seats with every threshold derived, the model‑year fleet clock, the credential board, the rate‑change calendar, the trip record with route election and tolls. | 2.16 years |
| Operations System | from $12,000 | Multi‑entity. More than one permit, more than one trade name, affiliate work in both directions, one fleet, one set of rules, one place to look. | 2.16 years |
Two things about that table that we would want a reader to hold onto. The first is that the right‑hand column is not a payback period, and we would be misleading you if we presented it as one. You are not going to cancel FASTTRAK and replace it for $12,000; nobody should try. The column exists to give a sense of scale — that the thing we are describing costs roughly what two years of the software you already buy costs, and that it is a one‑time number rather than a recurring one.
The second is that the prices are fixed, and we mean fixed. We wrote a whole article about why we price this way, and the short version is that hourly billing makes the builder’s incentive point away from the client’s.
What we would actually build for a Baltimore car service
Everything above is one argument made several ways: the rules that govern a Baltimore limousine operator are categorical, per‑vehicle, jurisdictional and dated, while the systems sold into the category are national, per‑booking, flat and current‑state. That gap is not a defect in FASTTRAK or Limo Anywhere. Those products serve operators in every state, and no rational product manager encodes a definition that resolves to a video cassette recorder.
So the build is not a dispatch system. It is the layer that sits above one, and it is about six things.
An operating authority record, with service type derived from it. The permit, its class, its term, the vehicle list as filed with the Commission, and the trade names it covers. Service type on a booking becomes a computed, read‑only value inherited from the vehicle’s authority, displayed with the reason it took that value. This is the change that makes every other one possible, and it is about a day of work if it is done before the first booking is written and a migration if it is done after.
Passenger seats as the base column. Store passenger seats and the driver’s seat separately; derive the taxicab threshold, the sedan threshold, the Title 10 boundary, the insurance band and the USDOT trigger from the pair. Show all five derived values on the vehicle record, so that a question from an insurer or a broker is answered by looking rather than by arguing.
A fleet clock that runs on model year. Every vehicle carries its model year, its permitted final calendar year, its current inspection cadence, and the date the cadence doubles. The screen that matters is the one that shows the whole fleet on a timeline with the twelve‑year wall drawn on it, because that is a capital plan and nobody currently has it.
A credential board. Nine drivers, their license classes, their individual term lengths, their expiry dates, and a queue that starts at sixty days rather than at expiry, because the Commission’s own processing estimate runs to sixty days. Plus the insurance policies, their expiry dates, and a ten‑day cancellation clock that is loud.
A rate schedule that is versioned and effective‑dated. Sections, pages, a computed diff per class in both percentage and dollars, an effective date, the owner of the revision, and a public page that renders the effective schedule and any proposed schedule at the same time. It is the only way to satisfy COMAR 20.95.01.08 without doing it by hand in a word processor every time, and it happens to be the correct way to store prices anyway.
A trip record you own. Origin and destination resolved to jurisdictions, the fare basis, who elected the route, which toll facilities were crossed and at what cost, and the driver pay calculation on the same record as the fare. Exported from dispatch nightly, kept in your database, queryable in five years when someone asks a question that the platform’s reporting screen does not have a button for.
Notice what is not on that list: dispatch, reservations, driver assignment, mapping, affiliate exchange, invoicing and a driver app. Those stay where they are. At $462.11 a month they are the best value in this article, and rebuilding them would be an expensive way to arrive back where you started.
Build, buy, or keep both
Here is the honest version, and it is the same advice we would give a friend over coffee.
- Keep the subscription. Dispatch, reservations, affiliate exchange and billing are hard, commodity, and cheap at this scale. Rebuilding them is a mistake we have watched people make.
- Do the meter arithmetic once. Work out your break‑even at 200 bookings past your base, set the flight‑polling frequency deliberately rather than by default, and check whether you are on the tier the card fits you to or the tier that is actually cheapest.
- Own the authority model, the fleet clock and the trip record. Those are yours, they are Maryland‑shaped, and no national product will ever build them for you.
- Start with the credential board, because a ten‑day insurance cancellation notice and a sixty‑day driver licensing queue are the two things that stop a car moving, and both are trivially preventable with a calendar and a database.
If you are a one‑car operator, ignore most of this. Buy the subscription, keep a spreadsheet of expiry dates, and get on with driving. The arithmetic in this article starts to matter somewhere around the fourth vehicle and the second permit, which is roughly where the Baltimore City average of 5.5 employees sits.
Who we are
We are a small studio of ex‑startup founders. We build custom software at a fixed price, we work directly with the people who write the code, and the code and the data are yours at the end of it. We are based in Baltimore, we write one of these articles for a local trade most weeks, and we do the research ourselves — every figure in this piece came from a file we downloaded or a page we requested on 3 September 2026, and we have said where each one came from.
If you run a car service here and any of this landed, the useful next step is a conversation rather than a proposal. Bring your permit, your vehicle list and last month’s software invoice, and we will work out what is worth building and what is worth continuing to rent.
Questions we get asked
Do I need a Public Service Commission permit to run a limousine or black car service in Baltimore?
Yes. The Commission’s Transportation Division licenses passenger‑for‑hire carriers operating in intrastate commerce, and Public Utilities Article Title 10 covers taxicab, sedan, limousine and transportation network services. You apply on the Commission’s carrier application. The packet requires a certificate of insurance naming the Commission as certificate holder and listing the year, make and serial number of every vehicle, a passenger vehicle list, a safety inspection certificate that must be valid at the moment authority is granted, workers’ compensation evidence or a signed exclusion, a signed vehicle safety recall affidavit, and a signed rate sheet that must also be filed with the Office of People’s Counsel. Each driver of a vehicle seating 15 or fewer also needs a passenger‑for‑hire driver’s license. Since 1 April 2026 those driver applications are online only.
What is the difference between sedan service and limousine service in Maryland?
One field, and it is not a field you control directly. §10‑101(j)(1) defines sedan service by seat count — 15 or fewer individuals including the driver. §10‑101(e)(1) defines limousine service by registration class — a Class Q vehicle under Transportation Article §13‑939. A vehicle can satisfy both descriptions on their positive terms, so the statute separates them by negation: each definition expressly excludes the other. In practice the discriminator is the Class Q registration, which costs $215 a year and comes with special limousine plates. Transportation §11‑129.1 then defines a limousine as a vehicle that has been modified or stretched, or is driven by someone who advertises as or registers with the PSC as a limousine provider, or carries amenities not normally provided in passenger cars.
Do I have to file my rates with the state of Maryland?
Yes, and you cannot change them at will. Under COMAR 20.95.01.08B(1) a schedule of rates and charges may not be instituted or changed without giving the Commission and the Office of People’s Counsel 14 days notice. Objections may be filed within 14 days, and unless the Commission suspends the schedule within 14 days it takes effect on your stated date. The filing itself must be typewritten or printed, in an original and two copies, and must identify the sections and pages being revised and give the percentage and dollar change for each class. Subsection E then requires you to publish both the effective and the proposed schedule on your website. Surge pricing is permitted but must be filed with a maximum multiplier.
How old can a for-hire vehicle be in Maryland?
Twelve model years, with two exceptions. The Commission’s carrier application states that a motor vehicle shall not exceed more than 12 model years of age unless it is an historic vehicle under Transportation §13‑936 or exceeds 10,000 pounds GVWR. Before that, COMAR 20.95.01.11F(2) requires vehicles under 10,000 pounds GVWR that exceed 10 model years to file inspection certificates semi‑annually instead of annually. Because the clock runs on model year rather than purchase date, a 2019 model bought in 2026 has six calendar years of permitted service left against a new vehicle’s thirteen, and spends a third of that life at double inspection cadence.
What insurance does a Maryland limousine or black car company need?
It is per vehicle and banded by seating capacity under COMAR 20.95.01.18B: $120,000 combined single limit for seven passengers or fewer, $250,000 for eight to 15, and $500,000 for 16 or more, or the equivalent split limits. Coverage must run six months or more, the Commission must appear as certificate holder, and the certificate must list the year, make and serial number of every covered vehicle — so adding a car means amending a filing. A bond may be posted instead, priced from a table indexed by fleet size and capacity; for a six‑vehicle fleet with vehicles in the 8–15 band that is $385,000. Cancellation requires only 10 days written notice to the Commission and the insured, which is the shortest of the four windows in Title 10.
Does every driver need a separate license from the Public Service Commission?
If the vehicle carries 15 or fewer people, yes. §10‑103 requires a for‑hire driver’s license or a transportation network operator’s license, and §10‑104.1(a) bars anyone from providing sedan, limousine or taxicab services until the Commission has authorized provisional operation or issued a temporary or permanent license. The term is set by the Commission at not less than one year and not more than three, so it is a value on the credential rather than a constant. Your company may submit the information on a driver’s behalf under §10‑104.1(f), and what you submit is exempt from the Public Information Act under §10‑104.1(h). Note also §10‑104(b)(2)(ii): criminal history reporting is continuous, so a driver’s standing can change with no action by anyone at your company.
What does limousine and black car dispatch software cost?
Less than expected at the base and more than expected in total. FASTTRAK, the one product in the category publishing a complete card on 3 September 2026, charges $99 a month for 100 bookings, then $129 / $159 / $189 for 250 / 500 / 750, then $219 / $279 / $319 for 1,000 / 1,500 / 2,000+, with setup of $100, $195 or $495 and overage at 15 cents. On top sit metered add‑ons: flight tracking at 6 cents a call above 1,000, SMS at 6 cents a segment above 1,000, driver app at 12 cents a booking over 250, API calls at 3.5 cents, affiliate exchanges at 50 cents. Our modeled six‑vehicle operator at 640 bookings a month pays $462.11, of which $282.11 is meters — 1.57× the subscription itself. That is 72 cents a booking, and it is good value.
Should a Baltimore car service build custom software or keep its subscription?
Both, in that order. Keep the subscription for dispatch, reservations, driver assignment, affiliate exchange and billing — that is commodity software and it is cheap. Build the layer above it: operating authority as the source of service type, passenger seats with every threshold derived, the model‑year fleet clock, the credential board, the versioned rate schedule with its fourteen‑day filing window, and a trip record you own. At our fixed prices that is 0.63 years of your current subscription for a prototype and 2.16 years for the full custom app. If you have one car, do none of it and keep a spreadsheet.
Sources and method
Every number in this article came from a primary source we retrieved ourselves on 3 September 2026. Market data is the Census Bureau’s County Business Patterns 2023 state and county files, downloaded in full and filtered locally for NAICS 485310 and 485320 — the county‑level API returns nothing useful for these codes, but the flat files are complete. Statute text is the Maryland General Assembly’s published Public Utilities and Transportation article files. Regulations are COMAR Subtitles 20.90 and 20.95 as published by the Maryland Division of State Documents. Application requirements and the 12‑model‑year cap are from the Public Service Commission’s own carrier application packet. Baltimore City provisions are from the City Law Library’s published Article 19. Pricing was read from vendor pages on the date stated, and the status‑code sweep was run from a single machine with a desktop browser user agent — a 403 or a timeout tells you what that machine saw, not what the vendor offers everyone.
Two limitations worth stating plainly. First, we could not reach the Maryland Aviation Administration’s commercial ground transportation permit pages from this machine at all — the host refused the connection and then timed out on retry — so BWI’s own permit fees are not in this article, and any Baltimore operator working the airport should get that schedule directly from the MAA. Second, County Business Patterns counts only establishments with paid employees, which in a trade this full of owner‑operators and contractors understates it substantially; we have said so where it matters and we would rather flag it twice than once.
Where we have drawn a conclusion from statutory text rather than reporting a settled practice — the residual character of the taxicab definition, and the seat‑count ambiguity — we have said so in the text. Nothing here is legal advice, and an operator making a decision about permit class, insurance or vehicle age should take it from their attorney and their broker rather than from us.