Ninety pitches, one database, one availability rule. For the same eight nights every August pitch 31 comes back as occupied, by a booking with no name, no payment and no reference, that I cannot delete.
I took over the site from my father in 2014 and the first thing I did was put the bookings on a computer, because he ran ninety pitches out of a hardback diary and I could not read his handwriting.
The system is an off the shelf one that a lot of small sites use. It is a web thing with a database behind it, and it does one job: for every pitch and every night, is it free.
A pitch is not free when there is a booking row covering that night. The row has a reference, a name, an arrival, a departure, a party size, a vehicle, an amount and a payment status. That is the whole model and it is why these systems are reliable.
I also have direct access to the database, because in 2016 I wanted to pull some figures the reports would not give me and the supplier, to their credit, gave me a read-only login and a schema.
Pitch 31 is unavailable from the 4th to the 12th of August. Every year.
It shows as occupied in the calendar, greyed, the way a booked pitch shows. The tooltip you get on a booked pitch, which normally gives you the name and the reference, is blank.
I cannot release it. The release function asks for a booking to cancel and there is no booking to select.
What is in the database.
This is where it stops being a software problem, which is what I thought it was for two years.
There is no row.
I have looked with the read-only login, with the schema in front of me, with somebody who does this for a living sitting next to me on a video call in 2019 because I paid him for two hours. The bookings table has no row covering pitch 31 for those dates. The blocks table, which is what you use to take a pitch out of service for maintenance, has no row. The maintenance table, the pricing overrides, the group allocations, the season tickets, the owner bookings: nothing.
Every table the availability query touches is empty for pitch 31 in August, and the availability query says pitch 31 is occupied in August.
The man I paid ran the query himself. Then he ran the query with the pitch and dates hardcoded. Then he said a sentence I have thought about ever since, which is that the query was returning a row the tables did not contain, and that he would need to see the server to go further, and the server is the supplier's.
The supplier.
They have been good about it, better than I expected. It is a small company and I have spoken to the same two people for nine years.
In 2020 they migrated my site to a new platform, which meant exporting everything and importing it into a fresh database. A clean one. New schema, new server, new everything.
Pitch 31 is unavailable from the 4th to the 12th of August.
In 2022 they did something cleverer at my request, which is that they created a new site record from scratch, a new site ID, and imported only my pitch list and my price list and none of my bookings. A brand new empty campsite in their system, ninety pitches, no history.
Pitch 31. 4th to the 12th.
I asked whether anybody else had reported anything like it. They said no. I asked, and I am not proud of this, whether they had ever had a customer called anything like my surname, or a site at my postcode, before me. They checked, which they did not have to, and said no.
Pitch 31 on the ground.
It is at the bottom corner of the lower field, against the hedge, furthest from the toilet block. It is a perfectly ordinary grass pitch, flat, with a hook-up post, and in the other forty four weeks of the season it is booked and used like any of them and nobody has ever said anything about it.
I have looked for a reason in the ground. There is nothing there. The site was a water meadow until 1961 and before that it was a water meadow, and there is nothing on the old maps, nothing in the historic environment record, and the hedge is a hedge.
My father is eighty eight and still sharp and I asked him, in 2018, whether anything had ever happened on the bottom corner of the lower field.
He said no, and then he said, without me asking anything else, that he had always left that corner until last when he was allocating in the summer, and that his father had too, and that he could not tell me why and that it was just how you did it.
The diary is in my loft. Nineteen years of it, 1974 to 1993, in his handwriting, which I still cannot read properly.
I have been through every August. The lower field pitches are numbered in the diary the same way they are numbered now, because I kept his numbering.
Thirty one is blank in the first week of August in every single year I can read, and I can read fourteen of the nineteen.
What I do about it, which is the part that makes me uncomfortable to write down.
I do not fight it any more. I stopped in 2022 when the new empty site record came back the same.
What I do is take pitch 31 off sale for those eight nights in my own head, and if somebody rings wanting the bottom corner that week I put them on 29 or 32, which are either side of it and which nobody has ever had a problem with.
And in 2023 I did one thing that was not necessary, and it is the only part of this I would not be able to defend to the man I paid in 2019.
On the 7th of August I walked down to the lower field at about ten at night with a torch, and I stood at pitch 31, and there was nobody on it, because there never is.
The grass on that pitch was flat in a rectangle, about the size of a frame tent, the way grass is flat when something heavy has been standing on it for a few days.
Nothing had been on it. The field was half empty and I had allocated it and I know what was on every pitch that night.
I went back the next morning in the light to look again, and it was still flat, and by the 13th it had come back up.
Now I go down on the 7th every year, and every year it is flat, and I have stopped taking the torch because I find I would rather not be able to see the whole of it at once.