Zonescore.

We're still verifying Loudoun County, VA's answers against the county code.

Loudoun County, VA zoning › where can I put this

Where can I put a kennel in Loudoun County, VA?

Loudoun County, VA, excluding the incorporated towns, which run their own zoning.

“kennel” matches 2 uses this ordinance names separately. We do not choose between them — they can have different answers, so every one is shown.

Kennel

Allowed by right in 3 districts

DistrictProperties loadedCodeWhat says so
GI
the use table's own cell
190
20105 (5), 20132 (1), 20147 (2), 20148 (3), 20151 (1), 20152 (13), 20164 (2), 20166 (154), 20175 (9)
PTable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel", column "GI", reads "P" (P = Permitted).
MR-HI
the use table's own cell
45
20147 (4), 20152 (24), 20175 (17)
PTable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel", column "MR-HI", reads "P" (P = Permitted).
TR-10
the use table's own cell
246
20148 (86), 20152 (2), 20175 (158)
PTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel", column "TR-10", reads "P" (P = Permitted).

Allowed only with a discretionary approval in 10 districts

These require a hearing or an approval from the county. They are not a “no”, and they are not a “yes” either.

DistrictProperties loadedCodeWhat says so
A-10
the use table's own cell
186
20132 (54), 20135 (2), 20141 (1), 20175 (6), 20176 (35), 20180 (64), 20197 (24)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel", column "A-10", reads "S" (S = Special Exception).
A-3
the use table's own cell
317
20105 (66), 20117 (4), 20129 (11), 20132 (2), 20135 (5), 20147 (101), 20148 (10), 20158 (5), 20165 (79), 20175 (34)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel", column "A-3", reads "S" (S = Special Exception).
AR-1
the use table's own cell
11,820
20105 (73), 20129 (153), 20132 (2,972), 20135 (128), 20141 (851), 20158 (818), 20175 (2,026), 20176 (1,895), 20180 (2,087), 20197 (817)
STable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel", column "AR-1", reads "S" (S = Special Exception).
AR-2
the use table's own cell
1,782
20105 (346), 20117 (740), 20130 (25), 20132 (46), 20135 (238), 20141 (180), 20175 (81), 20184 (119), 20198 (7)
STable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel", column "AR-2", reads "S" (S = Special Exception).
CR-1
the use table's own cell
1,246
20105 (33), 20117 (48), 20129 (22), 20132 (29), 20135 (39), 20147 (181), 20148 (77), 20152 (321), 20158 (13), 20164 (108), 20165 (328), 20176 (13), 20180 (12), 20197 (17), 22066 (5)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel", column "CR-1", reads "S" (S = Special Exception).
GB
the use table's own cell
8
20105 (1), 20147 (1), 20152 (6)
STable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel", column "GB", reads "S" (S = Special Exception).
JLMA-20
the use table's own cell
7
20175 (7)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel", column "JLMA-20", reads "S" (S = Special Exception).
JLMA-3
the use table's own cell
481
20132 (291), 20141 (112), 20158 (66), 20175 (3), 20176 (9)
STable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel", column "JLMA-3", reads "S" (S = Special Exception).
R-1
the use table's own cell
2,254
20105 (59), 20147 (392), 20148 (1,004), 20152 (477), 20164 (43), 20166 (278), 20170 (1)
STable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel", column "R-1", reads "S" (S = Special Exception).
TR-3
the use table's own cell
no parcels loadedSTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel", column "TR-3", reads "S" (S = Special Exception).

Kennel, Indoor

Allowed by right in 17 districts

DistrictProperties loadedCodeWhat says so
CC-CC
the use table's own cell
62
20147 (16), 20148 (6), 20152 (11), 20164 (18), 20166 (11)
PTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "CC-CC", reads "P" (P = Permitted).
CC-NC
the use table's own cell
5
20147 (2), 20164 (3)
PTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "CC-NC", reads "P" (P = Permitted).
CC-SC
the use table's own cell
70
20105 (6), 20147 (16), 20152 (12), 20164 (18), 20165 (14), 20166 (4)
PTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "CC-SC", reads "P" (P = Permitted).
CLI
the use table's own cell
71
20105 (1), 20152 (69), 20166 (1)
PTable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel, Indoor", column "CLI", reads "P" (P = Permitted).
GI
the use table's own cell
190
20105 (5), 20132 (1), 20147 (2), 20148 (3), 20151 (1), 20152 (13), 20164 (2), 20166 (154), 20175 (9)
PTable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel, Indoor", column "GI", reads "P" (P = Permitted).
JLMA-3
the use table's own cell
481
20132 (291), 20141 (112), 20158 (66), 20175 (3), 20176 (9)
PTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "JLMA-3", reads "P" (P = Permitted).
MR-HI
the use table's own cell
45
20147 (4), 20152 (24), 20175 (17)
PTable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel, Indoor", column "MR-HI", reads "P" (P = Permitted).
PD-CC(RC)
the use table's own cell
26
20164 (2), 20166 (24)
PTable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel, Indoor", column "PD-CC(RC)", reads "P" (P = Permitted).
TC Core
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "TC Core", reads "P" (P = Permitted).
TC Fringe
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "TC Fringe", reads "P" (P = Permitted).
TCC
the use table's own cell
no parcels loadedPTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "TCC", reads "P" (P = Permitted).
TR-10
the use table's own cell
246
20148 (86), 20152 (2), 20175 (158)
PTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "TR-10", reads "P" (P = Permitted).
TR-3
the use table's own cell
no parcels loadedPTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "TR-3", reads "P" (P = Permitted).
TRC Inner Core
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "TRC Inner Core", reads "P" (P = Permitted).
TRC Outer Core
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "TRC Outer Core", reads "P" (P = Permitted).
TRC TDSA
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "TRC TDSA", reads "P" (P = Permitted).
UE
the use table's own cell
no parcels loadedPTable 3.02.01-1
Read from the use table: Table 3.02.01-1 on PDF page 166, row "Kennel, Indoor", column "UE", reads "P" (P = Permitted).

Allowed only with a discretionary approval in 11 districts

These require a hearing or an approval from the county. They are not a “no”, and they are not a “yes” either.

DistrictProperties loadedCodeWhat says so
A-10
the use table's own cell
186
20132 (54), 20135 (2), 20141 (1), 20175 (6), 20176 (35), 20180 (64), 20197 (24)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel, Indoor", column "A-10", reads "S" (S = Special Exception).
A-3
the use table's own cell
317
20105 (66), 20117 (4), 20129 (11), 20132 (2), 20135 (5), 20147 (101), 20148 (10), 20158 (5), 20165 (79), 20175 (34)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel, Indoor", column "A-3", reads "S" (S = Special Exception).
AR-1
the use table's own cell
11,820
20105 (73), 20129 (153), 20132 (2,972), 20135 (128), 20141 (851), 20158 (818), 20175 (2,026), 20176 (1,895), 20180 (2,087), 20197 (817)
MTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "AR-1", reads "M" (M = Minor Special Exception).
AR-2
the use table's own cell
1,782
20105 (346), 20117 (740), 20130 (25), 20132 (46), 20135 (238), 20141 (180), 20175 (81), 20184 (119), 20198 (7)
MTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "AR-2", reads "M" (M = Minor Special Exception).
CR-1
the use table's own cell
1,246
20105 (33), 20117 (48), 20129 (22), 20132 (29), 20135 (39), 20147 (181), 20148 (77), 20152 (321), 20158 (13), 20164 (108), 20165 (328), 20176 (13), 20180 (12), 20197 (17), 22066 (5)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel, Indoor", column "CR-1", reads "S" (S = Special Exception).
GB
the use table's own cell
8
20105 (1), 20147 (1), 20152 (6)
STable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel, Indoor", column "GB", reads "S" (S = Special Exception).
IP
the use table's own cell
328
20105 (19), 20147 (103), 20148 (9), 20152 (2), 20164 (33), 20166 (149), 20175 (13)
STable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel, Indoor", column "IP", reads "S" (S = Special Exception).
JLMA-20
the use table's own cell
7
20175 (7)
STable 3.02.04-1
Read from the use table: Table 3.02.04-1 on PDF page 190, row "Kennel, Indoor", column "JLMA-20", reads "S" (S = Special Exception).
OP
the use table's own cell
111
20105 (2), 20147 (47), 20148 (5), 20152 (1), 20158 (2), 20164 (3), 20166 (25), 20175 (2), 20176 (24)
STable 3.02.05-1
Read from the use table: Table 3.02.05-1 on PDF page 198, row "Kennel, Indoor", column "OP", reads "S" (S = Special Exception).
R-1
the use table's own cell
2,254
20105 (59), 20147 (392), 20148 (1,004), 20152 (477), 20164 (43), 20166 (278), 20170 (1)
STable 3.02.02-1
Read from the use table: Table 3.02.02-1 on PDF page 174, row "Kennel, Indoor", column "R-1", reads "S" (S = Special Exception).
TCN
the use table's own cell
no parcels loadedSTable 3.02.03-1
Read from the use table: Table 3.02.03-1 on PDF page 182, row "Kennel, Indoor", column "TCN", reads "S" (S = Special Exception).

Pro and reports for Loudoun County, VA are coming soon.

Notify me when Loudoun County, VA launches

We use this email only to tell you when Loudoun County, VA launches. We never share it.

The planned districts are a different answer, not a missing one

61415 of the loaded properties are in a planned district. For those, what you may build is set by an approved Concept Development Plan for that development, not by the county-wide use table. That is a real answer: the plan governs, and it is held by the county.

Concept Development Plan (CDP): Part of a Zoning Map Amendment (ZMAP) or Zoning Concept Plan Amendment (ZCPA) application. The CDP may consist of both a visual and a written representation depicting the layout and/or design of the development, and all associated proffers. When the CDP is approved through the legislative process, the CDP then becomes binding on the developer and his successors in interests.

Chapter 12, Definitions -- Concept Development Plan (CDP)

We cannot retrieve the plan for you — the county publishes the rezoning case as a polygon layer but the plan document itself is not machine-addressable (measured S199). Ask Loudoun County Building & Development for the approved plan covering the property.

This answer is good through March 18, 2025 — that is the date the ordinance we hold runs to, as published by Loudoun County. We last checked with the county on September 14, 2026 and found nothing newer. That is a check on that date, not a promise about today.

What this does not cover

Built from scripts/build_reverse_index.py, generated 2026-10-11T20:59:04+00:00.