Get booked: 10 AI skills for short lets and holiday homes

pricing-calendar

what to charge, week by week

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: pricing-calendar
description: Turns two years of your own bookings into a week-by-week nightly price for the next twelve months, with a floor you never go below and the two thresholds that change what a night is worth. Use when setting or resetting rates for a short let, holiday home or serviced apartment.
---

# Work out what to charge next year, week by week, from your own booking history

You give this an export of your bookings for the last two years, whatever you can find on what each stay actually cost you to service, and your local authority's published school term dates. You get back a fifty-two row calendar with a nightly rate for every week, a floor price you never sell below, the minimum-stay rules that stop your calendar filling with unsellable single nights, and a one-page note of the two dates in the year when an extra booking is worth far more than the money on it. It works from your own numbers. It does not guess at what your neighbours charge.

## What it does

1. **Get two years of bookings out of the system before you touch a price.** One row per stay, with: booking reference, the date the booking was made, check-in date, checkout date, nights, guests, channel (direct, Airbnb, Booking.com, agent), gross amount the guest paid, commission and card fees deducted, net received, and cancelled or not. Two years, not one, because one year cannot tell you the difference between a good August and a hot August. If you only have one year, say so at the top of the output and mark every seasonal conclusion in it as provisional, because a single observation of a week is not a pattern.

2. **Explode the stays into nights, because the night is the unit you sell.** A five-night stay becomes five rows, each carrying the date, the day of the week, the net amount apportioned to that night, and the booking reference it came from. Every date in the two years gets a row, including the empty ones, marked as void. You cannot see the shape of your year from a list of bookings; you can see it immediately from a list of nights.

3. **Compute occupancy, average nightly rate and revenue per available night for every calendar week.** Occupancy is nights sold divided by nights available. Average nightly rate is net revenue divided by nights sold. Revenue per available night is the two multiplied together, and it is the only one of the three you can be wrong about in both directions at once. Anthropic's published `variance-analysis` skill describes this shape of decomposition as "the most fundamental variance decomposition. Used for revenue, cost of goods, and any metric that can be expressed as Price x Volume", and that is exactly what a let is: a price and a count of nights. Print all three per week, side by side, for both years.

4. **Find the weeks you sold out early and the weeks you gave away.** A week at 100% occupancy where every booking was made more than 120 days ahead was underpriced, and the calendar should say so in words. A week that sold at all only after a late discount was overpriced for its lead time, not for its season. Sort the fifty-two weeks by revenue per available night and look at the bottom ten: those are the weeks where the price is not the problem, the minimum stay or the changeover day usually is.

5. **Work out the floor price, and make it a hard number.** Add up what one more booking actually costs you: laundry and linen hire, the cleaner's time at the rate you pay, consumables to your par list, the utilities a stay adds, the platform commission as a percentage, card fees, and the amortised cost of the wear that a turnover causes. That total, per stay and per night, is the floor. Below it the booking loses money and a full calendar of them is worse than an empty one. The floor is a number on the sheet, not a feeling, and it gets recalculated when the cleaner's rate changes.

6. **Build the fifty-two week base rate before you touch any single date.** Each week gets a rate derived from its own two-year history, not from a percentage uplift on a single annual figure. Then overlay, in this order: school holidays taken from your own local authority's published term dates and from the term dates of the two or three areas your guests actually travel from, bank holidays, and any local event with a published date on the organiser's own website. Never put an event date in the calendar that you have not read on the organiser's own domain, and never carry last year's date forward for an annual event. Subtract the event date from today's date and if it has already passed, it is not an opportunity, it is a mistake waiting to be priced around.

7. **Set the lead-time ladder per season, not per property.** For each season compute the distribution of how many days ahead bookings were actually made. Where the median lead time is long, hold the price and wait. Where it is short, the rate you publish twelve months out is a placeholder and the money is made in the last six weeks. Write the ladder as explicit rules with dates attached: what the rate is at 120 days out, at 60, at 21, at 7, and what the last-minute floor is. Without the ladder, a discount gets applied on a Thursday afternoon because the calendar looked empty, which is how a good August week gets sold at a February price.

8. **Set minimum stays and changeover days to kill orphan nights.** Count, from step 2, how many nights in the last two years sat empty between two bookings with nothing either side. Those are orphan nights and they are pure loss. A Saturday-to-Saturday minimum in peak weeks removes them; a two-night minimum with a same-day gap-filler rule removes them in the shoulder months. Write the rule as: minimum nights by week, permitted arrival days by week, and the one exception that says a gap of exactly the orphan length may be sold at the floor price.

9. **Check the published price against the pricing rules before it goes anywhere near a guest.** The CMA's price transparency guidance says "The total price should normally include any unavoidable or 'mandatory' charges" and that it is "illegal to hide additional fees, taxes or other charges that the customer will have to pay until later in the purchase process". If you advertise a "from" rate, CAP rule 3.22 requires that price claims such as "from" must not exaggerate availability, and the ASA upheld a complaint against Eurostar International Ltd on 3 January 2024 over "FROM JUST £39 EACH WAY" because only a very small percentage of seats were at that price. So the lowest rate on your fifty-two week calendar is the only number that may follow the word "from", and it has to be genuinely bookable.

10. **Flag the two thresholds that change what a marginal night is worth.** In England a property is rated as a self-catering business rather than a domestic dwelling only if, among other conditions, "it was available to let for short periods commercially for at least 140 nights in the last 12 months" and "it was actually let for at least 70 nights in the last 12 months"; the Welsh figures are 252 and 182. If the calendar projects 68 let nights, the last two bookings of the year are worth far more than their nightly rate, and the calendar should say so in a line of its own. The second threshold is VAT: registration is required when "your total taxable turnover for the last 12 months goes over £90,000". Both of these are for the owner's accountant to confirm against their own position, and the output says so rather than deciding it.

## Then it checks

1. Every one of the fifty-two weeks carries a rate, a floor, a minimum stay and a permitted arrival day, with no cell reading "tbc", "as last year" or "market rate".
2. Every rate in the calendar is greater than or equal to the floor price computed in step 5, and any week where it is not is listed separately with the reason it is being sold at a loss.
3. The floor price itself reconciles: the individual cost lines added together equal the stated floor, per stay and per night, and every line names where its figure came from.
4. Occupancy, average nightly rate and revenue per available night are shown for all fifty-two weeks in both historic years, and revenue per available night equals occupancy multiplied by average nightly rate on every row.
5. Every event date and school holiday date in the overlay names the source it was read from and the date it was read, and every one of them is in the future when measured against today.
6. The lowest rate in the whole calendar is identified explicitly as the only figure permitted after the word "from", and the total price at that rate, including every unavoidable charge, is stated beside it.

Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop.

## Rules
- Public information only.
- Never invent a fact, a number or a quote.
- Anything sent in someone's name says whose name it is.
- Never fill a gap in the history with an estimate. A week with no data is a week with no data, and it gets the neighbouring weeks' rate with a note saying so, not a modelled number that later gets quoted back as though it were measured.
- Never price from a competitor's public rate. What a listing displays is an asking price, not a price anyone paid, and building your calendar on other people's unsold nights is how a whole street talks itself into a bad season.
- Never publish a "from" price that does not exist in the calendar as a genuinely bookable rate, and never leave a struck-through price in place without the like-for-like comparison written beside it.
- This output is a working document prepared for the owner's accountant to check before it is used. It arranges the owner's own figures and applies published guidance; it is not tax advice, and the business rates and VAT positions in it are prompts for a conversation with an adviser, not conclusions.

## Built from
- Competition and Markets Authority, "Providing clear and accurate information about prices: summary", https://www.gov.uk/government/publications/price-transparency-cma209/providing-clear-and-accurate-information-about-prices-summary, updated 7 January 2026, read 14 September 2026: the total-price rule and the prohibition on dripping charges, which set the compliance test in step 9.
- Committee of Advertising Practice, "Travel marketing: Pricing", https://www.asa.org.uk/advice-online/travel-marketing-pricing.html, page dated 30 April 2026, read 14 September 2026: CAP rules 3.18 and 3.22 and the Eurostar ruling of 3 January 2024, which is why the "from" price in step 9 must be the actual lowest bookable rate.
- GOV.UK, "Self-catering and holiday let accommodation" (business rates), https://www.gov.uk/introduction-to-business-rates/self-catering-and-holiday-let-accommodation, no publication date shown on the page, read 14 September 2026: the 140 and 70 night conditions in England and the 252 and 182 night conditions in Wales, which is the whole of the first threshold in step 10.
- GOV.UK, "Register for VAT: when to register", https://www.gov.uk/vat-registration/when-to-register, no publication date shown on the page, read 14 September 2026: the £90,000 rolling twelve month threshold in step 10.
- HM Revenue & Customs, "Abolition of the furnished holiday lettings tax regime", https://www.gov.uk/government/publications/furnished-holiday-lettings-tax-regime-abolition/abolition-of-the-furnished-holiday-lettings-tax-regime, updated 7 November 2024, read 14 September 2026: the reason the calendar reports net figures and refers the profit question to an accountant rather than answering it.
- Anthropic, `variance-analysis` skill, knowledge-work-plugins, https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/finance/skills/variance-analysis/SKILL.md, no publication date shown in the file, read 14 September 2026: the price-times-volume decomposition that steps 3 and 4 apply to nights sold.

Prompt for Codex

# pricing-calendar

## You are given

A folder of booking exports (CSV or XLSX) from a UK short let, covering up to two years. Column names vary by platform. Expect some combination of: booking reference, booked date, check-in, checkout, nights, guests, channel, gross paid, commission, fees, net, status. Also expect an optional `costs.csv` of turnover costs (label, amount, unit: per stay, per night or percent of gross) and an optional `dates.csv` of school holidays, bank holidays and local events (label, start, end, source URL, date read).

## Produce

Write these files into an `output/` folder beside the input.

1. `nights.csv` - one row per calendar date across the whole period. Columns: `date, weekday, iso_week, status, booking_ref, channel, net_night, lead_time_days`. `status` is `sold`, `void` or `blocked`. Every date between the first and last date in the data must appear exactly once.
2. `weekly-summary.csv` - one row per ISO week per year. Columns: `year, iso_week, week_start, nights_available, nights_sold, occupancy_pct, avg_net_rate, revpan, median_lead_time_days, orphan_nights`. `revpan` must equal `occupancy_pct/100 * avg_net_rate` to two decimal places.
3. `floor-price.csv` - one row per cost line. Columns: `label, amount, unit, source, per_stay_gbp, per_night_gbp`, then a final row `label=FLOOR` carrying the totals.
4. `pricing-calendar.csv` - exactly 52 rows for the next twelve months. Columns: `iso_week, week_start, week_end, season_label, overlay, base_rate_gbp, floor_gbp, min_nights, arrival_days, rate_120d, rate_60d, rate_21d, rate_7d, last_minute_floor_gbp, notes`.
5. `pricing-calendar.html` - one printable A4 page, portrait, rendering `pricing-calendar.csv` as a 52 row table, with the floor price and the two thresholds boxed at the top.
6. `thresholds.txt` - projected let nights for the next twelve months against 140 available and 70 let (England) and 252 and 182 (Wales), and projected gross against £90,000. State which nation's figures are used, or say it is unknown.

## Rules

- Never invent a figure. A missing cost line is written as `amount=UNKNOWN` and carried into the floor as zero with a note, not estimated.
- Never write a rate below the floor without a `notes` entry giving the reason.
- Never carry an event date forward from a previous year. Drop any `dates.csv` row with no `source URL` and `date read`, and list it in `thresholds.txt` as unverified.
- With fewer than 24 months of data, write `PROVISIONAL` in every week's `notes` and at the top of `pricing-calendar.html`.
- Money in pounds sterling to two decimal places. Dates ISO `YYYY-MM-DD`. British English. No em dash characters.

## Return

The six file paths with row counts, the floor price per stay and per night, the five lowest and five highest weeks by `revpan`, the orphan night count, and any input column you could not map, named exactly as it appeared.

Built from the best public work on this

Sources for pricing-calendar

Everything below was opened and read on 14 September 2026. Nothing is cited that could not be loaded.

1. Competition and Markets Authority, "Providing clear and accurate information about prices: summary"

https://www.gov.uk/government/publications/price-transparency-cma209/providing-clear-and-accurate-information-about-prices-summary, last updated 7 January 2026, read 14 September 2026.

The GOV.UK summary of CMA209, the price transparency guidance the CMA published on 18 November 2025 under the Digital Markets, Competition and Consumers Act 2024. The lines that matter to a pricing calendar are these: "The total price should normally include any unavoidable or 'mandatory' charges", it is "illegal to hide additional fees, taxes or other charges that the customer will have to pay until later in the purchase process", and where the total cannot be calculated up front the trader must "give the customer the information they need to be able to calculate the total price themselves" with that information "as prominent as the part of the price that you can calculate". The exposure is stated as fines "up to 10% of your turnover, or £300,000, whichever is greater". This is why step 9 of the skill treats the compliance test as part of setting the price rather than as something the website does afterwards. A calendar that quotes £95 a night while a £75 compulsory cleaning fee waits at the checkout is not a £95 calendar, and an owner who has priced their year on the £95 has priced it on a number that cannot lawfully be shown alone. The practical consequence inside the skill is that `pricing-calendar.csv` carries a base rate and the floor, and the compliance step forces the owner to state the total at the lowest rate in the year. Where the skill departs from the source: CMA209 is written for traders who control their own checkout, and most short-let owners sell mostly through platforms whose fee display they cannot change. The skill therefore applies the test to the wording and figures the owner controls, and does not pretend the owner can fix a platform's display.

2. Committee of Advertising Practice, "Travel marketing: Pricing"

https://www.asa.org.uk/advice-online/travel-marketing-pricing.html, page dated 30 April 2026, read 14 September 2026.

CAP's advice page for travel pricing, which is the working interpretation the ASA applies. Two rules and one ruling drove the skill. Rule 3.18 requires that "marketers quoting prices must include all non-optional taxes, duties, fees and charges that apply to all or most buyers". Rule 3.22 requires that price claims such as "up to" and "from" "must not exaggerate the availability or amount of benefits likely to be obtained by the consumer". And the page names Eurostar International Ltd, 3 January 2024, where "FROM JUST £39 EACH WAY" was found misleading because only a very small percentage of total available seats were priced at £39, "not a significant proportion". The page also records that the ASA has applied a rule of thumb that at least 10% of the products or services advertised should usually be available at the "from" price, while noting that CTSI guidance refers to a "significant proportion" and that the ASA investigates case by case. The skill uses the ruling rather than the rule of thumb, and does not quote the 10% figure as a standard, because the page itself says availability is judged case by case. What this produces in the skill is check 6: the lowest rate in the fifty-two week calendar is identified explicitly, and it is the only figure permitted after the word "from". Where the skill departs from the source: it does not assert that a booking-platform listing is an advertisement caught by the CAP Code. It treats the ASA's test as the practical standard for whether a "from" claim is defensible, which is the useful question regardless of which regulator would hear it.

3. GOV.UK, "Self-catering and holiday let accommodation" (business rates)

https://www.gov.uk/introduction-to-business-rates/self-catering-and-holiday-let-accommodation, no publication date shown on the page, read 14 September 2026.

The government's statement of when a self-catering property is valued for business rates rather than council tax. For England the conditions include that "you're letting it for short periods commercially for 28 nights or less", that "it was available to let for short periods commercially for at least 140 nights in the last 12 months", that "it was actually let for at least 70 nights in the last 12 months", and that "you plan to make it available to let for short periods commercially for at least 140 nights in the next 12 months". For Wales the equivalent figures are 252 nights available and 182 nights actually let, with an averaging provision across 24 to 36 months for reporting periods ending on or after 1 April 2026 and up to 14 donated charity nights counting toward the totals. This single page is the reason step 10 exists at all, and it is the most commercially useful thing in the skill. A night is not worth its nightly rate when it is the sixty-ninth or seventieth night of the year. It is worth its nightly rate plus the entire difference between a council tax bill and a business rates bill that small business rate relief may reduce to nothing. An owner who does not have that threshold on the calendar will turn down a cheap November booking that was worth thousands. Where the skill departs from the source: the page states the conditions but the consequences depend on the property's rateable value, on small business rate relief, and on the owner's own circumstances, none of which the skill can know. So `thresholds.txt` reports the projected night counts against the published thresholds and stops there, and the skill sends the conclusion to the owner's accountant.

4. GOV.UK, "Register for VAT: when to register"

https://www.gov.uk/vat-registration/when-to-register, no publication date shown on the page, read 14 September 2026.

Short, and included for one number that the skill would otherwise have had to invent. Registration is required when "your total taxable turnover for the last 12 months goes over £90,000 (the VAT threshold)", and also where "you expect your taxable turnover to go over £90,000 in the next 30 days". Holiday accommodation is a standard-rated supply, unlike residential letting, so a growing portfolio of short lets meets this threshold far sooner than the owner expects, and the rate at which it arrives is a pricing decision. The skill puts the projection in `thresholds.txt` beside the night-count projection so that both appear on the same page. Where the skill departs from the source: it does not say whether any particular owner's income is taxable turnover, whether any of it is exempt, or whether registering voluntarily would help. Those are accountant questions and the skill says so in its final rule.

5. HM Revenue & Customs, "Abolition of the furnished holiday lettings tax regime"

https://www.gov.uk/government/publications/furnished-holiday-lettings-tax-regime-abolition/abolition-of-the-furnished-holiday-lettings-tax-regime, updated 7 November 2024, read 14 September 2026.

The policy paper for the abolition of the FHL regime. It states that the rules cease to apply "on or after 6 April 2025 for Income Tax and for Capital Gains Tax" and "from 1 April 2025 for Corporation Tax and for Corporation Tax on chargeable gains", and lists the four effects: "applying the finance cost restriction rules so that loan interest will be restricted to basic rate", "removing capital allowances rules for new expenditure and allowing replacement of domestic items relief", "withdrawing access to reliefs from taxes on chargeable gains for trading business assets", and "no longer including this income within relevant UK earnings when calculating maximum pension relief". Afterwards, income and gains "will then form part of the person's UK or overseas property business" and "be treated in line with all other property income and gains". This matters to a pricing calendar for one reason that is easy to miss: for a mortgaged property, the relationship between gross revenue and what the owner keeps changed on 6 April 2025, and a pricing plan built on a pre-2025 mental model of profit is built on the wrong number. The skill's response is deliberately modest. It works entirely in net receipts after commission and fees, it never states a profit figure, and it hands the profit question to the accountant. Where the skill departs from the source: HMRC's paper is about tax computation and says nothing about pricing. The skill takes only the fact and the date, and it does not attempt to translate the change into a rate increase, because the size of the effect depends on the owner's borrowing and their marginal rate.

Best public prompt we found for this job

The closest public artefact is the `variance-analysis` skill in Anthropic's `knowledge-work-plugins` repository, at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/finance/skills/variance-analysis/SKILL.md. The repository has 24,015 stars, read from api.github.com on 14 September 2026. It is a finance skill for budget-versus-actual analysis, not a pricing tool, but it contains the one idea a short-let owner most needs and almost never applies, which is that a revenue movement is always two movements:

The most fundamental variance decomposition. Used for revenue, cost of goods, and any metric that can be expressed as Price x Volume.

A let is Price x Volume. The rate is the price, the nights sold are the volume, and revenue per available night is the product. An owner looking only at total income for August cannot tell a rate problem from an occupancy problem, and will usually fix the wrong one by dropping the rate on a week that was already full. Steps 3 and 4 of this skill are that decomposition applied to weeks instead of ledger lines, and check 4 enforces the arithmetic. What we did not copy is the rest of the file. `variance-analysis` goes on into three-way mix decomposition, waterfall charts and materiality thresholds expressed in dollars, all of which is correct and all of which is far more machinery than one property with fifty-two weeks needs. We also dropped its narrative-generation section entirely: a pricing calendar needs a rate in a cell, not a paragraph of commentary explaining why last August was soft. Its opening caveat, that the skill "does not provide financial advice" and that analyses "should be reviewed by qualified financial professionals before use", is the one thing we kept verbatim in spirit, and it became the final rule.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.