====== FOIA — Freedom of Information Act ====== **← [[charlottesville|Back to Charlottesville Process Guide]]** This page documents the full workflow for Virginia FOIA — both **requesting records** as a citizen and **responding to requests** as city staff. All processes are grounded in the **Virginia Freedom of Information Act, §§ 2.2-3700 through 2.2-3715** (Code of Virginia) and Charlottesville's local implementation through the City Attorney's Office. This page is designed with [[https://spiffworkflow.org|SpiffWorkflow]] in mind. Every BPMN diagram on this page maps directly to executable process definitions, with roles, form tasks, and decision gateways that can be wired to SpiffWorkflow service tasks, user task forms, and lane-based role assignments. ---- ===== Quick Reference ===== ^ Item ^ Detail ^ | Governing Law | [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/|Virginia FOIA, §§ 2.2-3700 – 2.2-3715]] | | City Contact | City Attorney's Office, 605 E Main St (P.O. Box 911) | | Phone | 434-970-3131 | | Fax | 434-970-3890 | | Online Portal | [[https://www.charlottesville.gov/774/Submit-a-FOIA-Request|Submit a FOIA Request (charlottesville.gov)]] | | Response Deadline | **5 working days** from receipt (§ 2.2-3704.B) | | Extension | Additional **7 working days** if response not possible (§ 2.2-3704.B.4) | | Cost Threshold | Notify requester if cost likely to exceed **$200**; deposit may be required (§ 2.2-3704.H) | | Enforcement | Petition for mandamus / injunction; court hearing within **7 days** of filing (§ 2.2-3713.C) | | Penalty (Willful) | **$500–$2,000** per violation; **$2,000–$5,000** for repeat (§ 2.2-3714.A) | ---- ===== I. Legal Foundation ===== ==== Policy and Scope (§ 2.2-3700) ==== Virginia FOIA establishes a **presumption of openness**: all public records and meetings are presumed open unless a specific exemption is properly invoked. The law is to be interpreted **liberally in favor of access**, with exemptions construed **narrowly**. Any local ordinance conflicting with FOIA is void. **Who may request:** Citizens of the Commonwealth, media representatives (newspapers, magazines, radio, TV). **What is covered:** Any "writing or recording" — paper, electronic file, audio/video, any format — prepared or owned by a public body or its officers, employees, or agents in the transaction of public business. **Key principle:** A requester need not cite FOIA in their request, need not explain why they want the records, and the agency bears the burden of proving any exemption applies. ==== FOIA Officer Requirement (§ 2.2-3704.2) ==== Every local public body must designate a **FOIA Officer** who: * Serves as the public's point of contact for records requests * Coordinates the body's FOIA compliance * Must complete FOIA training at least once every two calendar years * Must be registered with the [[https://www.foiacouncil.dls.virginia.gov|VA Freedom of Information Advisory Council (FOIA Council)]] For Charlottesville, the FOIA Officer is housed in the **City Attorney's Office**. Constitutional officers (Commissioner of Revenue, Treasurer, Commonwealth's Attorney, Sheriff, Clerk of Court) each designate their own FOIA officers. ---- ===== II. Records Request — Citizen Process ===== This is the primary process for any citizen, journalist, or organization seeking records from the City of Charlottesville. The process covers all channels of submission, response types, cost handling, and the path to court enforcement. ==== SpiffWorkflow Notes ==== This process maps to a **multi-lane workflow** in SpiffWorkflow: * **Lane: Requester** — draft, submit, respond to cost estimate, receive records or denial, decide whether to petition * **Lane: FOIA Officer** — log, clock, route, review, respond * **Lane: City Attorney** — legal review of exemptions * **Service Task:** automated clock/deadline enforcement triggering escalation if no response within 5 working days * **User Task Forms:** ''foia-request-schema.json'' captures record description, preferred delivery format, requester contact info Flow_f1 Flow_f1 Flow_f2 Flow_f2 Flow_f_online Flow_f_mail Flow_f_inperson isMail isInPerson Flow_f_online Flow_fo1 Flow_f_mail Flow_fo2 Flow_f_inperson Flow_fo3 Flow_fo1 Flow_fo2 Flow_fo3 Flow_f3 Flow_f3 Flow_f4 Flow_f4 Flow_f5 Flow_f5 Flow_f_deposit Flow_f_no_deposit costExceeds200 Flow_f_deposit Flow_f_deposit2 Flow_f_no_deposit Flow_f_deposit2 Flow_f6 Flow_f6 Flow_f_full Flow_f_partial Flow_f_withheld Flow_f_notfound Flow_f_extension isPartial isWithheld isNotFound needsExtension Flow_f_full Flow_f_done Flow_f_partial Flow_f_done2 Flow_f_withheld Flow_f_done3 Flow_f_notfound Flow_f_done4 Flow_f_extension Flow_f_ext2 Flow_f_done Flow_f_done2 Flow_f_done3 Flow_f_done4 Flow_f_yes Flow_f_appeal isSatisfied Flow_f_appeal Flow_f_court Flow_f_yes Flow_f_court **Key decision points:** * **Submission channel** — Online portal preferred; mail/fax to City Attorney; in-person at 605 E Main St * **5-day clock** — Starts on the day of receipt; weekends and holidays do not count * **Cost > $200** — Agency must notify requester; can require deposit before proceeding; clock tolls while awaiting requester response * **Response types** — Full production, partial with redactions (citing specific code section per category), full denial (citing specific code section per category), records not found, or extension notice * **Extension** — Must be issued within the 5-day window; grants 7 additional days; must specify the specific conditions making timely response impossible ---- ===== III. Internal City Staff Processing ===== This diagram represents the **FOIA Officer and city staff workflow** for handling an incoming records request. It is designed to run as a **parallel or sub-process** triggered when the Requester lane submits a request in the core process above. ==== SpiffWorkflow Notes ==== * **Process ID:** ''foia_internal_process'' — can be called as a Call Activity from ''foia_core_process'' * **Lane: FOIA Officer (City Attorney's Office)** — intake, logging, routing, delivery, closure * **Lane: Department Custodian** — search, gather, stage records for review * **Lane: City Attorney** — legal review for exemptions; redaction decisions * **Tracking fields (form schema):** request number, receipt date, department(s) routed to, response type, response date, fees collected, disposition * **Timer Boundary Events:** Day 3 alert (review progress); Day 5 hard deadline; Day 12 extended deadline * **Service Tasks:** generate request ID, send automated acknowledgement email, push to records management system Flow_i1 Flow_i1 Flow_i2 Flow_i2 Flow_i3 Flow_i3 Flow_i4 Flow_i4 Flow_i5 Flow_i5 Flow_i_full_exempt Flow_i_partial_exempt Flow_i_no_exempt isFullyExempt isPartiallyExempt Flow_i_full_exempt Flow_id1 Flow_i_partial_exempt Flow_id2 Flow_i_no_exempt Flow_id3 Flow_id1 Flow_id2 Flow_id3 Flow_i6 Flow_i6 Flow_i_on_time Flow_i_late isLate Flow_i_late Flow_i_ext Flow_i_on_time Flow_i_ext Flow_i7 Flow_i7 Flow_i8 Flow_i8 ==== Records Search Standards ==== The custodian must search **all formats** — paper files, email, shared drives, databases, text messages on government devices, voicemail, and any other medium where public records may be stored. Virginia courts have held that a reasonable search is required even for informally stored records. ==== Redaction Requirements (§ 2.2-3704.01) ==== When records contain both exempt and non-exempt information, the public body **must redact** exempt portions and **must produce** the non-exempt portions. The written response must: - Identify with reasonable particularity the **subject matter** of withheld portions - Cite the **specific Code section** authorizing each withholding (not just "attorney-client privilege" — must cite § 2.2-3705.1(2), etc.) - A blanket denial citing a general category is insufficient and constitutes a FOIA violation ---- ===== IV. Common Exemptions Reference ===== The following are the most frequently invoked exemptions for a local government like Charlottesville. **Exemptions are discretionary — the city may choose to disclose even exempt records unless disclosure is otherwise prohibited by law.** ^ Exemption ^ Code Section ^ Scope ^ | Personnel records | § 2.2-3705.1(1) | Individual employee records; but name, position, salary always public | | Attorney-client / legal advice | § 2.2-3705.1(2) | Written legal advice and attorney-client communications | | Work product for litigation | § 2.2-3705.1(3) | Materials prepared for active litigation or closed-meeting investigation | | Public safety / security plans | § 2.2-3705.2 | Vulnerability assessments, security plans for infrastructure | | Administrative investigations | § 2.2-3705.3 | Active internal investigations; not permanent | | Law enforcement records | § 2.2-3706 / 3706.1 | Criminal investigative files, active case materials | | Real property appraisals | § 2.2-3705.1(8) | Pre-transaction appraisals; expires upon deal completion | | Procurement negotiation | § 2.2-3705.1(12) | Active bid/contract negotiations; expires on award decision | | Health / social services | § 2.2-3705.5 | Individual patient/client records | | Proprietary / trade secrets | § 2.2-3705.6 | Vendor trade secrets submitted in confidence | **Important:** The public body bears the **burden of proof** to establish any exemption applies (§ 2.2-3713.E). Courts give no deference to the agency's own determination. ==== Exemption Decision Tree (SpiffWorkflow) ==== Each exemption category should map to a **business rule task** or **DMN decision table** in SpiffWorkflow: * Input: record type, requestor type, record age, case status (active/closed) * Output: disclose | redact with citation | withhold with citation * The DMN table should reference the specific subsection for each output path * Redaction decisions should be logged with rationale for audit trail and potential litigation defense ---- ===== V. Open Meetings Compliance ===== FOIA also governs **public body meetings** (§§ 2.2-3707 through 2.2-3712). All meetings of public bodies must be open unless a specific closed-session purpose applies under § 2.2-3711. ==== Applies to these Charlottesville bodies: ==== * City Council * Planning Commission * Board of Zoning Appeals * Board of Architectural Review (BAR) * All city advisory boards and commissions Flow_m1 Flow_m1Flow_m2 Flow_m2Flow_m3 Flow_m3Flow_m_closedFlow_m_no_closed needsClosed Flow_m_closedFlow_m4 Flow_m4Flow_m5 Flow_m5Flow_m6 Flow_m_no_closedFlow_m6Flow_m7 Flow_m7 ==== Closed Session Authorized Purposes (§ 2.2-3711) ==== Closed sessions may only be held for specifically enumerated purposes, including: * Personnel matters (hiring, performance, discipline of specific individuals) * Consultation with legal counsel regarding specific legal matters / active litigation * Discussion of real property acquisition or disposition where public knowledge would disadvantage the public body * Protection of public safety (specific security/emergency plans) * Economic development (site selection where disclosure would adversely affect the community) **Important:** General policy discussions, even about sensitive topics, may NOT be held in closed session. Voting on any matter may not occur in closed session. ==== Minutes Requirements (§ 2.2-3707.2) ==== For local public bodies, minutes of open sessions must be: * Recorded at each meeting * Made available for public inspection within **3 working days** of the meeting * Posted on the public body's website within **3 working days** (if body has a website) ==== SpiffWorkflow Notes for Meetings ==== * **Process ID:** ''foia_meetings_process'' — can be triggered on a calendar basis (recurring timer event) * **Lane: Clerk / Staff** — notice posting, minutes recording, website publication * **Lane: Board/Commission Chair** — motion to enter closed session, certification vote * **Service Task:** publish notice to website, send calendar invite to members, post minutes PDF to website * **Timer Event:** 3-working-day deadline for minutes publication; automated reminder at Day 2 ---- ===== VI. Court Enforcement Process ===== When a public body wrongfully denies records or violates open meetings requirements, any person may seek enforcement through the courts. The FOIA enforcement process is designed to be **fast** — courts must hear the case within 7 days of filing. Flow_c1 Flow_c1Flow_c2 Flow_c2Flow_c3 Flow_c3Flow_c_localFlow_c_state isStateBody Flow_c_localFlow_c_stateFlow_c4 Flow_c4Flow_c5 Flow_c5Flow_c_grantedFlow_c_dismissed violationFound Flow_c_grantedFlow_c6 Flow_c6 Flow_c_dismissed ==== Key Legal Standards ==== * **Burden of proof:** The public body must prove exemption by a preponderance of the evidence — the requester does not have to prove the records are public * **Attorney fees:** If the petitioner "substantially prevails on the merits," the court **shall** award reasonable attorney fees and costs from the public body — unless special circumstances make an award unjust * **Civil penalties (willful violations):** $500–$2,000 per violation; $2,000–$5,000 for second/subsequent violations — paid to the Literary Fund (not the requester) * **Record destruction:** Up to $100 per record altered or destroyed to avoid FOIA (§ 2.2-3714.B) * **Denial is not required to sue:** A single instance of denial is sufficient; failure to respond is deemed a denial ==== Virginia FOIA Advisory Council ==== The [[https://www.foiacouncil.dls.virginia.gov|Virginia FOIA Advisory Council]] provides free advisory opinions on FOIA questions. A public body that relies in good faith on a FOIA Council opinion may have reduced liability even if the court disagrees (§ 2.2-3715). Cities are encouraged to seek advisory opinions for novel or close-call exemption questions. ---- ===== VII. SpiffWorkflow Implementation Guide ===== This section maps the FOIA process to a production SpiffWorkflow deployment for the City of Charlottesville. ==== Process Hierarchy ==== foia_master_process (Call Activity / Parent) ├── foia_core_process ← Requester-facing intake and response │ └── foia_internal_process ← Called subprocess for staff handling ├── foia_meetings_process ← Recurring timer-based meeting compliance └── foia_court_process ← Triggered if enforcement escalation occurs ==== Roles / Lanes → SpiffWorkflow Groups ==== ^ BPMN Lane ^ SpiffWorkflow Group ^ Members ^ | Requester | ''foia-requester'' | Any authenticated citizen / anonymous | | FOIA Officer | ''foia-officer'' | City Attorney's Office staff | | Department Custodian | ''foia-custodian'' | Records-holding dept. staff (per routing) | | City Attorney | ''foia-attorney'' | City Attorney, Deputy City Attorneys | | Approver / Supervisor | ''foia-supervisor'' | City Attorney or designee for high-risk denials | | Court Liaison | ''foia-court'' | City Attorney litigation staff | ==== Key Service Tasks ==== ^ Task ^ SpiffWorkflow Connector ^ Notes ^ | Log request, assign ID | ''records-management-api'' | POST to city records system; return request_id | | Send acknowledgement email | ''email-service'' | Template: ''foia-ack.html''; include request_id + 5-day deadline date | | Notify of cost estimate | ''email-service'' | Template: ''foia-cost-estimate.html''; toll clock until response | | Post meeting notice | ''cms-api'' | Push to city website calendar 3+ days before meeting | | Publish minutes | ''cms-api'' | Upload PDF; trigger within 3 working days of meeting | | Deadline alerts | ''timer-service'' | Day 3: warning; Day 5: escalation to supervisor; Day 12: final deadline | | DMN — exemption check | ''camunda-dmn'' | ''foia-exemptions.dmn'' table; input: record_type, case_status; output: disposition | | Audit log entry | ''audit-log-api'' | Log every decision with user, timestamp, rationale, code citation | ==== Form Schemas ==== **foia-request-schema.json** (Requester Task): { "title": "FOIA Records Request", "type": "object", "required": ["requester_name", "requester_address", "record_description"], "properties": { "requester_name": { "type": "string", "title": "Full Name" }, "requester_address": { "type": "string", "title": "Legal Address" }, "requester_email": { "type": "string", "format": "email", "title": "Email (for electronic delivery)" }, "record_description": { "type": "string", "title": "Description of Records Requested (be specific — date range, type, subject)" }, "preferred_format": { "type": "string", "enum": ["electronic", "paper_copies", "inspection"], "title": "Preferred Delivery Format" }, "department_known": { "type": "string", "title": "Department / Office Believed to Hold Records (if known)" } } } **foia-intake-schema.json** (FOIA Officer Task): { "title": "FOIA Request Intake", "type": "object", "required": ["request_id", "receipt_date", "channel", "routed_to"], "properties": { "request_id": { "type": "string", "title": "Request ID (auto-generated)" }, "receipt_date": { "type": "string", "format": "date", "title": "Date Received" }, "deadline_date": { "type": "string", "format": "date", "title": "5-Day Deadline Date (auto-calculated)" }, "channel": { "type": "string", "enum": ["online", "mail", "fax", "in_person"], "title": "Submission Channel" }, "routed_to": { "type": "array", "items": { "type": "string" }, "title": "Departments Routed To" }, "cost_estimate": { "type": "number", "title": "Estimated Cost ($)" }, "notes": { "type": "string", "title": "Internal Notes" } } } **foia-response-schema.json** (Response Task): { "title": "FOIA Response Decision", "type": "object", "required": ["response_type", "response_date"], "properties": { "response_type": { "type": "string", "enum": ["full_disclosure", "partial_with_redactions", "fully_withheld", "not_found", "extension"], "title": "Response Type" }, "response_date": { "type": "string", "format": "date", "title": "Date of Response" }, "exemptions_cited": { "type": "array", "title": "Exemptions Cited", "items": { "type": "object", "properties": { "record_category": { "type": "string" }, "code_section": { "type": "string" }, "rationale": { "type": "string" } } } }, "fees_charged": { "type": "number", "title": "Fees Charged ($)" }, "delivery_method": { "type": "string", "enum": ["electronic", "paper", "inspection"], "title": "Delivery Method" } } } ==== DMN: Exemption Decision Table (foia-exemptions.dmn) ==== ^ record_type ^ case_status ^ requester_type ^ Output: disposition ^ Output: cite_section ^ | personnel_record | * | * | redact_or_withhold | § 2.2-3705.1(1) | | legal_advice | * | * | withhold | § 2.2-3705.1(2) | | work_product | active_litigation | * | withhold | § 2.2-3705.1(3) | | law_enforcement_investigative | active | * | withhold | § 2.2-3706.1 | | law_enforcement_investigative | closed | * | disclose | — | | property_appraisal | pre_transaction | * | withhold | § 2.2-3705.1(8) | | property_appraisal | post_transaction | * | disclose | — | | procurement | active_bid | * | withhold | § 2.2-3705.1(12) | | procurement | awarded | * | disclose | — | | financial_account | * | * | redact_account_numbers | § 2.2-3705.1(13) | | general_correspondence | * | * | disclose | — | | salary_records | * | * | disclose | § 2.2-3705.1(1) — salary always public | ==== Deadline Enforcement (Timer Events) ==== In SpiffWorkflow, attach **Boundary Timer Events** to the FOIA Officer's review task: * **Day 3 timer:** Send internal reminder to FOIA Officer: "Request #{{request_id}} due in 2 working days" * **Day 5 timer (non-interrupting → interrupting):** If response not complete, escalate to supervisor; trigger ''foia-supervisor'' lane task: "Review and approve extension or response" * **Day 12 timer (extension deadline):** Hard stop — court-enforceable deadline; log violation risk flag * **30-day timer (cost estimate no-response):** If requester does not respond to cost estimate within 30 days, mark request withdrawn (§ 2.2-3704.F) ---- ===== VIII. Charlottesville-Specific Notes ===== ==== FOIA and Constitutional Officers ==== Each constitutional officer maintains their own FOIA program. Records held solely by the Commonwealth's Attorney, Sheriff, Circuit Court Clerk, Commissioner of Revenue, or City Treasurer must be requested from those offices directly — not from the City Attorney. ==== Police Records ==== Requests for Charlottesville Police Department records are governed by § 2.2-3706 (general law enforcement records) and § 2.2-3706.1 (criminal incident / investigative files). The standard 5-day clock applies, but for criminal investigative files the extension is **60 working days** (not 7). Incident reports and certain 911 audio are generally disclosable once cases are closed. ==== Email and Electronic Records ==== City email on city systems is a public record. Text messages on city-issued devices are public records. Personal devices used for city business may contain public records. SpiffWorkflow should include a **legal hold / preservation notice** sub-process for requests that may implicate active litigation. ==== Records Retention ==== Virginia's Library of Virginia [[https://www.lva.virginia.gov/agencies/records/sched_all/|General Schedule GS-20]] governs city records retention. FOIA responses and the associated request files must be retained for a minimum period. SpiffWorkflow's audit log must align with these schedules — records of FOIA requests themselves are public records. ---- ===== Reference Links ===== * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/|Virginia FOIA — Full Text (§§ 2.2-3700 – 2.2-3715)]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3704/|§ 2.2-3704 — Core Request / Response Procedure]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3704.2/|§ 2.2-3704.2 — FOIA Officer Requirement]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3705.1/|§ 2.2-3705.1 — General Exemptions]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3706/|§ 2.2-3706 — Law Enforcement Records]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3707/|§ 2.2-3707 — Open Meetings]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3711/|§ 2.2-3711 — Closed Session Authorization]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3713/|§ 2.2-3713 — Enforcement]] * [[https://law.lis.virginia.gov/vacode/title2.2/chapter37/section2.2-3714/|§ 2.2-3714 — Violations and Penalties]] * [[https://www.foiacouncil.dls.virginia.gov|Virginia Freedom of Information Advisory Council]] * [[https://www.charlottesville.gov/774/Submit-a-FOIA-Request|Charlottesville FOIA Request Portal]] * [[https://www.lva.virginia.gov/agencies/records/sched_all/|Library of Virginia — Records Retention Schedules]]