C
Cyrano Security
12 min read
Evidentiary playbook, state-by-state notice element

The word criminal in criminal trespass lives in one field on the event. Here is the field, and the six values it takes.

Every state's criminal trespass statute splits from the civil tort on a single element: notice. The subject had to know entry or remaining was not permitted. State penal codes recognize six standard forms of notice, and a charging decision names which one the footage supports. A plain DVR cannot name any of them. This guide walks the six forms, the behavioral evidence each one requires, and the on-device field Cyrano writes to every event that points at the exact statutory subsection a prosecutor would charge under.

4.9from 50+ properties
Six notice types mapped to a single on-event field
notice_evidence array on every track crossing a zone polygon
Plain-English retrieval against the existing DVR HDMI, on-device
Under 60 seconds from query to packet-ready candidate list

Why the keyword has two answers, and why only one of them gets charged

Someone on your property without permission is a civil trespass. That is the tort, and the remedy is a lawsuit. Someone on your property without permission after being told they were not welcome, or after crossing a boundary a reasonable person would read as excluding, is a criminal trespass. That is the charge, and the remedy is a prosecution. The difference is the notice element, and it is the line a prosecutor stares at before filing.

A property team that wants the prosecution and not just the tort has to hand the charging officer a clip that answers the notice element on its face. Not a clip of a person walking across the parking lot; a clip that shows which of the six statutory forms of notice was operative at the crossing point, and how the subject's track interacted with it. That is an evidentiary claim, and an evidentiary claim has to be grounded in a retrievable field on the event, not in reconstructive testimony weeks later.

The rest of this page is that field.

The six notice types, in the order a prosecutor checks them

  1. 1

    posted_sign

    A visible no-trespass notice at the entry point

  2. 2

    fenced_enclosure

    A physical fence or enclosure designed to exclude

  3. 3

    locked_entry

    A gate or door that is locked or physically controlled

  4. 4

    personal_communication

    A verbal or written demand to leave

  5. 5

    prior_warning_served

    A previously served trespass warning on file

  6. 6

    marked_boundary

    A painted line or distinctive color marker

The field that carries the evidence

At install, each zone polygon is tagged with one or more of the six notice_type values. When a track crosses the polygon, the event inherits the tag and the on-device tagger populates a notice_evidence array with the measured behavioral signals that match that type. The array is not a label; it is the source data a charging affidavit cites.

Zone polygon to notice_evidence array, on the edge

Existing DVR HDMI
Zone polygon
notice_type tag
Plain-English query
Cyrano edge AI
orientation_dwell_ms
path_break_at_boundary
entry_state + follow_gap
prior_warning_track_match

One retrieval, one array, one charging decision

Redacted extract from a simulated retrieval on a 16-channel multifamily DVR. The property manager passes the arrest tip (time window, subject description) into the plain-English search. The output is the candidate track with the notice_type of the crossed polygon and the notice_evidence array already populated. The officer can see, before opening the video, which statutory element the clip supports.

cyrano search, 16-ch DVR, notice_evidence extract
3 of 6

Three of the six notice_type values on a single track, with a prior_warning_track_match pointer back to the served-warning clip, is a charging affidavit that names the statutory subsection on its face. Any one of the six on its own is a viable count. Three together plus the prior match is the difference between a declined case and a filed one.

Cyrano retrieval field notes, multifamily evidentiary shape

Six notice types, six payload shapes

posted_sign

The most common notice type on pedestrian-approach zones. Payload carries sign_polygon_id and orientation_dwell_ms. A value greater than 2,000 milliseconds is the direct answer to the question, did the subject see the sign. Missing this field means the posted-notice count defaults to civil-tort territory.

fenced_enclosure

A physical fence, wall, or enclosure. Payload carries enclosure_geometry and path_break_at_boundary. A path_break value of true at the fence line reads as the subject noticing and crossing anyway.

locked_entry

A gate or door under physical control. Payload carries entry_state (locked, unlocked, forced_open) and follow_gap_seconds for tailgating events. A locked entry_state at the crossing is a direct answer to the defiant-entry subsection.

personal_communication

Verbal or written demand to leave. Payload carries staff_presence_timestamp and dwell_after_verbal_warning_seconds. A nonzero dwell after the warning is the remained-after-notice element.

prior_warning_served

A trespass warning previously served on the same subject. Payload carries prior_warning_track_match, a pointer to the earlier clip on the same DVR retention. The pair of records converts any civil presence to criminal defiant trespass.

marked_boundary

Painted lines and distinctive colors that several state statutes accept as notice (Texas, Arkansas, Oklahoma, Florida, and others). Payload carries marker_polygon_id, marker_color, and orientation_dwell_ms on the marker.

Multiple notice types on one zone

A gate can be both locked and posted. A fence can be both enclosed and marked. The notice_type field is an array, not a single value, so one zone carries every applicable tag.

One field, six statutory subsections

notice_evidence is the single on-event field a charging decision cites. It is populated at the moment of the crossing, on the device, against the zone tag. No scrubbing, no reconstruction, no cloud round-trip.

Raw DVR evidence vs a notice-tagged event

Same encounter, two evidence packages

A 90-second segment pulled from the DVR's native recording. The clip shows the subject entering the rear lot, passing a gate that the officer will later describe as locked, and lingering for about 90 seconds before exiting. No per-frame track, no orientation measurement, no prior-session correlation. Charging decision defaults to the narrower count because the notice element is not on the file.

  • No per-person track across the session
  • No orientation measurement on posted signage
  • No recorded entry_state on the locked gate
  • No pointer to any prior warning clip

What the install produces, measured

0notice types mapped to one payload field
0camera feeds indexed per Cyrano unit
0squery to candidate list, property-grade DVR
0xreduction vs manual DVR scrub

The six figure is the taxonomy at the top of this page. The rest is the Cyrano operating band on a 16 to 25 camera property with a 24 to 48 hour query window.

Which statutory subsection the payload lets you charge

FeatureRaw DVR scrub + officer narrativeCyrano on existing DVR HDMI
Posted-sign notice elementReconstructed from frame-by-frame revieworientation_dwell_ms on sign_polygon_id
Fenced-enclosure notice elementOfficer describes the fence in testimonyenclosure_geometry + path_break_at_boundary
Locked-entry notice elementGuard recalls whether gate was lockedentry_state recorded at the crossing
Personal-communication notice elementStaff member testifies from memorydwell_after_verbal_warning_seconds
Prior-warning notice elementProperty manager searches paper logprior_warning_track_match pointer on event
Marked-boundary notice elementOfficer photographs the marker on arrivalmarker_polygon_id + orientation_dwell_ms
Time to charging-grade packet4 to 6 hours per officer on 48h windowUnder 60 seconds from query
Camera hardware requirementWhatever is plugged inWhatever is plugged in (reads DVR HDMI out)
Install timeN/AUnder 30 minutes per property
Cost to add the capabilityN/A$450 hardware + $200/month software

Two install-time traps that collapse the notice element

The zone polygon is drawn inside the physical sign line

A posted_sign zone has to be drawn flush with the physical sign, not five feet inside the property. When the polygon sits past the sign, the orientation_dwell_ms value reports on a point the subject was already across, and the defense argues the sign was not in view at the crossing. The install checklist calls this out: trace the polygon along the same edge the sign is on, no offset in either direction.

The notice_type tag is left blank at install

A zone without a notice_type still produces track events, but the notice_evidence array on those events is empty. The footage answers the presence question and nothing else, and the charging decision defaults to civil. Tagging each zone once at install is the work that makes every future event on that zone charging-grade by default.

Statutes and subsections the notice_evidence array maps to

Texas PC 30.05
California PC 602
Florida 810.08 and 810.09
New York PL 140.05 through 140.17
Illinois 720 ILCS 5/21-3
Georgia OCGA 16-7-21
Arizona ARS 13-1502 through 1504
Ohio RC 2911.21
Pennsylvania 18 Pa CS 3503
North Carolina GS 14-159.12
Arkansas 5-39-201
Oklahoma Title 21 S 1835.2

The notice_type taxonomy is state-law agnostic: each of the six values maps to at least one subsection in every state penal code we have checked. Purple-paint statutes pick up the marked_boundary value. Barment-letter and written-warning subsections pick up prior_warning_served. Locked-gate and enclosure subsections pick up the corresponding tags.

Install workflow that makes every future event charging-grade

  • Plug the Cyrano unit into the DVR's HDMI out and connect to the property network
  • In the dashboard, draw zone polygons flush with each physical boundary (signs, fences, gates, marked lines, leasing office ingress)
  • Tag each zone with one or more notice_type values (posted_sign, fenced_enclosure, locked_entry, personal_communication, prior_warning_served, marked_boundary)
  • For posted_sign zones, trace the sign_polygon on the same frame as the zone so orientation_dwell_ms has a reference polygon
  • For locked_entry zones, wire the entry_state source (access-control event feed, magnetic contact, or manual schedule)
  • For prior_warning_served zones, confirm retention covers the longest warning-to-return window the property expects (commonly 30 to 90 days)
  • Verify that NTP time sync is active on the device and that the DVR's reported offset is recorded on every event sidecar
  • Run one plain-English test query against the last 24 hours to confirm notice_evidence populates on a known track

The short version

Criminal trespass and civil trespass are the same act on the ground. They are different on the evidence chain. A civil trespass needs presence. A criminal trespass needs presence plus a notice element that the footage supports on its face.

State penal codes collapse into six notice forms: posted_sign, fenced_enclosure, locked_entry, personal_communication, prior_warning_served, marked_boundary. Cyrano tags each zone with one or more of the six at install, writes a notice_evidence array to every track that crosses it, and returns the packet from a plain-English query in under 0s. One unit indexes up to 0 feeds on the DVR that is already in the closet. The device is $450 one-time, the software is $200 per month starting month two. No camera replacement. No cloud. No rewiring.

Run a notice_evidence retrieval on a live DVR

Book a 20-minute demo. You will draw a zone polygon, tag it with a notice_type, pull a fresh track crossing the zone, and see the notice_evidence array a charging affidavit would attach, end to end on a production DVR.

Book a call

Criminal Trespassing: Frequently Asked Questions

What is the difference between civil trespass and criminal trespass?

Civil trespass is a tort: the owner of the property sues the intruder for damages or an injunction, the standard of proof is preponderance of the evidence, and the remedy is usually money. Criminal trespass is a prosecutable offense under a state penal code or a federal statute: the state files charges, the standard of proof is beyond a reasonable doubt, and the penalty is a fine, jail, or both. Every state's criminal trespass statute adds at least one element beyond presence on the property, and the most common added element is notice. The subject had to know (or had constructive notice) that entry or remaining was not permitted. That is the notice element, and it is the line that separates a civil tort from a criminal charge. Without evidence supporting the notice element, a charging prosecutor usually declines the case.

What are the six notice types that state-law criminal trespass statutes recognize?

The taxonomy varies by state, but the patterns collapse into six forms. One, posted_sign: a visible no-trespass notice at the entry point. Two, fenced_enclosure: a physical fence, wall, or enclosure that is plainly designed to exclude. Three, locked_entry: a gate, door, or barrier that is locked or otherwise physically controlled. Four, personal_communication: a verbal or written demand to leave given by the owner or an authorized person. Five, prior_warning_served: a previously served written trespass warning on file. Six, marked_boundary: a painted line, colored marker, or distinctive paint mark on trees or posts that several state statutes (Texas, Arkansas, Oklahoma, Florida, among others) explicitly accept as notice. A charging decision names which of the six the footage supports. A plain DVR cannot name any of them without a human scrub.

How does Cyrano tag a zone with a notice type at install?

During install, after plugging the unit into the DVR's HDMI out, the operator draws the zone polygons through the dashboard (gates, lobby ingress, parking rows, rear lots, posted fence lines, leasing office approaches). Each polygon carries a notice_type tag drawn from the six values: posted_sign, fenced_enclosure, locked_entry, personal_communication, prior_warning_served, marked_boundary. A polygon can carry more than one tag (for example a gate that is both locked and posted). The tag is set once and sticks with the zone. Every track that crosses the polygon inherits the tag on its event record.

What does the notice_evidence array on an event actually contain?

The array is keyed on the zone's notice_type and is populated with the measured behavioral evidence that supports it. For a posted_sign zone, the array includes sign_polygon_id, orientation_dwell_ms (how long the track's bounding-box orientation aligned with the sign), and the approach path. For a fenced_enclosure zone, it includes enclosure_geometry (a shape descriptor drawn at install) and path_break_at_boundary, a true/false on whether the track's heading broke exactly at the fence line. For a locked_entry zone, it includes the entry_state (locked, unlocked, forced_open) at the moment of the crossing, and for a tailgating event the follow_gap_seconds. For a personal_communication zone, it includes the staff_presence_timestamp and the dwell_after_verbal_warning_seconds. For a prior_warning_served zone, it includes a prior_warning_track_match pointer back to the earlier clip where the warning was served. For a marked_boundary zone, it includes the marker color and the marker_polygon_id plus orientation_dwell_ms. These are the fields a charging affidavit cites, not human prose.

Does Cyrano do person re-identification across days for prior_warning_served?

The natural-language index accepts a description or attribute query (for example, man in dark jacket with black backpack, east gate, between 2 and 4 AM, any night this week). The index returns candidate tracks across the full retention window on the DVR. For the prior_warning_served element, the workflow is: pull the current event, open the natural-language query panel, paste the subject's description from the current event, and restrict the search to prior events on the same property. The returned candidates show the prior clip where the warning was served. The prior_warning_track_match pointer on the current event is produced from that retrieval. The system does not persistently store a face embedding across sessions; the match is produced at query time from the existing DVR footage.

Which states accept a marked boundary as legal notice?

At least a dozen states, with Texas, Arkansas, Oklahoma, Florida, Missouri, Kansas, North Carolina, South Carolina, and Tennessee among the most specific. Texas Penal Code 30.05(b)(2)(F) names purple paint on a post or tree as effective notice. Arkansas Code 5-39-201 accepts purple paint. Florida recognizes distinctive signs on fences and gates. Oklahoma accepts purple paint under Title 21 Section 1835.2. The details vary: some states specify the height and spacing of the marks, some require a particular color, some accept any color if distinctive. The practical implication for footage is the same across statutes: the clip has to show that the marker was in view at the crossing point. A marked_boundary zone with orientation_dwell_ms on the marker_polygon is the evidentiary record.

Why can't a generic DVR answer the notice element on its own?

Because a DVR records pixels without a tag that says where the pixel was, what the pixel showed, or whether the subject in the pixel noticed it. The recording is raw video plus a channel number. A question like, did the subject approach a posted sign, does not have a field on the file to answer; a human has to scrub the tape, identify the sign, identify the subject, and narrate what they saw. That narration does not rise to the evidentiary bar of a retrievable field on a payload. It is reconstructive testimony, which is how contested trespass packets die. Cyrano adds the tagged field at the source, at the moment the track crosses the zone, so the field does not need to be reconstructed later.

Does the edge device replace the existing cameras or DVR?

No. One Cyrano unit plugs into the existing DVR or NVR over HDMI, reads the composite multiview that recorder is already outputting to the guard or leasing-office monitor, and runs per-tile tracking and event tagging on that composite. No camera replacement, no RTSP negotiation, no firmware change. A single unit indexes up to 25 camera feeds. The evidence chain still terminates at the DVR's native recording, which is the chain courts have already accepted in prior trespass prosecutions. Cyrano is the retrieval and event-tagging layer on top of that chain.

How fast is the retrieval, and what does a packet look like?

Target band on a 16 to 25 camera property with a 48-hour query window is under 60 seconds from a plain-English query to a ranked candidate list with the notice_evidence array attached. The packet that leaves the building is: the DVR's native clip segment, the zone polygon, the notice_type on the zone, and the notice_evidence array on the event. An investigator can attach the packet to a charging affidavit and point at the exact statutory subsection the notice_type answers. Compared to a 4 to 6 hour manual scrub on a consumer-grade DVR, that is roughly a 200x reduction in the retrieval step that determines whether a case gets charged.

How much does a Cyrano install cost, and how long does it take?

Hardware is $450 one-time per unit. Software is $200 per month starting in month two. Install time is under 30 minutes per property: plug the unit into the DVR's HDMI out, connect it to the property network, draw the zone polygons, tag each polygon with a notice_type, and the unit begins indexing. One unit covers up to 25 camera feeds. For context, a single dedicated contract guard on a 12-hour post runs $3,000 to $5,000 per month per property and cannot see every feed at once. The product ships the behavioral evidence chain that criminal-trespass charging requires, on the DVR that is already in the closet.

🛡️CyranoEdge AI Security for Apartments
© 2026 Cyrano. All rights reserved.

How did this page land for you?

React to reveal totals

Comments ()

Leave a comment to see what others are saying.

Public and anonymous. No signup.