Tender Radar for School Transport Route Bids
Small taxi and private-hire operators who bid on council school transport routes must manually watch multiple council portals and dynamic purchasing systems (SProc.net and others) for new postcode-to-school route tenders, each with its own timetable and accessibility requirements. They cannot see across councils at once, so they miss winnable routes that match their fleet size, vehicle accessibility, or coverage area…
What an analysis cost to produce belongs beside it. A reader deciding whether to trust a verdict is entitled to know whether it came from twenty-six stages or one, and nothing else in this category will tell them.
The case against it
| Charge | Rebuttal | Ruling |
|---|---|---|
| Zero defensibility against replication | CONCEDED — Conceded. | upheld — The data layer is an open OCDS API plus a $0.008/record Apify actor; the only asset is parsing labour any of 13 incumbents can replicate in a weekend, and the record concedes it. |
| Direct exact-overlap incumbents already underprice you | Partially rebutted, not fully conceded. | partial — The route-level fit filter (capacity, wheelchair, PA/escort, postcode-to-school) is a genuine gap none of B2B Quote Tenders or Transport Tenders fills, but nothing in the record shows an ope |
| TAM too small to cover solo-builder opportunity cost | CONCEDED — Conceded. | upheld — Even taking the optimistic 3,000-operator inference, 1-3% penetration at £15/mo is £450-£1,350 MRR gross against permanent per-council adapter break-fix — below the maintenance floor, never |
| Scraper maintenance cost scales faster than revenue | CONCEDED — Conceded. | upheld — Coverage breadth is the entire value proposition, and each added council is a bespoke adapter with recurring rewrite risk while marginal revenue per council rounds to zero; marginal economic |
| No channel converts at acceptable CAC | CONCEDED — Conceded. | partial — Search intent is genuinely owned by cheaper incumbents and the community channels are hand-to-hand at weeks-per-handful, but the DPS supplier register is a real, high-intent, enumerable list |
| Buyer does not perceive an acute problem worth a subscription | CONCEDED — Conceded. | partial — The existence of six-plus paid alert products at £7-25/mo proves some willingness to pay exists; what is unproven is that the pain is acute enough to command a premium or survive seasonal la |
| Portal ToS / legal exposure halts specific coverage abruptly | CONCEDED — Conceded. | partial — Find a Tender and Contracts Finder are openly licensed and carry no takedown risk; the exposure is confined to gated DPS portals — and the deeper problem there is not legal but the hardest_u |
| Multi-homing and easy switching kill retention | CONCEDED — Conceded. | upheld — Identical public data behind every provider plus seasonal need means the only retention mechanism is UI preference; 12%/month inferred churn is optimistic for a £15 tool with a £7 equivalent |
A separate agent argued against this idea, a second answered, a third ruled. 7 of 8 charges were conceded rather than defended. Published in full because a score with the objections removed is a advertisement, and because the objections are usually more useful than the verdict.
How it scored
| Dimension | Score | Reasoning |
|---|---|---|
| D1 | 30 | A missed route is real money once a year, but the pain is episodic and diffuse — operators already tolerate manual portal checking as routine admin. |
| D2 | 45 | Multiple incumbents sustain paid tender-alert subscriptions in this exact vertical, so money moves; it moves at £7-25/mo, which is proof of a price ceiling more than proo |
| D3 | 22 | Highest-intent search is already occupied by six-plus ranked sellers underpricing you; the only clean channel is manual outbound to DPS supplier registers, which is enume |
| D4 | 12 | A prompt plus a public API over standardised OCDS notices already resold at $0.008/record — parsing labour and a win/loss feedback loop are not reconstructable-by-nobody |
| D5 | 35 | £250 to first dollar and squarely inside the Python/Flask/Postgres stack, but ~150 bespoke council adapters convert a cheap build into a permanent unpaid maintenance job. |
| D6 | 30 | £15/mo subscription pinned under a £7 substitute, with seasonal cancel-and-return behaviour and no expansion vector or usage-based upside. |
| D7 | 15 | Ceiling is roughly £1k-£1.5k MRR in the UK, and geographic_gap.portable is false — Germany and Australia already have the identical aggregator ecosystem, so there is no s |
| D8 | 50 | Scraping, normalisation and digest email are exactly his competence, but he has zero trade credibility with taxi operators and no audience in a channel that is entirely t |
| demand_test | — |
Who already does this
| Competitor | Pricing | Funding | Launched | Overlap |
|---|---|---|---|---|
| Stotles | subscription (custom, enterprise-tier procurement intelligen | VC-funded (undisclosed round, UK) | ~2020 | partial |
| bidstats.uk / fdmigration azure feed | free search, paid subscriber alerts | unknown, bootstrapped | unknown | partial |
| Contract Finder Pro | subscription + AI bid writing add-on | unknown | unknown | partial |
| D3 Tenders | free search tier, paid pro tier | unknown, UK procurement-specialist team | unknown | partial |
| Tender Alerts Pro (Kaeltripton) | £19/month, free tier | bootstrapped, part of a consumer finance conte | 2026 (recent, per page met | partial |
| Supply2Gov Tenders | free local-authority tier, from £25/month for expanded cover | unknown | unknown | partial |
| B2B Quote Tenders (Bus/Coach/Taxi) | £7/month annual subscription, free registration | unknown | unknown | exact |
| Transport Tenders (Hudson Discover/Succeed) | free trial/demo, paid tiers + bid-writing consultancy upsell | unknown, part of Hudson Group | unknown | exact |
| CleanTender (vertical tender-alert template, security example shown) | free + paid feed | unknown, indie/small operator | ~2025-2026 | adjacent |
| Apify UK Government Tenders & Contracts Finder actor | $0.008/record, first 25 free (~$8 per 1,000 tenders) | unknown, indie Apify publisher | ~2026 (recent) | adjacent |
| GlobalTenders / TendersInfo / TendersOnTime (global aggregators covering taxi/school-transport CPV codes) | subscription, unlimited access tiers | established commercial data companies, 20+ yea | ~2002 (GlobalTenders) | partial |
| evergabe.de / tender-service.de / aumass.de / ibau.de (German Schülerbeförderung tender aggregators) | subscription profiles, some free browse | established German procurement data firms | unknown, long-running | exact |
| Australia Tender Alerts (AI-matched transport tenders) | subscription (plan-gated regions/details) | unknown, indie | recent (AI-branded, likely | partial |
| Australian Tenders | plan-based, region-gated | unknown | unknown | partial |
Where the buyers actually are
| Channel | Why it reaches them |
|---|---|
| PHTM (Private Hire & Taxi Monthly) | |
| Council DPS supplier registers (SProc.net/Adam/Proactis operator lists | |
| Local/regional taxi Facebook groups & council Taxi Forums | |
| Search: "school transport tender alerts" / "[council] taxi tender" | |
| NPHTA / PHTM Expo (annual trade show) |
Regulatory gates
| Gate | Finding |
|---|---|
| G1 | Scraping public tender notices from council portals and aggregating them is legal. No terms-of-service violation identified—these are public procurement documents. No regulatory barrier to o |
| G2 | Core loop is automated: scrape council portals on schedule, parse tender data, match against operator criteria, surface results. No per-customer service work, no sales calls, no manual revie |
| G3 | School transport route bidding is a real procurement market. Councils spend millions annually on these contracts. Operators currently pay for access to SProc.net and individual council porta |
| G4 | Thin MVP: scrape 2–3 council tender feeds (HTML or RSS), parse route postcodes/school/accessibility flags, store in Postgres, match against operator-provided criteria, surface via React dash |
| G5 | Operators are reachable: they exist in fragmented networks (taxi associations, private-hire forums, LinkedIn groups for transport operators, council procurement officer networks). No existin |
The pre-registered test
| Term | Value |
|---|---|
| days | 21 |
| offer | Hand-built, manually researched 'Route Radar' brief: for one named council region (Lancashire DPS, ~1,100 annually competed contracts), a weekly email listing every live home-to-school transport route opportunity with th |
| price | 15 |
| metric | Count of distinct operators with a live £15/mo Stripe subscription (card charged, not a verbal yes or a free-trial signup), AND count of route-level opportunities that were obtainable from public notice feeds rather than |
| channel | Cold email plus phone to 60 named operators pulled from the Lancashire and two neighbouring authorities' DPS/approved-supplier registers (FOI request where the register is not published), with a secondary post of the fir |
| threshold | KILL unless BOTH: (a) 6 or more of 60 contacted operators are paying £15/mo by day 21 (10% cold-outbound conversion), and (b) 60%+ of the route opportunities delivered in the digest were sourced from public feeds rather |
Recorded at the moment the verdict was issued and not editable afterwards. If this is launched, the result lands on the ledger whether it passes or fails.
Where this idea is
| Phase now | Analysed — Underwritten, with the argument against it on the record. |
| What you do here | Read the case against it first. An upheld charge you cannot answer is the verdict, whatever the score says. |
| To leave this phase | You have read the upheld charges and decided the idea survives them. |
| Gate status | This gate is a judgement, not a query. The system will not rule on it and will not pretend to — you decide, and the reason is recorded. |
| Next phase | Validating — A pre-registered test is live and running. |
This gate is a judgement rather than a query, so the system states it and refuses to rule on it. Pretending software can decide whether a business "can take money from somebody who is not you" would make every gate on this site meaningless. Advancing an idea needs its link — the one handed back when it was submitted. Founder-owned ideas are advanced from the console. See the whole pipeline.
| What to do in this phase | What it proves | From which part of the analysis |
|---|---|---|
| Answer the upheld charge: Zero defensibility against replication | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the partial charge: Direct exact-overlap incumbents already underprice you | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the upheld charge: TAM too small to cover solo-builder opportunity cost | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the upheld charge: Scraper maintenance cost scales faster than revenue | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the partial charge: No channel converts at acceptable CAC | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the partial charge: Buyer does not perceive an acute problem worth a subscription | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the partial charge: Portal ToS / legal exposure halts specific coverage abruptly | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
| Answer the upheld charge: Multi-homing and easy switching kill retention | The verdict survives its strongest objection, or it does not and you have learned that before spending. | arbitration |
Every step traces to a field this idea's own underwriting produced — not generic best practice, which is free everywhere. 0 of 8 complete. Mark them off in the console.
How this was produced
| Measure | Value |
|---|---|
| Wall clock | 90 minutes |
| Stage that did not complete | {'why': 'shape_drift_recovered', 'stage': 'ARBITER', 'detail': 'demand_test lifted from arbitration->dimensions by ops/recover_tests.py 2026-08-04; value unmodified, score untouched', 'recovered': True} |
A verdict produced by 22 of 23 stages is not the same artefact as one produced by all of them, and which stages failed was recorded on every run and shown nowhere until now. If a stage that feeds a section died, the section came from somewhere else or nowhere — and you are entitled to know which is in front of you before you act on it.
What kind of business this is
| demand test days | 21 |
The money
| price point | anchor: Existing generic tender-alert subscriptions priced £7-£25/month (B2B Quote Tenders, Supply2Gov, Kaeltripton) plus a near-zero raw-data floor of $0.008/record via Apify; monthly: 15; rationale: Cannot price above the cheapest functional substitute (£7/mo full taxi/coach/bus tier) by more than a modest multiple, since a buyer can already get council tender feeds for pocket change or scrape Find a Tender/Contracts Finder/SProc.net themselves for free with effort. £15/month sits inside the observed competitor band and reflects added filtering value (postcode/fleet/accessibility match) but is capped by the saturated floor already visible in the market. |
| current spend | amount: £0-£25/month cash spend; primary cost today is unpaid operator time manually checking multiple portals; source: Comparable products observed in the competitor set: Kaeltripton Tender Alerts Pro charges <cite index="33-2">£19/month, no contract, cancel any time</cite> for matched tender alerts; Supply2Gov and B2B Quote Tenders undercut this to £7-£25/month per the candidate's own price_floor note. No source shows operators currently paying a school-transport-specific tool; the nearest priced alternative is generic public-sector tender-alert software.; on what: Manual polling of individual council DPS portals (SProc.net/Adam, Due North, Proactis) plus optional generic tender-alert subs |
| funding route | reinvest |
| revenue model | subscription |
| churn monthly pct | why: Inferred, not observed. School transport tenders are seasonal (concentrated around academic year changeovers), so a subscriber's active need lapses for months at a time once they've won or lost the routes they wanted, driving cancel-and-return cycles typical of micro-B2B tools sold to cash-constrained sole traders. 10-15%/month churn is a standard range for sub-£30 tools sold to small, non-technical operators with easy free substitutes; nothing in the sourced data shows an actual retention figure for any named competitor.; value: 12 |
| cash to first dollar | 250 |
| marginal cost per unit | value: 0.3; components: Per-subscriber marginal cost dominated by: (1) shared scraping/API cost amortized across all users, anchored to the observed Apify actor price of <cite index="9-1,9-2,9-3">Find UK government contracts. Procurement notices containing school taxi contracts. 266 matched over past year</cite>-scale volumes at roughly $8 per 1,000 fresh tender records (per candidate's price_floor); (2) email/notification delivery cost (near-zero, fractions of a cent per send); (3) trivial incremental compute for matching a stored profile against new records. No per-user infrastructure scales meaningfully with subscriber count until volume is very high, so marginal cost approaches near-zero |
What it costs to start
| capital blocked | False |
What has to be built
| data moat | An accumulating structured archive of parsed route-level tenders (postcode/school/timetable/PA fields) across dozens of non-standard council portals, plus longitudinal operator win/loss feedback that tunes matching relevance over time. Thin moat: any competitor can scrape the same public notices; the defensible part is only the parsing/normalization labor and feedback loop, not the raw data itself. |
| components | Council portal / SProc.net / DPS scraping adapters (In-tend, Proactis, Delta eSourcing, SP: risk: high; units: 10; UK Contracts Finder + Find a Tender API integration (public baseline data): risk: low; units: 2; Tender text parsing/extraction (postcode, school, timetable, PA/accessibility requirement : risk: med; units: 4; Postcode geocoding + coverage-area distance matching (postcodes.io): risk: low; units: 2; Operator profile & criteria management (fleet size, accessibility, coverage): risk: low; units: 2; Matching engine + alert generation: risk: low; units: 2; Cross-source deduplication/entity resolution (same route appearing on multiple portals): risk: med; units: 3; Web dashboard (Reac |
| total units | 34 |
| hardest unknown | Whether these route-level mini-competitions (postcode→school→timetable→PA) are ever published as public tender notices at all, or whether they are only released to suppliers already pre-approved onto each council's DPS — if the latter, there is no public notice to scrape and the product has no data source to build on. This must be verified per council before writing a single adapter. |
If you decide to do this
| Step | What it means | Where it happens |
|---|---|---|
| 1 · Read the case against it first | Charges the arbiter upheld are the ones to answer before committing. If an upheld charge is fatal for you, the verdict is not. | on this page |
| 2 · Commit the pre-registered test | The test is already written: Count of distinct operators with a live £15/mo Stripe subscription (card charged, not a verbal yes or a free-trial signup), AND count of route-level opportunities that were obtainable from public notice feeds rather than only behind DPS login. at KILL unless BOTH: (a) 6 or more of 60 contacted operators are paying £15/mo by day 21 (10% cold-outbound conversion), and (b) 60%+ of the route opportunities delivered in the digest were sourced from public feeds rather than gated portals. Fewer than 6 payers, or under 60% public-source coverage, resolves as kill.. Committing freezes it with a date, and it cannot be edited afterwards. | promote it → |
| 3 · Stand up the offer | A landing page, a price, and an instrumented link. Nothing is proven until somebody who does not know you is asked to pay. | ventures → |
| 4 · Run distribution and let it resolve | The test resolves mechanically on its deadline: actual against threshold, no judgement. A test never distributed resolves VOID rather than FAIL — inaction is not evidence. | automatic, daily |
| 5 · The outcome grades this verdict | Whatever happens is written back against this prediction and scored. That is what makes the next verdict better, and it is the only honest basis for ever claiming an accuracy. | the ledger → |
Not now. Something specific would have to change first, and it is named in the ruling. Steps 2 and 3 open the operator console, which lives under this same domain at /account and requires a log-in — the public record is readable by anyone, and committing a prediction against it is not. Step 5 happens automatically: this prediction is already frozen with its score, its confidence, and every dimension as it stood, waiting for an outcome to grade it against.