# Data dictionary

**TaxiTools UK Taxi and Private Hire Licence Fees, v1.0.0**

One record per licensing authority. 318 records: 315 with published fee data,
3 documented as having no published schedule.

Both files carry identical content. The CSV is UTF-8 with a byte order mark so
that Excel opens the pound signs correctly, and every field is quoted.

---

## Fields

### `area`
The licensing authority as it names itself. Text. Unique across the set.
Example: `Newark and Sherwood`

### `slug`
A lowercase URL-safe form of `area`, for joining to other systems. Text.
Example: `newark-and-sherwood`

### `status`
Whether this authority publishes a fee schedule that could be read.

| Value | Meaning |
|---|---|
| `published` | A fee schedule was found and read. Fee fields are populated. |
| `not_published` | **No readable fee schedule was found during the documented research.** Fee fields explain what was looked for. **No figure has been supplied for these.** |

`not_published` records what the research found, not what exists. An obscure
committee paper may hold a figure that was not located.

Three records are `not_published`: **Broadland**, **Eden** and **South Norfolk**.
Eden is the clearest case — the authority was abolished in 2023 and its
successor has not merged the legacy schedules. These records are kept rather
than dropped, because "we looked and there is nothing to find" is information a
buyer needs, and silently omitting them would misstate the coverage.

### `driver_fees`
What the authority charges to licence a driver. Text.

A concise factual summary written by TaxiTools, not a reproduction of the
authority's own wording. Durations, new and renewal rates, and separate hackney,
private hire and dual rates are stated where the authority distinguishes them.
Where extra mandatory costs are published alongside (knowledge test, DBS,
assessments) they are noted, because a driver's real outlay is not the headline
figure.

Example: `New £238 · renewal £220 (3yr, HC or PH)`

The middle dot separates distinct charges. Fees are prose rather than numeric
columns on purpose: authorities structure charges in genuinely different ways
(bands, durations, instalments, packages) and forcing them into one numeric
shape would require decisions that are not in the source.

### `vehicle_fees`
The same, for licensing a vehicle. Text. May be empty where the authority
publishes no vehicle rate.

### `operator_fees`
The same, for an operator or booking office licence. Text. May be empty.

⚠ In several Scottish authorities the term **"operator licence" refers to the
VEHICLE licence**, not to a booking office. Where that is so, the record says
so in the field itself rather than silently reclassifying it.

### `ambiguity_flag`
Whether a manual review judged the record to carry recorded doubt.
`flagged` or `not_flagged`.

**Every one of the 315 published records was read in full and judged
individually.** This is not a keyword scan. The judgements are recorded in a
separate review file so each can be inspected and argued with.

**122 of 315 published records are `flagged` (39%).**

### `ambiguity_types`
The kind of doubt, where flagged. Empty when `not_flagged`. Multiple values are
separated by `; `.

| Value | Count | Meaning |
|---|---|---|
| `duration_unclear` | 57 | The licence period is not stated or not confirmed |
| `schedule_lapsed` | 28 | The schedule year named has ended, with no newer one found |
| `figure_absent` | 20 | A fee that would normally exist is not published at all |
| `sources_disagree` | 17 | The authority's own documents or pages state different figures |
| `source_quality` | 13 | No fees page, a scanned image, an archived copy, or figures taken from forms |
| `not_adopted` | 11 | Figures come from a proposal or draft not confirmed as ratified |
| `figure_uncertain` | 2 | The record itself says the reading warrants a manual check |

### What the review does and does not establish

**Does:** every published record was read and judged, and the judgement is
recorded and inspectable.

**Does not:** find doubt that was never written down. If an authority's page was
unclear and the researcher did not note it, no reading of the record reveals
that. Establishing that would mean re-reading all 315 sources, which is a
different and much larger job.

**Deliberately not treated as doubt.** Several patterns look like uncertainty
and are not:

- **Scottish naming notes.** Many Scottish authorities call the VEHICLE licence
  an "operator licence". Records saying so are *disambiguating*, which is the
  opposite of doubt.
- **Confirmations of currency**, e.g. "frozen for 2026-27 per council", "still
  current", "signed-off committee decision".
- **Abolished-authority notes** where the successor's current fees are stated
  confidently, as with the Somerset and Westmorland and Furness zones.
- **Verified oddities**, such as an authority pricing a renewal above a new
  application. Surprising, checked, and correct.

### `source_domain`
The domain the figure was read from. Text.
Example: `blackburn.gov.uk`

This is a domain, not a document title. It is named `source_domain` because
that is what it holds. `source_url` below is the field that identifies the exact
page or document.

### `source_url`
The exact URL read. Text, always https.

This is the field that makes a record checkable. Some point to a fees page,
some to a PDF, some to committee papers — whichever actually states the figure.

**A source URL is not promised to remain live.** Authorities reorganise their
sites and withdraw committee papers.

### `checked_date`
The date a person read that source. `YYYY-MM-DD`.

Not the date the authority set the fee, and not the date this file was
generated. It is the date of human reading. Every record carries one.

**What this establishes:** the record states what TaxiTools found published when
the source was checked on that date. It is a record of reading, not a warranty
of correctness — a person can misread a table, and an authority can publish
something wrong.

### `checked_note`
Any caveat recorded at the time of reading. Text, often empty.

This is where the researcher's own doubt is preserved: which financial year the
schedule was headed, whether a proposed figure had been formally adopted,
whether the authority's own pages contradicted each other, where a heading
appeared to be wrong. It is deliberately not tidied away.

---

## What is not in this version

| Not included | Why |
|---|---|
| Medical requirements | The underlying records carry a source and URL but **no per-record checked date**. Every record in this product carries one, so medical data waits for v1.1. |
| Driver and vehicle counts | Sourced from DfT statistics (TAXI0113). Crown material with its own reuse terms, which have not been confirmed for this purpose. |
| Region and nation | Held on the same DfT table, so out for the same reason. |
| Fuel prices | Retailers' own feeds under their terms. |
| 24-hour stops | OpenStreetMap under the Open Database Licence, which is share-alike. |
