Renewal letters are the only marketing you send to people who already said yes. And most of them read like a parking ticket.
"Dear Resident, your lease expires on 08/31/2025. Your new monthly rate will be $1,847. Please respond by 07/01/2025 to avoid month-to-month pricing of $2,197."
That's not a letter. That's a demand for payment with a greeting stapled on.
Here's what you can build in the next 40 minutes: a renewal letter system where you paste in the resident's actual data, the rent change, and a few facts about their community, and get back something a human wrote. Not a template with merge fields. A letter that reflects that this person has lived in your building for 22 months, renewed once already, and put in exactly one work order.
Why renewal copy is the highest-leverage writing you do
Do the math on your own portfolio. A renewal you keep costs you nothing. A move-out costs you turn, downtime, and the marketing spend to replace a lease you already had. Your ILS invoice exists partly because renewal letters don't work.
And renewal copy is genuinely hard to write at volume. A 300-unit community sends 25 of these a month, each with a different rent number, a different tenure, a different reason to stay. Your options have been: one generic template for everyone, or your site team writing 25 letters by hand, which means they write four good ones and then start copy-pasting at 4:40 on a Friday.
AI closes that gap. Not by writing better prose than your best community manager. By writing 25 letters at the quality of her fourth one instead of her twenty-second.
The structure that actually works
Every renewal letter has to do four things in order. Get the order wrong and people stop reading at the number.
1. Name something specific and true. Not "we value you as a resident." Something the resident can verify. Their tenure. The fact that they renewed before. That they're in the building with the courtyard. Anything that proves a person looked at their file.
2. Lead the offer, don't bury it. Give the new rate and the term options up front. Residents skim for the number. If they have to hunt for it, they get annoyed before they read your case.
3. Make the comparison for them. This is the part almost every letter skips. The resident's alternative is not "stay or pay less somewhere magical." It's a security deposit, an application fee, movers, two days off work, and the current market rate at a comparable property. You know that number. Say it. "Comparable two-bedrooms within a mile are currently listing at $1,920 to $2,050" reframes your increase as a discount for staying.
4. Make the action stupidly easy. One link. One phone number. One deadline that reads like a courtesy, not a threat.
Then cut it to under 200 words. Nobody reads a page.
Building the prompt
The prompt below is the one to save. A few things about how it's built:
You're feeding it real data, not adjectives. Tenure in months, renewal count, work-order count, and the actual comp range. The specificity in the output comes entirely from the specificity of the input. Give it "long-term resident" and you get mush.
You're telling it the rent change in dollars and percentage. Models handle a 3% increase very differently from a 9% one, and they should. A 9% letter needs to acknowledge the increase directly instead of gliding past it, because gliding past a big number reads as sneaky and residents notice.
You're banning the phrases you're sick of. "We value you." "Thank you for choosing us." "As you may know." Put them in the prompt as a do-not-use list, because those phrases are the statistical center of gravity for every renewal letter ever written and the model will reach for them by default.
You're specifying a voice. If your brand sounds a certain way, describe it in plain terms: "direct, warm, no exclamation marks, contractions okay, no corporate hedging." One sentence beats a brand guideline PDF.
One thing to watch: describe the unit, not the resident
AI writes housing copy that characterizes who should live there. Ask for a warmer renewal letter and you can get "perfect for young professionals like you," or a line about the resident's family, or an assumption about their stage of life. That's a fair housing problem, and it's a problem in a renewal letter the same as it is in a listing.
The fix is a standing instruction in every prompt: describe the unit, the community, and the offer. Never describe or characterize the resident, their household, their family status, their age, or their profession. Reference only factual account details like tenure, renewal history, and unit type. Read every letter before it sends and delete anything that describes a person instead of a property. Keep that line in your prompt permanently.
Running the batch
Once the prompt works for one resident, you run it against a list. Export your expiring leases with tenure, current rent, new rent, unit type, and work-order count. Paste ten rows in at a time and ask for ten letters. Then read all ten, because the model will occasionally invent an amenity you don't have. A rooftop deck appearing out of nowhere is the classic one.
Two more moves that pay off:
Write three versions per resident at different offer levels. One at the asking rate, one with a small concession, one with a longer term at a better rate. Now your site team has something to negotiate with instead of improvising.
Ask for the follow-up sequence at the same time. Day 7 nudge, day 14 nudge, day 21 call script. Same facts, shorter each time. The first letter gets read. The third one is what closes.
The tell you're looking for
Read your output and ask one question: could this letter have been sent to any resident in the building? If yes, you wrote a template. Go back and add a fact only that resident could confirm.
That's the whole difference. Everything else is formatting.