Predictika · Union City SB 9 Project Check

Before an AI agent tells a homeowner an SB 9 project looks approvable, it is pre-screened against state law and the Union City code

A homeowner in Union City, California, asks an AI agent whether a two-unit project or an urban lot split under SB 9 looks approvable. Before the agent answers, the call goes to Predictika’s Union City SB 9 Project Check. It reads the project against California SB 9 (Gov. Code 65852.21 and 66411.7) and Union City Municipal Code Chapter 18.31 together: zone, excluded sites, historic status, tenant history, unit counts and sizes, setbacks including the street side of a corner lot, height, building separation, parking, utilities, rentals, parcel sizes, frontage, flag lots and the owner-occupancy affidavit. Where the city is stricter than state law, state law prevails and the validator says so. Then it returns one verdict: approvable by right, approvable with changes, or needs staff review.

Pre-screen only. This is a pre-screen, not a permit or map decision, and it is not legal advice. The rules reflect SB 9 and Union City Municipal Code Chapter 18.31 (Ord. 900-22, amended by Ord. 2025-002) as understood in September 2026, and have not been reviewed by the city or an attorney. We are not affiliated with the City of Union City.

Scope: SB 9 two-unit projects and urban lot splits on one single-family parcel in Union City, CaliforniaSee everything this validator covers

This validator decides one thing: how one proposed SB 9 project looks against California SB 9 and Union City Municipal Code Chapter 18.31 read together. It does not issue a permit or map decision, and it does not check plans.

  • Projects — a two-unit development, an urban lot split, or a lot split followed by new units, on a single-family parcel in Union City.
  • Site and history — eligible single-family district, excluded sites (farmland, wetlands, hazardous waste, earthquake fault, habitat, flood and fire zones), historic status, Ellis Act withdrawal in the last 15 years, rent-restricted or tenant-occupied housing that would be demolished.
  • Development rules — the number of units including ADUs and junior ADUs, the 2,000 sq ft cap on a single unit, side, rear and corner-lot street side setbacks, the height band, building separation, parking including covered parking, separate utility connections, rental terms of 30 days or less, and nonconforming conditions.
  • Lot-split rules — parcel size and the 40 percent rule, units per resulting parcel, number of parcels, frontage and depth-to-width, flag lots and their access corridor, the owner-occupancy affidavit, a parcel from an earlier split, a split of an adjacent parcel, and right-of-way dedication.

Within these rules the validator handles any SB 9 project in Union City that touches the listed items, not just the scenarios shown on this page. Not covered: other cities, ADU-only projects, plan review and design standards, fees, and anything the applicant does not state. Site facts such as hazard zones, historic status and tenant history are taken as stated and are not verified.

What the validator sees: the project the applicant describes, as statedRead more

The validator takes the project as inputs: the project type, unit counts and sizes, setbacks, parking, utilities, parcel sizes, and the answers to the zone, site, historic, tenant and affidavit questions. It computes the limits and returns the verdict and every finding, with the law behind each.

Two honest limits. The validator judges the project it is given: if an applicant understates a setback, the answer follows. And a project is only pre-screened if the agent calls the validator; in a deployment the intake workflow makes the call. Once a project is approvable by right, the validator accepts its release for the ministerial application, which is also not a permit decision; a project that needs changes or review is not released.

The AI agentDescribes the homeowner’s project, says how it looks, then calls the validator before answering.
Predictika validatorReads the project against state law and the Union City code, then returns one verdict and every finding.

6 scenarios in 3 groups · each group runs from the agent’s first attempt to the outcome · click one to switch

What the agent proposes

The AI agent says

Illustrative agent statement. The validator receives the structured request below.

Proposing agent: AI agent (scripted)

Before sending, the agent must call Recorded run

Predictika validator


      
Waiting for the call.

Where permit pre-screening gets it wrong

Click to expand

Our assessment of how a typical permit form or checklist handles the same cases. It is a general judgment about effort and reliability, not a statement about any named product or city system, and anyone running a specific tool will know it better than we do.

What the validator caughtTypical toolPredictika
City figure against a state capCannot do it
The city asks for 10 ft at a corner street side; state law caps the requirement at 4 ft. A form cannot say which law prevailed, or that the project passes only because state law governs.
Every rule is checked on every call and the verdict lists each finding.
A local size cap beside the state rulesOnly with workarounds
No single unit above 2,000 sq ft is a Union City standard. A form has to carry it and compare it with the largest unit in the plan.
Every rule is checked on every call and the verdict lists each finding.
A rule the state does not addressOnly if someone is vigilant
Covered and enclosed parking is a Union City request. A checklist built from state law passes it unless someone remembers to ask.
Every rule is checked on every call and the verdict lists each finding.
Reporting every problem at onceOnly if someone is vigilant
A form usually shows the first problem. Here each rule fires on its own and all are reported with the law behind them.
Every rule is checked on every call and the verdict lists each finding.
Largest unit over 2,000 sq ftOnly with workarounds
The cap is a local standard that sits beside the state rules. A form has to carry it and compare it with the largest unit in the plan.
Every rule is checked on every call and the verdict lists each finding.
Street side setback under 4 ftOnly if someone is vigilant
On a corner lot the street side is a second side lot line. A rule has to apply the 4 ft state cap and the city figure to the right edge of the lot.
Every rule is checked on every call and the verdict lists each finding.
Covered parking requirement needs staff reviewOnly with workarounds
Some questions cannot be settled by a rule. The right result is a review, not a guess either way.
Every rule is checked on every call and the verdict lists each finding.

What this validator catches: findings from its test cases

Click to expand

Every rule is checked on every call, in any order the choices arrive; one problem never hides another. Blocking findings stop the request; approval findings need a person to sign off first.

1The largest unit is 2400 sq ft; no single SB 9 unit may be larger than 2,000 sq ft (UCMC 18.31.090F). Union City governs: state law allows objective standards that still allow two 800 sq ft units. Appears to conflict.
2Street side setback of 3.0 ft is under 4 ft; a corner lot needs at least 4 ft at the side (Gov. Code 65852.21, 66411.7 cap the requirement at 4 ft; UCMC 18.31.090D asks for 10 ft). Governs both. Appears to conflict.
3Union City asks for one covered and enclosed parking space per unit (UCMC 18.31.090H); state law allows a requirement of up to one space per unit and does not mention covering it. Staff need to confirm how the covered requirement applies. Needs review.

Scenarios and results

Click to expand

The recorded result of the validator for each scenario on this page: the request the AI agent sent, the verdict, and every finding, in the order they appear above.

1. Unit size: A 2,400 sq ft unit

The agent's request. I would like to build 2 new units on my single-family parcel in Union City, with the largest unit at 2400 sq ft. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Blocked.

  • Largest unit over 2,000 sq ft. The largest unit is 2400 sq ft; no single SB 9 unit may be larger than 2,000 sq ft (UCMC 18.31.090F). Union City governs: state law allows objective standards that still allow two 800 sq ft units. Appears to conflict.

2. Unit size: The largest unit at 1,800 sq ft

The agent's request. I would like to build 2 new units on my single-family parcel in Union City, with the largest unit reduced to 1800 sq ft. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Allowed.

3. Corner lot: A corner lot with a 3 ft street side

The agent's request. I would like to build 2 new units on my corner lot in Union City, with a street side setback of 3 ft. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Blocked.

  • Street side setback under 4 ft. Street side setback of 3.0 ft is under 4 ft; a corner lot needs at least 4 ft at the side (Gov. Code 65852.21, 66411.7 cap the requirement at 4 ft; UCMC 18.31.090D asks for 10 ft). Governs both. Appears to conflict.

4. Corner lot: The same lot with a 5 ft street side

The agent's request. I would like to build 2 new units on my corner lot in Union City, with the street side setback now 5 ft. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Allowed.

5. Parking: Parking that is not covered

The agent's request. I would like to build 2 new units on my single-family parcel in Union City. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Needs approval.

  • Covered parking requirement needs staff review. Union City asks for one covered and enclosed parking space per unit (UCMC 18.31.090H); state law allows a requirement of up to one space per unit and does not mention covering it. Staff need to confirm how the covered requirement applies. Needs review.

6. Parking: The same project with covered parking

The agent's request. I would like to build 2 new units on my single-family parcel in Union City, with the parking covered and enclosed. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.

Verdict: Allowed.

Narration transcript

Click to expand

The text of the narrated walkthrough, step by step.

  1. Welcome to a demo of Predictika's Validator. A homeowner in Union City, California, asks an AI agent whether a two-unit project or an urban lot split under SB 9 looks approvable. Before the agent answers, the call goes to Predictika’s Union City SB 9 Project Check. It reads the project against California SB 9 (Gov. Code 65852.21 and 66411.7) and Union City Municipal Code Chapter 18.31 together: zone, excluded sites, historic status, tenant history, unit counts and sizes, setbacks including the street side of a corner lot, height, building separation, parking, utilities, rentals, parcel sizes, frontage, flag lots and the owner-occupancy affidavit. Where the city is stricter than state law, state law prevails and the validator says so. Then it returns one verdict: approvable by right, approvable with changes, or needs staff review.
  2. I will start with the first request by the agent.
  3. The agent says. I would like to build 2 new units on my single-family parcel in Union City, with the largest unit at 2400 sq ft. The side and rear setbacks are 4 ft, there is 1 parking space per unit, and each unit has its own utility connections.
  4. Before it goes out, the agent calls the validator.
  5. Blocked, with one finding, all in one answer. The largest unit is 2400 sq ft; no single SB 9 unit may be larger than 2,000 sq ft (UCMC 18.31.090F). Union City governs: state law allows objective standards that still allow two 800 sq ft units. Appears to conflict.
  6. The validator returned one blocking finding in one answer. A check that reads one field at a time would pass most of this; it shows only when the choices in the request are checked against each other.
  7. What this shows: for largest unit over 2,000 sq ft, a tool can do this only with workarounds.
  8. Now the agent resubmits.
  9. The corrected request. It changes the largest unit to 1800 sq ft.
  10. It calls the validator again.
  11. This time the validator clears it.
  12. The earlier finding is cleared.
  13. One problem caught in one call, fixed in one pass, and a clean request. That is the value of Predictika's validator: catching mistakes before the action runs. Now you can try the other scenarios yourself.