Staying Under Cape Town's 50% Letting Threshold

This is a draft by-law, not law. The City of Cape Town published its draft Short-Term Letting By-Law, 2026 for public comment in August 2026, and comment closes on 5 October 2026. Details may change. Where this article goes beyond what the draft actually says, it says so. It is general information, not legal, tax or rates advice, and you should take professional advice on your own property.

Read the proposal: the full draft by-law (PDF) · the City’s executive summary (PDF) · how to comment before 5 October

For the by-law as a whole — registration, the number on every listing, what data the City receives, and the offences — see Short-term Letting in the City of Cape Town. This article is about the one number that decides your rates bill. If you let a cottage or flatlet on the same erf as your home, see A Cottage on the Same Erf — the erf, not the cottage, is the unit.

The number that catches people out

Most coverage of Cape Town’s draft short-term letting by-law leads with registration. That matters, but it isn’t the part that will cost you money.

This is section 8. In the draft’s own words:

“All properties that meet or do not exceed the 50% of total annual room nights threshold may be regarded as residential property… All properties that exceed the 50% of total annual room nights threshold will be regarded as commercial property and property rates will be levied accordingly.”

— Draft Short-Term Letting By-Law, 2026, s 8(2)–(3)

Exceed it and the property is reclassified from residential to Business & Commercial for rates purposes.

What the draft does not say

Two things are worth being straight about, because most commentary — including an earlier version of this article — glosses over them.

It defines the unit, but circularly. Section 1 defines “total annual room nights” as “the maximum annual capacity of a property for short-term letting” — which tells you the threshold is about capacity without saying how capacity is counted. Bedrooms × 365 is the reading almost everyone has taken, and the one we use below, but the by-law does not say it.

It does not say whether the 50% is measured on availability or on bookings. Section 7(1) has the City collecting both — “(c) the availability data of each listing on a booking platform; (d) the occupancy data of each listing on a booking platform” — and then says nothing about which one feeds the threshold.

That second gap matters enormously. On an availability reading, a one-bedroom flat listed all year that sells only 30 nights is at 100%, and you could earn almost nothing and still be reclassified. On an occupancy reading the same flat is at 8% and nowhere near.

Plan for the availability reading. Not because the draft says so — it does not — but because it is the worse of the two outcomes, it is the one you can actually control, and the City is collecting the data for it either way. If the final by-law settles on occupancy you will simply have been conservative. If it settles on availability and you assumed otherwise, you get a rates bill.

That is what turns this from a rates question into a calendar-management question.

How the maths actually works

On the common reading — bedrooms × 365, see the caveat above — the unit is the room-night, not the night.

Property Total annual room-nights 50% threshold
1 bedroom 365 ~183
2 bedrooms 730 ~365
3 bedrooms 1,095 ~547
4 bedrooms 1,460 ~730

So a three-bedroom house has 1,095 room-nights in a year, and availability beyond roughly 547 of them triggers the commercial classification.

Two implications people miss:

Offering one room cannot trip it. One room offered every single night of the year is 365 of 1,095 room-nights — 33%. Offer only one room and you can never reach 50%, however long you let it. That is squarely the “supplementing my income from my own home” case the draft says it isn’t targeting.

But it is letting less of the house that protects you, not letting by the room. Put all three rooms on the market individually, all year, and you are at 1,095 of 1,095 room-nights. That is 100%, not 33%.

Per night you are open, the whole house reaches the line fastest. The fair comparison is at the same number of calendar nights, not a full year against half a year. On any night you are available, a whole three-bedroom house spends three room-nights where a single room spends one. Open for 182 nights, one room uses 17% of the allowance and the whole house 50%. That is the actual mechanism: a whole-house host crosses at roughly six months of availability, a two-room host at about nine months, and a one-room host never.

What it costs if you cross it

Cape Town’s 2026/27 rates are 0.6428 cents in the rand (R0.006428 per rand of municipal valuation) for residential and 1.5106 cents in the rand (R0.015106) for business and commercial. That’s roughly 2.35 times the residential rate.

On a property valued at R3 million, the difference is in the region of R25,000 a year. That is not a rounding error, and it is charged whether or not the property actually earned anything.

Worth being clear about what the threshold is and isn’t: it is not a cap. Nobody is banning you from letting more than half the year. Exceed it and you are reclassified and rated as the commercial operation you are effectively running. If that’s your business, that may be perfectly fine — see the companion piece on running it properly. The problem is crossing it by accident.

Registration applies either way

Separate from the 50% question, the draft requires every short-term letting to register with the City and to display its registration number on the listing — on any platform. It also requires platforms, owners and operators to share listing and availability data with the City.

That second part is what makes the whole thing enforceable, and it changes the posture. Your availability is not something you will be asked to self-report and estimate generously. It is something the City expects to receive.

Section 11 of the draft creates criminal offences for listing without registration, failing to display a valid number, or using a cancelled one — with penalties up to six months’ imprisonment and/or a fine.

The practical problem: you probably can’t answer the question

Here’s where most hosts are, right now.

You list on two or three platforms. Each has its own calendar. Some nights are blocked for family use, some for maintenance, some because a channel booked them. Your availability — the actual number the City cares about — is the union of all of those, across a rolling 365-day window.

Almost nobody can produce that number. And “listed as available” aggregates across platforms: two channels both showing the same night as open is one available night, not two, but a night open on any one of them counts.

So if you intend to stay under the threshold, you need three things:

  1. One calendar that shows the true availability of each property across every channel.
  2. Deliberate blocking, so closed periods are actually closed everywhere rather than closed on one platform and quietly open on another.
  3. A record you could show someone — what was open, what was blocked, and when.

Airflow now measures this for you

When this article was first published, Airflow could give you the raw material — one consolidated calendar — but not the number. That changed on 26 September. There is now a letting limit gauge you switch on per property.

Pick the rule. Cape Town (draft 2026) is a preset, alongside London’s 90 nights, Amsterdam’s 30 and Paris’s 90, plus a custom option if your city differs. The presets are maintained centrally, so if the by-law changes on the way through comment, the rule updates without you touching anything.

It reads your real calendar. Availability is taken across every channel feed you’ve connected plus your own bookings and blocks, as the union — not one platform’s slice.

It shows position, not just a number. How many room-nights you’ve offered against your limit, how much headroom is left, and the line that actually matters: on the current calendar you pass the limit on 14 March. By the time a gauge reads 51% you have already crossed, so the forecast is the part you act on.

It tells you what to close. Where you’re over, it works out how many unbooked nights need blocking and proposes them cheapest season first, grouped into date ranges, so your peak nights stay open. Closing a future night takes it straight out of the offered count. One click applies them. Nothing is blocked automatically unless you switch on weekly auto-closing — and any night it closes can be reopened from Block Dates.

It tells you before you look. A change of band emails you — approaching, close, over, or recovered — through your normal notifications. Once per change, not daily.

It produces the paperwork. A CSV statement per property: the day-by-day record, the exact settings that produced the number, and — the part we think matters most — how much of it was observed by the daily snapshot versus reconstructed afterwards from your bookings. A statement that hides that distinction is worth less than one that admits it.

The bit that starts the clock

From the day you switch it on, Airflow records what each property offered, every night, every day. That record is monotonic: once a night has been seen as offered, a later edit to your calendar cannot quietly un-offer it.

This is the one piece that cannot be created retrospectively. We reconstruct what we can from your existing bookings and blocks so the gauge is useful immediately rather than in twelve months — and we label every reconstructed day as exactly that. But every day you don’t record is a day you can never evidence, and the City will be receiving availability data from the platforms continuously. Their record will be daily. Yours should be too.

Proving you closed the right nights

Knowing you’re under the limit isn’t the same as being comfortable about how you got there. The obvious worry with closing nights is that you close the wrong ones.

So the picture doesn’t show a calendar. It shows every night in the window sorted by nightly rate, tallest first, coloured by whether it’s booked, still open, or closed:

Letting limit chart: a meter showing 178 of 183 room-nights offered, above a descending staircase of nightly rates where booked and open nights dominate the expensive left-hand side and closed nights crowd the cheap right-hand side, with a season table beneath

A calendar can’t answer “did I close the cheap ones?” unless you know every date’s season by heart. Sorted by value, the answer is the shape: grey should crowd the right. A closed night standing tall on the left means something valuable was shut, and you’d spot it instantly.

The table underneath gives the same thing as numbers — in the example above, 0% of High Season closed, rising to 91% of Low Season. That gradient is the proof.

How the whole thing runs

Diagram of the letting limit cycle: every day Airflow records what was offered, measures it against the budget and forecasts the crossing date; every Monday it closes the cheapest unbooked nights and tells you what changed. Guard-rails listed: never a booked night, never the next 90 days, never more than you allow, never unless you switch it on

Ranking is by your own seasonal rate card — not a demand model. We’d need years of booking history to model demand honestly, and you’ve already told us which weeks are worth 1,400 and which are worth 450. Your prices are the best demand signal available, they work from day one, and you can argue with them.

If you turn on the weekly pass, closures are proposed and applied in contiguous runs, furthest out first. Never scattered single nights — a one-night gap between two blocks is unsellable under any minimum stay, so naive closing destroys more inventory than it saves.

What it still won’t do

It will not tell you whether you comply. It reports a measurement against a threshold you configured — “you are at 97% of your limit” — and never renders a verdict, because that is a judgement about a draft by-law in a jurisdiction we don’t administer. It doesn’t file anything with the City. And if you haven’t connected your channel calendars, it can only see what it can see, so it will under-report. Connect the feeds first.

The weekly closing is off unless you switch it on, per property, and it costs 2 actions a run — charged only when nights are actually closed. Turning it on asks you twice.

Setting it up

Roughly ten minutes, once:

  1. Open an account and add the property.
  2. Set the bedroom count on the Listing tab. The Cape Town rule is counted in room-nights, so the maths needs it — the gauge will prompt you and link straight to the field if it’s missing.
  3. Connect your channel calendars. Paste each platform’s iCal URL. This is what makes availability the union rather than a guess, and it’s covered in Every Booking You Already Have, In One Place.
  4. Import your history if you have it — a CSV or Google Sheet of past bookings. Every row lands as an availability block, so nothing is invoiced and no guest is emailed. It gives the gauge a past to count.
  5. Open Block Dates → Letting limit, switch on tracking, and choose Cape Town (draft 2026).
  6. Add your registration number when you have one. It renders on your booking page automatically, which is what the draft requires.
  7. Decide whether to let it close nights for you. Off by default. If you switch it on, set how much of the near term is untouchable and the most it may close in a week.

Then leave it alone. It records every night, tells you when something changes, and — if you asked it to — quietly keeps you under the line by giving up your cheapest weeks first.

If you want to stay under

A few practical moves, none of which require software:

  • Decide your season and block the rest properly. Availability you never intended to sell is the cheapest availability to give up. A property genuinely closed for four months is a very different number from one left listed “just in case”.
  • Check every channel, not your main one. The most common way to cross this line is a secondary listing nobody has looked at since last year, quietly open all year.
  • Count rooms, not nights. If you let a whole house, you are spending room-nights three or four times faster than the calendar suggests.
  • Watch the rolling window. It is not a calendar year. A heavy summer stays in the count until it rolls out twelve months later.

And if you disagree with it

The comment period closes on 5 October 2026. If the 50% availability measure — counting offered nights rather than sold nights — strikes you as the wrong basis, that is precisely the kind of submission a comment period exists for. The City’s own short-term letting FAQ and the draft by-law page are the places to start.

Whichever side of the threshold you land on, the same thing is true: from here, your availability is data somebody else holds too. Being able to see it before they do is the whole game.

Related: Why Your iCal Sync Keeps Breaking, One Calendar to Rule Them All, Every Booking You Already Have, In One Place, and the companion piece, South African Short-Term Rental Tax and Rates.