← back to Rentv
rentv: top-up corpus (4466->4470, +4 new articles to id 34298) + regen news-posting playbook
0d30a3874d3e2cb43d65dc028129dcdd115320c3 · 2026-08-08 08:32:49 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M data/news-posting-playbook.jsonM data/news-posting-playbook.md
Diff
commit 0d30a3874d3e2cb43d65dc028129dcdd115320c3
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Aug 8 08:32:49 2026 -0700
rentv: top-up corpus (4466->4470, +4 new articles to id 34298) + regen news-posting playbook
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
data/news-posting-playbook.json | 364 ++++++++++++++++++++++++----------------
data/news-posting-playbook.md | 122 ++++++++------
2 files changed, 295 insertions(+), 191 deletions(-)
diff --git a/data/news-posting-playbook.json b/data/news-posting-playbook.json
index b6037efb..23e5e047 100644
--- a/data/news-posting-playbook.json
+++ b/data/news-posting-playbook.json
@@ -1,49 +1,49 @@
{
- "generated_at": "2026-08-05T20:28:36.053Z",
+ "generated_at": "2026-08-08T15:32:11.633Z",
"corpus": {
- "articles": 293,
- "dated": 293,
+ "articles": 4470,
+ "dated": 4470,
"date_span": {
- "from": "2025-11-20",
- "to": "2026-08-05"
+ "from": "2015-06-29",
+ "to": "2026-08-07"
}
},
"cadence": {
- "per_active_day": 1.73,
+ "per_active_day": 1.65,
"by_weekday": {
- "Sun": 55,
- "Mon": 58,
- "Tue": 67,
- "Wed": 53,
- "Thu": 60,
+ "Sun": 791,
+ "Mon": 944,
+ "Tue": 922,
+ "Wed": 911,
+ "Thu": 901,
"Fri": 0,
- "Sat": 0
+ "Sat": 1
},
- "busiest_weekday": "Tue",
+ "busiest_weekday": "Mon",
"recent_months": [
{
- "month": "2026-06",
- "posts": 39
+ "month": "2015-10",
+ "posts": 44
},
{
- "month": "2026-01",
- "posts": 37
+ "month": "2018-08",
+ "posts": 44
},
{
- "month": "2026-03",
- "posts": 37
+ "month": "2021-08",
+ "posts": 43
},
{
- "month": "2025-12",
- "posts": 36
+ "month": "2021-12",
+ "posts": 43
},
{
- "month": "2026-07",
- "posts": 36
+ "month": "2015-09",
+ "posts": 42
},
{
- "month": "2026-05",
- "posts": 35
+ "month": "2017-06",
+ "posts": 42
}
]
},
@@ -51,256 +51,340 @@
"txn_type": [
{
"k": "Sale",
- "n": 213,
- "share": 72.7
+ "n": 2794,
+ "share": 62.5
},
{
"k": "Development",
- "n": 29,
- "share": 9.9
+ "n": 864,
+ "share": 19.3
+ },
+ {
+ "k": "Financing",
+ "n": 596,
+ "share": 13.3
},
{
"k": "Lease",
- "n": 26,
- "share": 8.9
+ "n": 166,
+ "share": 3.7
},
{
- "k": "Financing",
- "n": 25,
- "share": 8.5
+ "k": "Purchase",
+ "n": 42,
+ "share": 0.9
+ },
+ {
+ "k": "Acquisition",
+ "n": 8,
+ "share": 0.2
}
],
"property_type": [
{
"k": "Multifamily",
- "n": 81,
- "share": 27.6
+ "n": 1488,
+ "share": 33.3
},
{
"k": "Office",
- "n": 80,
- "share": 27.3
+ "n": 1079,
+ "share": 24.1
},
{
"k": "Industrial",
- "n": 64,
- "share": 21.8
+ "n": 897,
+ "share": 20.1
},
{
"k": "Retail",
- "n": 46,
- "share": 15.7
+ "n": 363,
+ "share": 8.1
},
{
- "k": "Land",
- "n": 8,
- "share": 2.7
+ "k": "Mixed-Use",
+ "n": 273,
+ "share": 6.1
+ },
+ {
+ "k": "Medical/Life Science",
+ "n": 135,
+ "share": 3
},
{
"k": "Hospitality",
- "n": 7,
- "share": 2.4
+ "n": 112,
+ "share": 2.5
},
{
- "k": "Medical/Life Science",
- "n": 4,
- "share": 1.4
+ "k": "Land",
+ "n": 101,
+ "share": 2.3
},
{
- "k": "Mixed-Use",
- "n": 3,
- "share": 1
+ "k": "Self-Storage",
+ "n": 18,
+ "share": 0.4
+ },
+ {
+ "k": "Office/Retail",
+ "n": 2,
+ "share": 0
+ },
+ {
+ "k": "Educational",
+ "n": 1,
+ "share": 0
+ },
+ {
+ "k": "Education",
+ "n": 1,
+ "share": 0
}
]
},
"headline": {
- "median_words": 11,
- "median_chars": 67,
+ "median_words": 10,
+ "median_chars": 66,
"words_p10_p90": [
- 8,
+ 7,
15
],
- "leads_with_verb_share": 86,
+ "leads_with_verb_share": 74.9,
"top_verbs": [
{
"verb": "buy",
- "n": 40,
- "share": 13.7
+ "n": 551,
+ "share": 12.3
},
{
- "verb": "land",
- "n": 33,
- "share": 11.3
+ "verb": "trade",
+ "n": 377,
+ "share": 8.4
},
{
"verb": "spend",
- "n": 33,
- "share": 11.3
- },
- {
- "verb": "acquire",
- "n": 24,
- "share": 8.2
+ "n": 362,
+ "share": 8.1
},
{
"verb": "close",
- "n": 21,
- "share": 7.2
+ "n": 261,
+ "share": 5.8
},
{
- "verb": "trade",
- "n": 19,
- "share": 6.5
+ "verb": "acquire",
+ "n": 258,
+ "share": 5.8
},
{
"verb": "sell",
- "n": 10,
- "share": 3.4
+ "n": 241,
+ "share": 5.4
+ },
+ {
+ "verb": "land",
+ "n": 213,
+ "share": 4.8
},
{
"verb": "pay",
- "n": 9,
- "share": 3.1
+ "n": 162,
+ "share": 3.6
},
{
- "verb": "breaks ground",
- "n": 7,
- "share": 2.4
+ "verb": "picks up",
+ "n": 103,
+ "share": 2.3
},
{
- "verb": "fetche",
- "n": 6,
- "share": 2
+ "verb": "complete",
+ "n": 102,
+ "share": 2.3
},
{
"verb": "lease",
- "n": 6,
- "share": 2
+ "n": 71,
+ "share": 1.6
},
{
- "verb": "secure",
- "n": 5,
- "share": 1.7
+ "verb": "purchase",
+ "n": 68,
+ "share": 1.5
}
],
- "includes_dollar_share": 58.4,
+ "includes_dollar_share": 55.6,
"top_formulas_by_txn": {
"Sale": [
{
- "formula": "{WHO} in {AMOUNT} Transaction",
- "n": 3,
- "share": 1.4
+ "formula": "{WHO} in {AMOUNT} Deal",
+ "n": 46,
+ "share": 1.6
},
{
"formula": "{WHO} for {AMOUNT}",
- "n": 3,
+ "n": 40,
"share": 1.4
},
{
- "formula": "{WHO} {AMOUNT} {ST} Apartment Buy",
- "n": 2,
- "share": 0.9
+ "formula": "{WHO} in {AMOUNT} Transaction",
+ "n": 32,
+ "share": 1.1
},
{
- "formula": "{WHO} {AMOUNT} {ST} Industrial Buy",
- "n": 2,
- "share": 0.9
+ "formula": "{WHO} in {CITY} Sells for {AMOUNT}",
+ "n": 14,
+ "share": 0.5
},
{
- "formula": "{WHO} for {AMOUNT} /sf",
- "n": 2,
- "share": 0.9
+ "formula": "{WHO} {AMOUNT} Office Buy in {CITY}",
+ "n": 11,
+ "share": 0.4
}
],
"Financing": [
+ {
+ "formula": "{WHO}",
+ "n": 101,
+ "share": 16.9
+ },
{
"formula": "{WHO} {AMOUNT} Refi",
- "n": 2,
- "share": 8
+ "n": 9,
+ "share": 1.5
},
{
"formula": "{WHO} {AMOUNT} Refi Loan",
- "n": 2,
- "share": 8
+ "n": 6,
+ "share": 1
+ },
+ {
+ "formula": "{WHO} {AMOUNT} in Financing",
+ "n": 4,
+ "share": 0.7
+ },
+ {
+ "formula": "{CITY} Res Community Lands {AMOUNT} Refi",
+ "n": 3,
+ "share": 0.5
+ }
+ ],
+ "Development": [
+ {
+ "formula": "{WHO} in {CITY}",
+ "n": 12,
+ "share": 1.4
},
{
"formula": "{WHO}",
- "n": 2,
- "share": 8
+ "n": 4,
+ "share": 0.5
},
{
- "formula": "{WHO} {AMOUNT} in New Financing on 538k sf {CITY} Life Science Campus",
- "n": 1,
- "share": 4
+ "formula": "{WHO} {SIZE} in {CITY} for Industrial Development",
+ "n": 3,
+ "share": 0.3
},
{
- "formula": "{WHO} {AMOUNT} Refi on Recently Completed {CITY} Area Multifamily Development",
- "n": 1,
- "share": 4
+ "formula": "{WHO} on {SIZE} Affordable Housing Project in {CITY}",
+ "n": 3,
+ "share": 0.3
+ },
+ {
+ "formula": "{WHO} on {SIZE} Res Project in {CITY}",
+ "n": 3,
+ "share": 0.3
}
],
"Lease": [
{
- "formula": "{WHO} at 1.27 msf Facility in Visalia",
+ "formula": "{WHO}",
+ "n": 3,
+ "share": 1.8
+ },
+ {
+ "formula": "{WHO} at 1.27 msf Facility in {CITY}",
"n": 1,
- "share": 3.8
+ "share": 0.6
},
{
"formula": "{WHO} 289k sf Bay Area Manufacturing Facility",
"n": 1,
- "share": 3.8
+ "share": 0.6
},
{
"formula": "{WHO} for 650k sf {CITY} Office Tower Awarded to CBRE",
"n": 1,
- "share": 3.8
+ "share": 0.6
},
{
"formula": "{CITY} Distribution Facility Leased by Auto Parts Distributor in {AMOUNT} Deal",
"n": 1,
- "share": 3.8
+ "share": 0.6
+ }
+ ],
+ "Acquisition": [
+ {
+ "formula": "{WHO} to Acquire RE/MAX in {AMOUNT} Transaction",
+ "n": 1,
+ "share": 12.5
},
{
- "formula": "{WHO} 1.1 msf of Space at Luke Field in {CITY} , {ST}",
+ "formula": "{WHO} {ST} Property for Redevelopment into Class A Industrial Project",
"n": 1,
- "share": 3.8
+ "share": 12.5
+ },
+ {
+ "formula": "{WHO}",
+ "n": 1,
+ "share": 12.5
+ },
+ {
+ "formula": "{WHO} to Acquire Ten-X Commercial in {AMOUNT} Deal",
+ "n": 1,
+ "share": 12.5
+ },
+ {
+ "formula": "{WHO} {ST} Buildings for Redevelopment into Creative Office Space",
+ "n": 1,
+ "share": 12.5
}
],
- "Development": [
+ "Purchase": [
{
- "formula": "{WHO} with {SIZE} Res Community in {CITY}",
- "n": 1,
- "share": 3.4
+ "formula": "{WHO} {AMOUNT} on Two SoCal Apartment Properties",
+ "n": 2,
+ "share": 4.8
},
{
- "formula": "{WHO} on New {SIZE} {CITY} Res Development",
+ "formula": "{WHO} {AMOUNT} on {CITY} Office Asset",
"n": 1,
- "share": 3.4
+ "share": 2.4
},
{
- "formula": "{WHO} to Develop {SIZE} of Affordable Housing in {CITY}",
+ "formula": "{WHO} {AMOUNT} on {CITY} Class A Office Building",
"n": 1,
- "share": 3.4
+ "share": 2.4
},
{
- "formula": "{WHO} on {CITY} High-Rise Res Development",
+ "formula": "{WHO} {AMOUNT} on Phoenix Area Medical Property Portfolio",
"n": 1,
- "share": 3.4
+ "share": 2.4
},
{
- "formula": "{CITY} Social Housing Developer Wraps Up {AMOUNT} Res Buy in Downtown {CITY}",
+ "formula": "{WHO} {AMOUNT} on {CITY} Hotel Asset",
"n": 1,
- "share": 3.4
+ "share": 2.4
}
]
}
},
"completeness": {
- "has_amount_share": 73.4,
- "median_deal_size": 53000000,
- "has_city_share": 92.8,
- "has_state_share": 82.9,
- "has_size_share": 63.1,
- "median_story_words": 392
+ "has_amount_share": 79.3,
+ "median_deal_size": 58950000,
+ "has_city_share": 99,
+ "has_state_share": 98.7,
+ "has_size_share": 97.8,
+ "median_story_words": 390
}
}
\ No newline at end of file
diff --git a/data/news-posting-playbook.md b/data/news-posting-playbook.md
index b4b373dc..3422a7f7 100644
--- a/data/news-posting-playbook.md
+++ b/data/news-posting-playbook.md
@@ -1,80 +1,100 @@
# How to Post a CRE News Event — evidence from the rentv.com archive
-_Auto-derived from 293 rentv.com articles (2025-11-20 → 2026-08-05). Generated 2026-08-05. Source of truth for news posting across all RE builds (rentv · crcp · homesonspec · usre)._
+_Auto-derived from 4,470 rentv.com articles (2015-06-29 → 2026-08-07). Generated 2026-08-08. Source of truth for news posting across all RE builds (rentv · crcp · homesonspec · usre)._
## 1. Cadence — how often to post
-- **~1.73 posts per active day.**
-- Busiest weekday: **Tue**. Weekday spread: Sun 55 · Mon 58 · Tue 67 · Wed 53 · Thu 60 · Fri 0 · Sat 0.
+- **~1.65 posts per active day.**
+- Busiest weekday: **Mon**. Weekday spread: Sun 791 · Mon 944 · Tue 922 · Wed 911 · Thu 901 · Fri 0 · Sat 1.
- Post on **weekdays**; CRE news is a business-hours cadence, not weekends.
## 2. What to cover — category mix
Deal type (lead with these, in this proportion):
-- **Sale** — 72.7%
-- **Development** — 9.9%
-- **Lease** — 8.9%
-- **Financing** — 8.5%
+- **Sale** — 62.5%
+- **Development** — 19.3%
+- **Financing** — 13.3%
+- **Lease** — 3.7%
+- **Purchase** — 0.9%
+- **Acquisition** — 0.2%
Property type:
-- Multifamily — 27.6%
-- Office — 27.3%
-- Industrial — 21.8%
-- Retail — 15.7%
-- Land — 2.7%
-- Hospitality — 2.4%
-- Medical/Life Science — 1.4%
-- Mixed-Use — 1%
+- Multifamily — 33.3%
+- Office — 24.1%
+- Industrial — 20.1%
+- Retail — 8.1%
+- Mixed-Use — 6.1%
+- Medical/Life Science — 3%
+- Hospitality — 2.5%
+- Land — 2.3%
+- Self-Storage — 0.4%
+- Office/Retail — 0%
+- Educational — 0%
+- Education — 0%
## 3. The headline — the single most important element
-- **Length: aim 11 words (~67 chars).** Typical range 8–15 words.
-- **86% of headlines carry an explicit deal VERB.** Use one. Top verbs:
- - buy (13.7%)
- - land (11.3%)
- - spend (11.3%)
- - acquire (8.2%)
- - close (7.2%)
- - trade (6.5%)
- - sell (3.4%)
- - pay (3.1%)
-- **58.4% put the \$ amount right in the headline.** If there's a price, lead with it.
+- **Length: aim 10 words (~66 chars).** Typical range 7–15 words.
+- **74.9% of headlines carry an explicit deal VERB.** Use one. Top verbs:
+ - buy (12.3%)
+ - trade (8.4%)
+ - spend (8.1%)
+ - close (5.8%)
+ - acquire (5.8%)
+ - sell (5.4%)
+ - land (4.8%)
+ - pay (3.6%)
+- **55.6% put the \$ amount right in the headline.** If there's a price, lead with it.
### Proven headline formulas by deal type
**Sale**
- - `{WHO} in {AMOUNT} Transaction` _(1.4%)_
+ - `{WHO} in {AMOUNT} Deal` _(1.6%)_
- `{WHO} for {AMOUNT}` _(1.4%)_
- - `{WHO} {AMOUNT} {ST} Apartment Buy` _(0.9%)_
- - `{WHO} {AMOUNT} {ST} Industrial Buy` _(0.9%)_
- - `{WHO} for {AMOUNT} /sf` _(0.9%)_
+ - `{WHO} in {AMOUNT} Transaction` _(1.1%)_
+ - `{WHO} in {CITY} Sells for {AMOUNT}` _(0.5%)_
+ - `{WHO} {AMOUNT} Office Buy in {CITY}` _(0.4%)_
**Financing**
- - `{WHO} {AMOUNT} Refi` _(8%)_
- - `{WHO} {AMOUNT} Refi Loan` _(8%)_
- - `{WHO}` _(8%)_
- - `{WHO} {AMOUNT} in New Financing on 538k sf {CITY} Life Science Campus` _(4%)_
- - `{WHO} {AMOUNT} Refi on Recently Completed {CITY} Area Multifamily Development` _(4%)_
+ - `{WHO}` _(16.9%)_
+ - `{WHO} {AMOUNT} Refi` _(1.5%)_
+ - `{WHO} {AMOUNT} Refi Loan` _(1%)_
+ - `{WHO} {AMOUNT} in Financing` _(0.7%)_
+ - `{CITY} Res Community Lands {AMOUNT} Refi` _(0.5%)_
+
+**Development**
+ - `{WHO} in {CITY}` _(1.4%)_
+ - `{WHO}` _(0.5%)_
+ - `{WHO} {SIZE} in {CITY} for Industrial Development` _(0.3%)_
+ - `{WHO} on {SIZE} Affordable Housing Project in {CITY}` _(0.3%)_
+ - `{WHO} on {SIZE} Res Project in {CITY}` _(0.3%)_
**Lease**
- - `{WHO} at 1.27 msf Facility in Visalia` _(3.8%)_
- - `{WHO} 289k sf Bay Area Manufacturing Facility` _(3.8%)_
- - `{WHO} for 650k sf {CITY} Office Tower Awarded to CBRE` _(3.8%)_
- - `{CITY} Distribution Facility Leased by Auto Parts Distributor in {AMOUNT} Deal` _(3.8%)_
- - `{WHO} 1.1 msf of Space at Luke Field in {CITY} , {ST}` _(3.8%)_
+ - `{WHO}` _(1.8%)_
+ - `{WHO} at 1.27 msf Facility in {CITY}` _(0.6%)_
+ - `{WHO} 289k sf Bay Area Manufacturing Facility` _(0.6%)_
+ - `{WHO} for 650k sf {CITY} Office Tower Awarded to CBRE` _(0.6%)_
+ - `{CITY} Distribution Facility Leased by Auto Parts Distributor in {AMOUNT} Deal` _(0.6%)_
-**Development**
- - `{WHO} with {SIZE} Res Community in {CITY}` _(3.4%)_
- - `{WHO} on New {SIZE} {CITY} Res Development` _(3.4%)_
- - `{WHO} to Develop {SIZE} of Affordable Housing in {CITY}` _(3.4%)_
- - `{WHO} on {CITY} High-Rise Res Development` _(3.4%)_
- - `{CITY} Social Housing Developer Wraps Up {AMOUNT} Res Buy in Downtown {CITY}` _(3.4%)_
+**Acquisition**
+ - `{WHO} to Acquire RE/MAX in {AMOUNT} Transaction` _(12.5%)_
+ - `{WHO} {ST} Property for Redevelopment into Class A Industrial Project` _(12.5%)_
+ - `{WHO}` _(12.5%)_
+ - `{WHO} to Acquire Ten-X Commercial in {AMOUNT} Deal` _(12.5%)_
+ - `{WHO} {ST} Buildings for Redevelopment into Creative Office Space` _(12.5%)_
+
+**Purchase**
+ - `{WHO} {AMOUNT} on Two SoCal Apartment Properties` _(4.8%)_
+ - `{WHO} {AMOUNT} on {CITY} Office Asset` _(2.4%)_
+ - `{WHO} {AMOUNT} on {CITY} Class A Office Building` _(2.4%)_
+ - `{WHO} {AMOUNT} on Phoenix Area Medical Property Portfolio` _(2.4%)_
+ - `{WHO} {AMOUNT} on {CITY} Hotel Asset` _(2.4%)_
_Placeholders: {WHO}=the actor/company · {AMOUNT}=price · {CITY}/{ST}=location · {SIZE}=units/SF/acres._
## 4. A complete post — the checklist
Every rentv-grade CRE post should carry:
-- ✅ **Deal amount** — present in 73.4% of posts (median deal $53,000,000).
-- ✅ **City** (92.8%) and **state** (82.9%) — always geo-anchor the asset.
-- ✅ **Size** — units/SF/acres, in 63.1% of posts.
-- ✅ **Body** — median ~392 words; lead sentence states who/what/where/how-much, then the parties + details.
+- ✅ **Deal amount** — present in 79.3% of posts (median deal $58,950,000).
+- ✅ **City** (99%) and **state** (98.7%) — always geo-anchor the asset.
+- ✅ **Size** — units/SF/acres, in 97.8% of posts.
+- ✅ **Body** — median ~390 words; lead sentence states who/what/where/how-much, then the parties + details.
- ✅ **Deal type + property type** tags (for filtering + SEO topical hubs).
## 5. Rule of thumb
-> A CRE news post = **{WHO} {VERB} {LOCATION} {PROPERTY-TYPE} for {AMOUNT}** in the headline, 392-word body that answers who/what/where/how-much in sentence one, geo-anchored and typed. Post on weekdays, lead with the biggest-$ deals.
+> A CRE news post = **{WHO} {VERB} {LOCATION} {PROPERTY-TYPE} for {AMOUNT}** in the headline, 390-word body that answers who/what/where/how-much in sentence one, geo-anchored and typed. Post on weekdays, lead with the biggest-$ deals.
← df51072f auto-data-snapshot: 2026-08-08T08:25:55 (7 data files) — dat
·
back to Rentv
·
test+a11y: deal-registry regression suite (env-injectable pa 29208e0f →