Embed the calculator. Two lines. Ten jurisdictions. Free.

Run a landlord blog, a Substack, a property-management site, a tenant-rights resource page? Drop the RentCeiling legal-max calculator on any page with two lines of HTML. Ten U.S. rent-controlled jurisdictions, deterministic statutory math, vanilla JS, zero tracking, zero dependencies.

Every embed includes a Powered by RentCeiling backlink. That’s the only attribution we ask for — we don’t set cookies, ping analytics, or load fonts off your page.

Step 1 — paste this on any page

Two lines of HTML.

<div id="rentceiling-embed"></div>
<script async src="https://rentceiling.com/embed.js"></script>

The widget mounts inside the <div> when the script loads. You can put the <div> anywhere on the page; the <script> tag can sit at the end of the body or in the head — both work.

Step 2 — live preview

Try it. This is exactly what your readers will see.

No iframe — the widget renders directly into your page’s DOM, so it inherits your typography settings naturally. CSS is scoped under .rcw to avoid collisions with your stylesheet.

What you get

One free utility for your readers. One backlink for us.

Ten jurisdictions, hardcoded.

California (AB 1482), LA RSO, San Francisco, Berkeley, Oregon (SB 611), New York (NYC RSL), Washington DC, Saint Paul, Montgomery County MD, and Washington State. Each cap is shown with the controlling statute citation (Cal. Civ. Code §1947.12, BMC Ch. 13.76, RCW §59.18.355, etc.) so your readers can audit the number against the source.

No dependencies, no frameworks.

About 8.6 KB unminified, ~3 KB on the wire. No React, no jQuery, no third-party fonts, no analytics SDK. The whole calculator is one <script> tag and one <div> — nothing else added to your page. Loads async; never blocks render.

Zero tracking.

The widget never makes a network call after loading. No tracking pixels, no events, no fingerprinting, no cookie writes, no localStorage writes. The only data path is the page load itself; everything runs client-side from a hardcoded rule-set baked into the script.

Scoped CSS.

Every selector is prefixed with .rcw. The widget cannot break your existing stylesheet, and your existing stylesheet cannot accidentally break the widget. If you want to override a color or radius for visual consistency with your site, target the .rcw selector in your CSS with !important — one line, done.

Edge cases

The widget shows the headline cap. The site shows the rest.

The widget is intentionally a read-only summary: it surfaces the cap most landlords hit (covered multifamily, post-eligibility, no banking engaged) and links into the full draft-notice flow on rentceiling.com when the visitor wants the actual notice PDF.

This split keeps the embedded calculator small and unambiguous on your page, and pushes the per-jurisdiction edge-case math — San Francisco banking under §4.12, Berkeley AGA-denial gates at BMC §13.76.110(B)(2), Costa-Hawkins flip-side for SFR/condo post-1996 tenancies, DC senior vs non-senior bands, manufactured-housing carve-outs under RCW 59.20.120 — back onto the rentceiling.com canonical pages where it belongs.

FAQ

What landlord-blog editors ask before pasting the snippet.

What does the embed cost?

Nothing. The widget is free to embed, free to use, and includes no tracking pixels. The only network call it makes is loading embed.js itself; calculations run client-side from a hardcoded rule-set baked into the script. The script ships with a single attribution backlink to rentceiling.com.

Which jurisdictions does it cover?

Ten as of April 2026: California (AB 1482, 8.8% in 2026), Los Angeles RSO (4%), San Francisco (1.6% RY 2026-27), Berkeley (1.0% CY 2026), Oregon (SB 611, 9.5%), New York (NYC RSL, 2.75% / 5.25%), Washington DC (RAA, 6.2% non-senior / 4.1% senior in RY 2025-26), Saint Paul (3% standard), Montgomery County MD (VRRA, 5.8% FY 2026), and Washington State (RCW 59.18.355, 9.683% multi-unit / 5% manufactured-housing in 2026).

Does the widget cover edge cases like banking, AGA-denial, and Costa-Hawkins?

No. The widget shows the headline cap most landlords hit. For banking math, eligibility deferral, AGA-denial gates, and Costa-Hawkins flip-side computations, the widget links into the full draft-notice flow on rentceiling.com itself, which carries the per-jurisdiction validation logic.

Are there tracking pixels or analytics?

None. The script makes one HTTP GET (loading embed.js) and zero outbound calls after that. No pixels, no analytics SDK, no third-party fonts, no localStorage writes. The Powered by RentCeiling backlink and the Generate the notice CTA are the only outbound links.

How big is the script?

About 8.6 KB unminified, ~3 KB gzipped over the wire. Loading is async (the <script> tag uses the async attribute), so it never blocks page render.

Will the cap update when CPI refreshes?

Yes — January every year, when the new CPI figures are published. The rule-set ships as a single-file edit; the embed picks up the new caps the next time a visitor loads the script. There is nothing to redeploy on your end.

How do I report a wrong cap or a missing jurisdiction?

Email hi@rentceiling.com with the ordinance link. The rule-set is plain JSON at /rules/{slug}.json — anyone can audit a number against the controlling statute. Cap fixes are typically a 15-minute one-file commit and the embed updates the next time a visitor loads the script.

Get launch updates.

We’ll email when notice generation goes live and when each new jurisdiction (NJ, Takoma Park, MA cities) ships.