Prototype built at a hackathon — not production-ready. Results may be wrong or out of date. Not legal advice.

  1. California

Just cause required for covered tenancies

Cal. Civil Code § 1946.2State law

After a tenant has continuously and lawfully occupied a covered residential property for 12 months, the owner may not terminate the tenancy without just cause. If additional adult tenants are added before an existing tenant has occupied for 24 months, the specified 12- or 24-month occupancy tests apply.

Answers the question “When can they end my tenancy?”

The source

… by Stats. 1988, Ch. 160, Sec. 14. ) PART 4. OBLIGATIONS ARISING FROM PARTICULAR TRANSACTIONS [1738 - 3273.91] ( Part 4 enacted 1872. ) TITLE 5. HIRING [1925 - 1997.270] ( Title 5 enacted 1872. ) CHAPTER 2. Hiring of Real Property [1940 - 1954.071] ( Chapter 2 enacted 1872. ) 1946.2. (a) Notwithstanding any other law, after a tenant has continuously and lawfully occupied a residential real property for 12 months, the owner of the residential real property shall not terminate a tenancy without just cause, which shall be stated in the written notice to terminate tenancy. If any additional adult tenants are added to the lease before an existing tenant has continuously and lawfully occupied the residential real property for 24 months, then this subdivision shall only apply if either of the following are satisfied: (1)…

Official law
Open the official source
Document
D023, retrieved Oct 1, 2026
Dates
In force since Apr 1, 2024
Status on Oct 1, 2026
In force

What it depends on

Covers
Subject to the statutory exclusions and qualifying local-ordinance rules.
Key value
12 months; if additional adult tenants are added, either all tenants have occupied for 12 months or more, or at least one tenant has occupied for 24 months or more
Exemptions
Specified institutional and shared-facility housing; certain owner-occupied properties; qualifying newer housing; qualifying separately alienable property; restricted or subsidised affordable housing; mobilehome homeowners; and property covered by qualifying local just-cause ordinances.
Other levels
Steps back where a stricter local rule covers the building.
What you can do next
Read the law at its official source

Audit trail

The model reads the law; code decides who it covers. The line between them stays visible.

Extracted by the model

What the model read from the source text, checked by code (the quote must appear word for word).

Category
Eviction protection
Requirement
After a tenant has continuously and lawfully occupied a covered residential property for 12 months, the owner may not terminate the tenancy without just cause. If additional adult tenants are added before an existing tenant has occupied for 24 months, the specified 12- or 24-month occupancy tests apply.
Key value
12 months; if additional adult tenants are added, either all tenants have occupied for 12 months or more, or at least one tenant has occupied for 24 months or more
Effect
protection_or_duty
Quote found in source
yes
Confidence
90%

reasoning boundary

Decided by code

Deterministic: same rules, facts and date give the same answer.

  1. Jurisdiction: listed only for addresses whose state or legal city is CA.
  2. Dates: in force from 2024-04-01 until 2030-01-01; before that, not yet in force.
  3. Coverage: tested against what the building is used for, the number of units, whether the building is subsidised, whether the owner lives in the building; a missing fact gives "unknown", never a guess.
  4. Precedence: replaced where a stricter local rule covers the building; unknown when the local rule's coverage is unknown.
Residential real property subject to a local ordinance requiring just cause for termination of a residential tenancy adopted on or before September 1, 2019, in which case the local ordinance shall apply.

As of Oct 1, 2026Engine run

Sources retrieved Oct 1, 2026.

Which buildings it reaches

All 250 sample addresses in California on Oct 1, 2026.

San Francisco and Berkeley
A0005: Replaced by a stricter ruleA0016: Replaced by a stricter ruleA0018: Replaced by a stricter ruleA0021: Replaced by a stricter ruleA0025: Replaced by a stricter ruleA0027: Replaced by a stricter ruleA0030: Replaced by a stricter ruleA0033: Replaced by a stricter ruleA0038: Replaced by a stricter ruleA0041: Replaced by a stricter ruleA0050: Replaced by a stricter ruleA0055: Replaced by a stricter ruleA0061: Replaced by a stricter ruleA0062: Replaced by a stricter ruleA0069: Replaced by a stricter ruleA0072: Replaced by a stricter ruleA0081: Replaced by a stricter ruleA0084: Replaced by a stricter ruleA0085: Replaced by a stricter ruleA0088: Replaced by a stricter ruleA0091: Replaced by a stricter ruleA0092: Replaced by a stricter ruleA0097: Replaced by a stricter ruleA0103: Replaced by a stricter ruleA0105: Not coveredA0106: Replaced by a stricter ruleA0109: Replaced by a stricter ruleA0112: Replaced by a stricter ruleA0113: Replaced by a stricter ruleA0115: Replaced by a stricter ruleA0126: Replaced by a stricter ruleA0135: Replaced by a stricter ruleA0141: Replaced by a stricter ruleA0147: Replaced by a stricter ruleA0156: Replaced by a stricter ruleA0157: Replaced by a stricter ruleA0158: Replaced by a stricter ruleA0164: Replaced by a stricter ruleA0183: Replaced by a stricter ruleA0188: Replaced by a stricter ruleA0189: Replaced by a stricter ruleA0192: Replaced by a stricter ruleA0193: Replaced by a stricter ruleA0197: Replaced by a stricter ruleA0201: Replaced by a stricter ruleA0202: Replaced by a stricter ruleA0205: Replaced by a stricter ruleA0206: Replaced by a stricter ruleA0212: Replaced by a stricter ruleA0215: Replaced by a stricter ruleA0216: Replaced by a stricter ruleA0222: Replaced by a stricter ruleA0225: Replaced by a stricter ruleA0228: Replaced by a stricter ruleA0229: Replaced by a stricter ruleA0231: Replaced by a stricter ruleA0234: Replaced by a stricter ruleA0236: Replaced by a stricter ruleA0237: Replaced by a stricter ruleA0239: Replaced by a stricter ruleA0253: Replaced by a stricter ruleA0257: Replaced by a stricter ruleA0259: Replaced by a stricter ruleA0260: Replaced by a stricter ruleA0263: Replaced by a stricter ruleA0268: Replaced by a stricter ruleA0271: Replaced by a stricter ruleA0277: Replaced by a stricter ruleA0278: Replaced by a stricter ruleA0280: Replaced by a stricter ruleA0282: Replaced by a stricter ruleA0283: Replaced by a stricter ruleA0289: Replaced by a stricter ruleA0293: Replaced by a stricter ruleA0305: Replaced by a stricter ruleA0317: Replaced by a stricter ruleA0318: Replaced by a stricter ruleA0319: Replaced by a stricter ruleA0324: Replaced by a stricter ruleA0328: Replaced by a stricter ruleA0334: Replaced by a stricter ruleA0335: Replaced by a stricter ruleA0349: Replaced by a stricter ruleA0351: Replaced by a stricter ruleA0357: Replaced by a stricter ruleA0363: Replaced by a stricter ruleA0364: Replaced by a stricter ruleA0368: Replaced by a stricter ruleA0369: Replaced by a stricter ruleA0373: Replaced by a stricter ruleA0375: Replaced by a stricter ruleA0382: Replaced by a stricter ruleA0383: Replaced by a stricter ruleA0385: Replaced by a stricter ruleA0395: Replaced by a stricter ruleA0397: Replaced by a stricter ruleA0398: Replaced by a stricter ruleA0401: Replaced by a stricter ruleA0402: Replaced by a stricter ruleA0411: Replaced by a stricter ruleA0414: Replaced by a stricter ruleA0419: Replaced by a stricter ruleA0425: Replaced by a stricter ruleA0430: Replaced by a stricter ruleA0434: Replaced by a stricter ruleA0439: Replaced by a stricter ruleA0440: Replaced by a stricter ruleA0457: Replaced by a stricter ruleA0461: Replaced by a stricter ruleA0469: Replaced by a stricter ruleA0470: Replaced by a stricter ruleA0477: Replaced by a stricter ruleA0481: Replaced by a stricter ruleA0483: Replaced by a stricter ruleA0484: Replaced by a stricter ruleA0486: Replaced by a stricter ruleA0487: Replaced by a stricter ruleA0493: Replaced by a stricter ruleA0494: Replaced by a stricter rule
Los Angeles
A0001: UnknownA0004: UnknownA0007: UnknownA0014: UnknownA0022: Not coveredA0023: Replaced by a stricter ruleA0031: UnknownA0035: Replaced by a stricter ruleA0037: Replaced by a stricter ruleA0045: Replaced by a stricter ruleA0060: UnknownA0066: Replaced by a stricter ruleA0067: UnknownA0074: UnknownA0079: UnknownA0080: Replaced by a stricter ruleA0107: UnknownA0111: Replaced by a stricter ruleA0117: UnknownA0122: UnknownA0127: UnknownA0133: UnknownA0138: UnknownA0142: UnknownA0153: UnknownA0162: Replaced by a stricter ruleA0170: Replaced by a stricter ruleA0172: UnknownA0173: UnknownA0178: UnknownA0179: UnknownA0180: Replaced by a stricter ruleA0184: UnknownA0196: UnknownA0200: UnknownA0207: UnknownA0210: Not coveredA0213: Replaced by a stricter ruleA0224: UnknownA0235: UnknownA0238: UnknownA0248: UnknownA0252: Replaced by a stricter ruleA0255: UnknownA0267: UnknownA0281: UnknownA0285: UnknownA0303: UnknownA0309: UnknownA0314: UnknownA0315: Replaced by a stricter ruleA0323: UnknownA0327: UnknownA0330: Not coveredA0340: UnknownA0345: UnknownA0353: UnknownA0355: Replaced by a stricter ruleA0370: UnknownA0374: Replaced by a stricter ruleA0405: Replaced by a stricter ruleA0407: UnknownA0408: UnknownA0417: UnknownA0421: UnknownA0427: Replaced by a stricter ruleA0432: UnknownA0433: UnknownA0437: Replaced by a stricter ruleA0442: Replaced by a stricter ruleA0445: UnknownA0451: Replaced by a stricter ruleA0452: UnknownA0454: UnknownA0458: UnknownA0474: UnknownA0479: Replaced by a stricter ruleA0492: Not coveredA0499: UnknownA0500: Unknown
San Diego
A0019: UnknownA0058: UnknownA0094: UnknownA0100: UnknownA0114: UnknownA0121: UnknownA0145: UnknownA0150: UnknownA0152: UnknownA0154: UnknownA0165: UnknownA0167: UnknownA0219: UnknownA0240: UnknownA0246: UnknownA0247: UnknownA0251: UnknownA0262: UnknownA0273: UnknownA0274: UnknownA0275: UnknownA0276: UnknownA0304: UnknownA0316: UnknownA0322: UnknownA0333: UnknownA0341: UnknownA0347: UnknownA0365: UnknownA0367: UnknownA0378: UnknownA0379: UnknownA0386: UnknownA0387: UnknownA0391: UnknownA0392: UnknownA0396: UnknownA0409: UnknownA0413: UnknownA0420: UnknownA0426: UnknownA0431: UnknownA0441: UnknownA0443: UnknownA0456: UnknownA0478: UnknownA0480: UnknownA0496: UnknownA0497: Unknown

Every dot is the rule engine’s result for that address. The larger dots are the example addresses listed below. 2 addresses have no coordinates and are counted but not drawn.

Decided by code for the example addresses

On Oct 1, 2026. Rules that don’t apply are left out.