PAID — Public Access Information Dividend · A Quigley Group initiative · Full disclosurePaid by bots$0.0000· 0 views

Data Organization Best Practices

A practical guide for municipalities on how to organize, structure, publish, and maintain public data so it is machine-readable, API-ready, and worth paying for.

~11,600 words
Length
14
Sections
New York (primary)
Jurisdiction
Municipal officials
Audience
W3C · DCAT-US · ISO 8601
Standards
August 14, 2026
Date
Informational, Not Legal Advice

This guide explains data-organization practice. Privacy and disclosure questions implicate FOIL, FERPA, HIPAA, DPPA, and other law; consult your municipal attorney and the NY Committee on Open Government before publishing any dataset.


  1. Unstructured HTML is nearly worthless to charge for. A typical municipal website presents information as human-readable web pages — paragraphs, headings, and PDFs. A computer can display these, but it cannot reliably understand them. A page that says “The budget for 2025 is $12,450,000” is trivial for a person to read and impossible for a machine to reliably extract. The W3C Data on the Web Best Practices Recommendation puts this directly: posting data in a format that is not machine-readable “places severe limitations on the continuing usefulness of the data” S-301.
  2. Structured, machine-readable data is what commercial crawlers will pay for. When the same budget is published as a CSV or JSON file — with columns labeled fiscal_year, department, fund, amount — a computer can read every row, sort, sum, compare across years, and ingest it into a database with zero human intervention. The federal Project Open Data schema is built on exactly this premise: a dataset is “an identifiable collection of structured data objects” and a Web API “allows computer programs to dynamically query a dataset” S-304. Clean structured access saves a commercial data buyer the expensive labor of scraping, parsing, and cleaning messy HTML — and that savings is what they will pay for.
  3. The single most important first step is a data inventory. Before a municipality can publish or price anything, it must know what it has. The federal open-data infrastructure treats the data inventory as the foundation: agencies maintain a data.json catalog file listing every dataset and API, and the catalog is the public face of the data program S-304S-305. You cannot govern, clean, price, or protect data you have not identified.
  4. There are established, free, government-grade standards to follow. A municipality does not need to invent its own approach. The W3C published 35 enumerated Best Practices for data on the web as a formal Recommendation S-301. The federal government maintains the DCAT-US metadata schema (a profile of the W3C Data Catalog Vocabulary, DCAT) S-302S-304. Schema.org defines a Dataset type that Google and other search engines recognize so datasets become discoverable in ordinary web search S-303. CKAN is a free, open-source data management system that powers data.gov, Canada, Australia, and hundreds of government portals S-306. What Works Cities (Bloomberg Philanthropies) certifies cities for data-driven governance S-307. New York State itself operates data.ny.gov, with 1,500+ catalog items across 62 agencies, on the Socrata platform under Executive Order 95 S-308.
  5. Format choice is a value decision, not a technical preference. CSV is the simplest, most universal tabular format. JSON is the modern API standard for nested data. GeoJSON and Shapefile are for mapping data. PDF — despite being “electronic” — is not machine-readable and is the single biggest barrier to automated access. The W3C Best Practice 12 is explicit: “Use machine-readable standardized data formats” S-301. Best Practice 13 adds: “Use locale-neutral data representations” — meaning dates as 2026-08-14 (ISO 8601 S-309), not 08/14/26 S-301.
  6. Metadata is what makes data discoverable and trustworthy. Metadata is “data about the data” — title, description, publisher, update frequency, license, format, last-modified date, contact point. Without it, a crawler cannot find your dataset, cannot tell how current it is, and cannot know whether it is allowed to use it. The DCAT-US schema requires, at minimum, title, description, keywords, last-modified date, publisher, contact point, unique identifier, and public access level for every dataset S-304. The W3C DCAT vocabulary is the international standard for describing data catalogs and is explicitly designed to “increase the discoverability of datasets” S-302.
  7. Privacy mistakes are the biggest liability. Publishing the wrong field — a Social Security number, a student name linked to a grade, a health record, a DMV record — can violate FOIL exemptions, FERPA, HIPAA, or DPPA and expose the municipality to liability. A data governance policy that classifies every dataset as public, restricted-public, or non-public before publication is the safeguard. The DCAT-US schema's accessLevel field exists precisely for this three-way classification S-304. FOIL itself exempts records that would endanger privacy under POL §87(2)(a) and (b) S-011S-202; DPPA restricts motor vehicle records S-203; FERPA protects student education records S-310.
  8. Monetization comes last, not first. A paid automated-access tier only makes sense after data is inventoried, cleaned, formatted as machine-readable, published with metadata, governed for privacy, and kept current. Charging for messy, stale, unstructured data will not work and invites the kind of cost-diversion litigation that befell PACER S-009S-010. The phased roadmap in Section 13 makes this sequencing explicit.

Quick-Start Checklist (Print This Page)
  1. 01Appoint a data coordinator. One person owns the data program. Even a part-time clerk counts.
  2. 02Build a data inventory. List every dataset your municipality holds — budget, minutes, permits, assessments, contracts, GIS, calendars, code, 311, licenses. Use a spreadsheet. This is your first “data catalog.”
  3. 03Classify each dataset. Mark each as public, restricted public, or non-public (privacy-exempt). When in doubt, mark restricted and ask your attorney.
  4. 04Pick 3–5 priority datasets to publish first. Choose high-demand, low-risk data: budget/financial reports, council minutes/agendas, meeting calendars, public notices, GIS/parcel boundaries.
  5. 05Convert each priority dataset to a machine-readable format. CSV for tables. JSON for nested data. GeoJSON for maps. Never PDF for data.
  6. 06Standardize your fields. Dates as ISO 8601 (2026-08-14). Currency as raw numbers (1234.56, no $ or commas). Addresses split into number, street, city, state, zip. Use consistent column names.
  7. 07Write metadata for each dataset. Title, description, publisher, contact, update frequency, license, format, last-updated date. Use the DCAT-US field list as your template.
  8. 08Choose a home for the data. Simplest: a /data page on your existing website with downloadable CSV/JSON files. Better: an open-data platform (CKAN is free/open-source).
  9. 09Set an update cadence and stick to it. Publish the update frequency in metadata. Stale data destroys value.
  10. 10Run a privacy review before publishing anything. Strip PII. Check FOIL exemptions, DPPA, FERPA, HIPAA. Document the review.
  11. 11Adopt a data governance policy. Who owns each dataset, who approves publication, who handles FOIL data requests, who reviews quality.
  12. 12Only after steps 1–11 are stable: design a paid automated-access tier. API keys, rate limits, a fee schedule tied to actual costs. Monetization is Phase 6, not Phase 1.

1. Why Data Organization Matters for Monetization — A Plain-Language Primer

The filing cabinet vs. the searchable database

Imagine two ways of storing the same information — your municipality's vendor contracts.

The filing cabinet (unstructured): Every contract is a separate PDF in a manila folder in a filing cabinet. To find out how much the town spent on road salt last winter, a person must walk to the cabinet, pull each folder, open each PDF, read the text, find the dollar figure, write it down, and add it up. If there are 200 contracts, that is a day of work. A computer cannot do this reliably at all — a PDF is a picture of text, not a table of numbers, and the word “salt” might appear as “NaCl,” “de-icing material,” or “Road Salt — Purchase Order #4471.”

The searchable database (structured): The same 200 contracts are stored as a spreadsheet (CSV file) with one row per contract and columns for vendor_name, contract_date, amount, category, description. To find the road-salt total, a computer runs one query: SELECT SUM(amount) WHERE category = 'road_salt'. The answer returns in milliseconds. No human touches it.

This is the difference between unstructured and structured data. A typical municipal website is a filing cabinet. An open-data portal is a searchable database.

Why a crawler would pay for clean structured access

A commercial web crawler (the kind this project is about) wants to ingest municipal data at scale — thousands of records, updated regularly, across hundreds of municipalities — and feed it into products: real-estate platforms, permit-tracking services, compliance dashboards, AI training datasets.

To do that from a typical municipal website, the crawler must:

  1. Download every page (sending thousands of HTTP requests S-102).
  2. Parse the HTML of each page to find the data embedded in paragraphs and tables.
  3. Extract the relevant values using fragile pattern-matching (regular expressions) that break whenever the page layout changes.
  4. Clean and normalize the extracted text (parse “$12,450,000” into 12450000, parse “Aug. 14, 2026” into a date).
  5. Re-do all of this every time the website changes or is redesigned.

Each step is expensive, error-prone, and brittle. A single website redesign can break a scraper's entire pipeline overnight.

If instead the municipality publishes the same data as a clean CSV or JSON API — with stable field names, ISO 8601 dates, raw numeric values, and a documented schema — the crawler can fetch the data in one request, parse it with a standard library, and load it directly into a database. The labor cost drops from days to seconds. The error rate drops to near zero. The data stays usable across website redesigns because the data file is independent of the website's appearance.

That difference — the labor, error, and fragility the crawler avoids — is the economic value the crawler will pay for. The W3C Best Practices Recommendation frames the same point from the publisher's side: following the Best Practices “will facilitate interaction between publishers and consumers” and the stated benefits include processability, reuse, trust, and access S-301. A crawler pays for processability and access.

The key insight for officials

You do not need to build anything technically exotic to make your data valuable. You need to do the unglamorous work of organizing it: put it in tables, give the columns consistent names, use standard date and number formats, describe it with metadata, and keep it current. The technology to serve a CSV file is trivial. The discipline to make the CSV clean, consistent, and reliable is what creates the value — and what justifies charging for guaranteed, structured, rate-limited access.


2. Data Inventory — What Does a Municipality Actually Have?

What is a data inventory?

A data inventory (also called a data catalog) is a complete list of every dataset your municipality creates, collects, or maintains. For each dataset, the inventory records: what it is, which department owns it, what format it currently lives in, how often it changes, whether it contains personal or exempt information, and whether it is already public.

The federal government treats the data inventory as the foundation of the entire open-data program. Each federal agency maintains a data.json file — a machine-readable catalog — that lists “all of the agency's datasets that can be made public, regardless of whether they are distributed by a file download or a Web API” S-304. The catalog file itself is the public face of the data program; data.gov harvests these catalogs from across the government S-305S-117.

Why is the inventory Step 1? Because you cannot publish, clean, price, or protect data you have not identified. Every later step in this guide — choosing formats, writing metadata, classifying privacy, setting update cadence, building an API, designing a paid tier — depends on knowing what you have. The inventory is the map.

How to conduct an inventory

A practical inventory process for a small-to-mid-size municipality:

  1. Appoint a data coordinator (even part-time) to lead the effort.
  2. Survey every department. Send a one-page form asking each department head: What data do you produce or maintain? Where does it live (spreadsheet, database, paper, website)? How often does it change? Does it contain personal information about individuals?
  3. Record each dataset as one row in a master spreadsheet. Columns: dataset name, owning department, current format, current location, update frequency, contains-PII (yes/no/unsure), currently-public (yes/no), notes.
  4. Do not try to clean or publish anything yet. The inventory is a listing exercise, not a publication exercise.
  5. Review the inventory with the municipal attorney or clerk to flag datasets that may be exempt from disclosure under FOIL S-011 or other law.

Categories of public data typically held by a municipality

A typical NY municipality holds most or all of the following categories. Each is a candidate dataset for the inventory:

CategoryExamplesUsually public?
Council/board minutes & agendasText of meetings, vote records, agenda packetsYes
Budgets & financial reportsAnnual budget, quarterly reports, auditYes
Property / assessment recordsParcel ownership, assessed value, tax statusYes (with PII exemptions for some owner info)
Permits & zoningBuilding permits, variance applications, zoning mapYes
Contracts & procurementVendor contracts, bid results, purchase ordersYes
Meeting calendars & public noticesUpcoming meetings, legal noticesYes
GIS / mapping dataParcel boundaries, road centerlines, zoning districtsYes
Code / ordinancesLocal law text, zoning codeYes
Service requests / 311 dataPothole reports, noise complaints, request statusYes (with requestor PII stripped)
Election / voting dataPolling locations, ballot results, district mapsYes (results); voter rolls restricted
Business licensesIssued licenses, license type, statusYes (with owner PII handled carefully)
Vital recordsBirth/death/marriage certificatesRestricted — exempt under FOIL and state vital-records law

Several of these categories have established, domain-specific data standards that a municipality can adopt rather than inventing its own — for example, the General Transit Feed Specification (GTFS) for transit schedules, referenced in the W3C Best Practices S-301. Even where no national standard exists, the act of inventorying forces consistency.

What a data catalog (the published version of the inventory) looks like

Once the inventory is complete, the published version is a data catalog — a list of datasets with metadata that both humans and machines can read. The W3C DCAT vocabulary defines the structure: a Catalog contains Datasets, each Dataset has one or more Distributions (a specific downloadable file or API), and each has properties like title, description, publisher, license, and update frequency S-302. The federal DCAT-US schema is a concrete profile of DCAT that specifies exactly which fields are required S-304. CKAN, the open-source platform behind data.gov, implements this catalog structure out of the box S-306.


3. Data Formats — What to Publish and Why

Why format matters

The format in which data is published determines whether a computer can use it at all, how much labor a consumer must invest to process it, and how durable the data is over time. The W3C is unambiguous: Best Practice 12 — “Use machine-readable standardized data formats” — and the accompanying guidance warns that non-machine-readable formats “place severe limitations on the continuing usefulness of the data” S-301. Best Practice 14 adds: “Provide data in multiple formats” when more than one format suits the data S-301.

The formats, in plain language

CSV / TSV (Comma-Separated Values / Tab-Separated Values)

A CSV file is a plain-text table. Each row is one record. Each column is separated by a comma. It opens in any spreadsheet program (Excel, Google Sheets, Numbers) and any programming language can read it with a built-in library. CSV is the simplest, most universal format for tabular data — budgets, permit lists, vendor contracts, assessment rolls. The W3C recommends CSV for tabular data and provides a companion “Model for Tabular Data and Metadata on the Web” for describing CSV structure S-301. When to use it: any data that fits naturally in a grid of rows and columns. Why it matters for automated access: a crawler can download a CSV and parse it in one line of code. No layout, no styling, no ambiguity about where the data is.

JSON (JavaScript Object Notation)

JSON is a text format for nested data — data where each record contains sub-fields and lists, not just flat columns. It is the modern standard for web APIs. A meeting record in JSON might nest the agenda items, attendees, and vote tallies inside a single object. The DCAT-US schema itself is expressed in JSON S-304, and the W3C Best Practices use JSON-LD (a JSON variant for linked data) in their examples S-301. When to use it: data with nested structure, or any data served through an API. Why it matters: JSON is what modern web and API consumers expect. Every major programming language has native JSON support.

XML (eXtensible Markup Language)

XML is an older structured format that uses tags (like HTML) to label fields. It is still widely used in government — federal data feeds, legislative documents (e.g., bills on congress.gov), and many GIS systems use XML. The DCAT-US schema notes XML as a supported distribution format and links it to the text/xml media type S-304. When to use it: when integrating with legacy government systems that require it, or for document-centric data. Why it matters: some government consumers still expect XML; publishing it alongside CSV/JSON (Best Practice 14 — multiple formats S-301) maximizes compatibility.

GeoJSON / Shapefile (Geographic / GIS data)

GeoJSON is a JSON-based format for geographic features — points, lines, polygons — with attributes attached. A parcel boundary is a polygon with properties like parcel_id, address, acreage. Shapefile is an older, binary GIS format (actually a bundle of several files) that is the long-standing standard in professional GIS software. The DCAT-US spatial field supports GeoJSON objects directly S-304. Geographic metadata standards (ISO 19115) are referenced in the W3C DCAT specification as a recognized controlled vocabulary for dataset scope S-302. When to use it: any data with a location component — parcels, roads, zoning districts, polling places, facilities. Why it matters: GIS data is among the most commercially valuable municipal data (real-estate, logistics, and mapping companies are major buyers) and GeoJSON is the format modern web-mapping tools consume natively.

PDF (The Enemy)

A PDF is a fixed-layout document designed for printing and reading, not for data extraction. Despite being “electronic,” a PDF is not machine-readable in the sense that matters here. A budget table inside a PDF is a picture of a table — a computer sees pixels, not rows and columns. Extracting data from PDFs requires OCR (optical character recognition) and layout analysis, both of which are error-prone and expensive. The W3C Best Practices explicitly distinguish between formats “that can be read and edited by humans” and formats that are “machine-readable,” the latter meaning “the data is readily extracted, transformed and processed by a computer” S-301. PDF is the former, not the latter. When to use it: for human-readable reports, signed documents, and archival copies — never as the primary format for data you want machines to consume. Why it matters: publishing data only as PDF is the single most common mistake municipalities make and the single biggest reason their data is not worth paying for. Always publish a CSV or JSON alongside any PDF.

HTML tables

Data displayed in an HTML table on a web page is more machine-readable than a PDF (the table tags <table>, <tr>, <td> give structure), but it is still fragile: the table is embedded in a page designed for human visual layout, columns may lack headers, the page may change with any website update, and the data is mixed with navigation, ads, and prose. The W3C Best Practices recommend publishing data as downloadable files or through APIs in addition to any HTML presentation, not instead of S-301. When to use it: only as a secondary, human-friendly view. Why it matters: relying on HTML tables as your data publication method forces every consumer to scrape, which is exactly the costly, brittle process a paid structured-access program is meant to replace.

APIs vs. static files

A static file (CSV, JSON, XML) is a complete snapshot of a dataset that a consumer downloads once. An API (Application Programming Interface) is a live endpoint that a consumer queries — “give me all permits issued in zip 12401 since 2026-01-01” — and receives a structured response. The W3C devotes Best Practices 17–26 to API and access design, including Best Practice 17 — “Provide bulk download”, Best Practice 20 — “Provide real-time access”, and Best Practice 23 — “Make data available through an API” S-301. The DCAT-US schema distinguishes downloadURL (direct file download) from accessURL (indirect access, e.g., an API endpoint) S-304. When to use which: static files for complete datasets that change infrequently (annual budget, parcel map); APIs for large or frequently-updated datasets where a consumer wants a slice (permits, 311 requests, meeting agendas). A mature data program offers both.

RSS / Atom feeds

RSS and Atom are XML-based formats for publishing frequently-updated content in a stream — each item has a title, date, link, and summary. They are the standard way to publish news feeds, blog updates, and, relevantly, meeting agendas, public notices, and press releases. A crawler can subscribe to an RSS feed and be notified automatically every time a new agenda is posted, without re-scraping the website. The Sitemaps protocol (already cited in this project as S-111) also supports RSS/Atom as a sitemap format. When to use it: for any data that is a stream of dated items — agendas, notices, news, new permit filings. Why it matters: feeds are the cheapest possible “push” notification to automated consumers and dramatically reduce scraping load on your website.

A format decision rule for officials

If your data is…Publish as…
A flat table (budget, permit list, vendor list)CSV (+ JSON if nested)
Nested/relational (meeting with agenda items + votes)JSON
Geographic (parcels, roads, districts)GeoJSON (+ Shapefile for GIS users)
A stream of dated items (agendas, notices)RSS/Atom feed
A human report (annual report, audit)PDF + a CSV of the underlying data
Live/queryable (current permits, 311 status)API (JSON) + periodic bulk CSV

4. Data Schemas — Making Data Consistent

What is a schema?

A schema is the formal definition of what fields a dataset contains, what type of data goes in each field, and what values are allowed. If a dataset is a spreadsheet, the schema is the rulebook for the columns: parcel_id must be a text string of exactly 9 digits; assessment_value must be a number with no currency symbols; fiscal_year must be a 4-digit integer; last_sale_date must be an ISO 8601 date.

The W3C calls this structural metadata — “metadata that describes the schema and internal structure of a distribution” — and devotes Best Practice 3 to it: “Provide structural metadata” S-301. The DCAT-US schema provides a describedBy field that links a dataset to its data dictionary (the schema document) and a conformsTo field that identifies the standard the dataset follows S-304. The W3C DCAT vocabulary has a dcat:conformsTo property for the same purpose S-302.

Why consistency matters

A crawler that ingests data from 200 municipalities cannot use them together if one town writes dates as 08/14/2026, another as 14-08-2026, another as “Aug. 14, 2026,” and another as 2026/08/14. Consistency is what makes data combinable and comparable — and combinability is what makes a multi-municipality data product valuable. The W3C frames this as the benefit of interoperability S-301.

Specific schema decisions every municipality should make

Dates: use ISO 8601

The single most important formatting rule: always write dates as YYYY-MM-DD — for example, 2026-08-14. This is the ISO 8601 international standard S-309. ISO 8601 orders date components from largest to smallest (year, month, day), which means dates sort correctly as text and are never ambiguous. The DCAT-US schema requires ISO 8601 dates for the modified, issued, and temporal fields S-304. The W3C DCAT vocabulary types its date properties using XML Schema date types which are themselves ISO 8601 compliant S-302. The W3C Best Practices Best Practice 13 — “Use locale-neutral data representations” — explicitly calls out the ambiguity problem: “the 'date' 4/7 can be read as 7th of April or the 4th of July depending on where the data was created” S-301. Never use MM/DD/YYYY in published data.

Currency: raw numbers, no symbols

Store currency as a raw decimal number with no currency symbol, no thousands separators, and no text: 1234.56, not $1,234.56, not 1,234.56 USD. If you need to indicate currency, use a separate currency field with an ISO 4217 code (USD). The W3C Best Practices show exactly this pattern in their locale-neutral example: a price numeric field plus a currency_type field S-301. This lets a computer sum, average, and compare values without first stripping symbols.

Addresses: split into components

Store addresses as separate fields — street_number, street_name, unit, city, state, zip — not as one combined string. A combined field like “123 Main St, Apt 4, Kingston, NY 12401” requires a parser to split before it can be geocoded, mapped, or compared. Split fields are immediately usable. Many GIS and assessment standards already expect split address components.

Field names: consistent, lowercase, snake_case

Pick a naming convention and stick to it across all datasets. The most common convention in open data is lowercase words separated by underscores ("snake_case"): parcel_id, assessment_value, last_sale_date. The DCAT-US schema itself uses camelCase (contactPoint, accessLevel, downloadURL) and explicitly warns that “The Project Open Data schema is case sensitive” and that exact casing must be followed S-304. Whatever convention you choose, document it in your schema and apply it everywhere.

Controlled vocabularies for categories

For categorical fields (permit type, department code, status), use a fixed list of allowed values — a controlled vocabulary — rather than free text. The W3C Best Practice 15 — “Reuse vocabularies, preferably standardized ones” — recommends using shared, standardized term lists wherever possible S-301. If no national standard exists for your category, define your own list and publish it alongside the data.

How existing government standards handle this

The DCAT-US schema (Project Open Data) defines the field names, types, and allowed values for dataset metadata itself — title (string), modified (ISO 8601 date), accessLevel (one of public/restricted public/non-public), accrualPeriodicity (ISO 8601 repeating duration like R/P1Y for annual) S-304. The W3C DCAT vocabulary provides the same at the international standard level S-302. A municipality publishing data does not need to invent a metadata schema; it can adopt DCAT-US directly.


5. Metadata — Describing the Data

What is metadata and why does it matter?

Metadata is “data about the data.” If a dataset is the budget spreadsheet, the metadata is: the title (“Town of Ulster 2026 Budget”), the description (“Line-item budget by department and fund”), the publisher (“Town of Ulster”), the contact (“clerk@townofulster.gov”), the date last modified, the update frequency (“annually”), the license (“Public Domain”), the file format (“CSV”), and a link to the data dictionary.

Without metadata, a dataset is an orphan file. A crawler that finds budget_2026.csv on your website cannot know whether it is the official budget, a draft, a summary, or someone's personal copy. It cannot know how old it is, whether it is current, who is responsible for it, or whether it is allowed to be reused. The W3C is direct: Best Practice 1 — “Provide metadata” — and the rationale: “Data will not be discoverable or reusable by anyone other than the publisher if insufficient metadata is provided” S-301. Best Practice 2 — “Provide descriptive metadata” — lists the minimum descriptive fields: title, description, keywords, publication date, publisher, contact point, spatial coverage, temporal coverage, last-modified date, and theme S-301.

Metadata matters for monetization specifically because it is what makes a dataset discoverable and trustworthy to a commercial consumer. A crawler that can find your dataset via a catalog (or via Google, using schema.org markup) and verify its currency and license is a crawler that can build a product on it — and pay for guaranteed access.

The major metadata standards

Project Open Data Metadata Schema (DCAT-US / data.json)

The federal Project Open Data schema (current version: DCAT-US v1.1, with v3.0 now published) is the concrete, ready-to-use metadata schema for a data catalog. It is based on the W3C DCAT vocabulary and is expressed as a JSON file (data.json) S-304S-305. Required fields for every dataset: title, description, keyword, modified (last update date), publisher, contactPoint (name + email), identifier (unique ID), accessLevel (public / restricted public / non-public). Required-if-applicable: license, spatial, temporal, distribution (the files/APIs). Optional/expanded: accrualPeriodicity (update frequency), language, landingPage, theme, references S-304. This is the single best template for a municipality to copy.

W3C DCAT (Data Catalog Vocabulary)

DCAT is the W3C Recommendation (now at version 3) for describing data catalogs in RDF. It defines the classes Catalog, Dataset, Distribution, DataService, and CatalogRecord, and the properties that connect them (dcat:dataset, dcat:distribution, dcterms:title, dcterms:description, dcterms:publisher, dcterms:license, dcterms:modified, dcat:keyword, etc.) S-302. DCAT is the international standard that DCAT-US profiles; the European Commission's DCAT-AP is another profile. A municipality aligning with DCAT (via DCAT-US) is aligning with the global standard.

Schema.org Dataset

Schema.org defines a Dataset type (equivalent to dcat:Dataset) that can be embedded in ordinary web pages as JSON-LD markup S-303. When you tag a web page as describing a Dataset, Google and other search engines can index it as a dataset and surface it in dataset search. Schema.org Dataset inherits properties from CreativeWork and Thing: name, description, keywords, creator, publisher, datePublished, dateModified, license, spatialCoverage, temporalCoverage, distribution (with DataDownload), variableMeasured, and more S-303. This is the cheapest discoverability win available: a few lines of JSON-LD in your dataset landing pages makes your data findable in Google. The W3C DCAT specification includes an appendix on alignment with schema.org S-302.

ISO 19115 (Geographic metadata)

ISO 19115 is the international standard for metadata describing geographic information and services. The W3C DCAT specification references ISO 19115 scope codes as a recommended controlled vocabulary for the dcterms:type property of a dataset S-302. For municipalities with significant GIS data, ISO 19115 (or its US implementation, the FGDC Content Standard) is the relevant metadata standard for spatial datasets. (NOTE: The ISO 19115 standard itself is a paid ISO document; the reference here is via its citation in the W3C DCAT Recommendation. The full text was not independently fetched and should be verified against ISO or FGDC if relied upon for implementation.)

Minimum metadata every dataset should have

Based on the DCAT-US required fields S-304 and the W3C Best Practices 1–3 S-301, every municipal dataset should have, at minimum:

FieldExampleWhy
title“Town of Ulster 2026 Budget”Human-readable name; required by DCAT-US
description“Line-item budget by department and fund for FY2026”What the data is; required
publisher“Town of Ulster”Who is responsible; required
contactPointname + emailWho to ask about it; required
modified2026-08-14 (ISO 8601)When it last changed; required
accrualPeriodicityR/P1Y (annual)How often it updates; DCAT-US expanded field
license“Public Domain” / CC0 URLTerms of use; DCAT-US if-applicable
format / mediaType“CSV” / text/csvWhat format the file is in; DCAT-US distribution field
accessLevel“public”Whether it can be public; required
identifier“townofulster-budget-2026”Unique, stable ID; required
spatialbounding box or place nameGeographic coverage; DCAT-US if spatial
temporal2026-01-01/2026-12-31Time period covered; DCAT-US if applicable
describedByURL to data dictionaryThe schema; DCAT-US expanded field

6. APIs — Building the Access Layer

What is an API, in plain language?

An API (Application Programming Interface) is a structured way for one computer program to ask another computer program for data and receive a structured answer. If a website is a restaurant menu designed for humans to read, an API is a takeout window designed for computers to order from.

A resident visiting your website to find a building permit types your URL, reads the page, and clicks links. A crawler using your API sends a request like GET https://data.townofulster.gov/api/permits?zip=12401&since=2026-01-01 and receives back a JSON file with all matching permits — no HTML, no navigation, no ads, just the data. The W3C Best Practice 23 — “Make data available through an API” — and Best Practice 24 — “Use Web Standards as the foundation of APIs” — cover this S-301. Best Practice 25 — “Provide complete documentation for your API” — is essential: an undocumented API is nearly useless S-301.

What is a REST API?

A REST API (Representational State Transfer) is the most common style of web API. It works over plain HTTP — the same protocol your website uses S-102. Each piece of data lives at a URL (an “endpoint”). Standard HTTP methods are used: GET to retrieve data, POST to create, PUT to update, DELETE to remove. Responses are typically JSON. The W3C Best Practice 24 explicitly says to “use Web Standards as the foundation of APIs” — meaning HTTP methods, URLs, and standard status codes S-301. The US Census Bureau's API is a working example: free registration for an API key, then GET requests return JSON S-108.

How open-data platforms provide APIs

A municipality does not need to build an API from scratch. The major open-data platforms provide APIs automatically when you upload a dataset:

  • CKAN (open source, free): Every dataset published to CKAN gets a RESTful API automatically. CKAN powers data.gov (US), data.gov.uk, Canada's open data portal, Australia, and hundreds of others S-306. A municipality can install CKAN on its own server or use a hosted CKAN provider.
  • Socrata / Tyler Technologies (commercial): Socrata provides a hosted open-data platform with a built-in API for every dataset. New York State's data.ny.gov runs on Socrata and provides API access to its 1,500+ datasets S-308. NYC Open Data (opendata.cityofnewyork.us) also runs on Socrata S-113S-208. (NOTE: Specific Socrata premium-tier/metered-billing features were flagged as needing verification in the economic research — see S-214 in sources.yaml. The base API capability is confirmed via data.ny.gov.)
  • DKAN (open source): A Drupal-based open-data platform, an alternative to CKAN. (NOTE: DKAN's current status and feature set were not independently verified in this research pass; flagged as needs verification.)
  • OpenGov (commercial): A budget and performance platform used by many US local governments that includes data publishing and reporting. (NOTE: OpenGov's open-data/API capabilities were not independently verified in this pass; flagged as needs verification.)
  • Junar (commercial): A Latin-America-originated open-data platform. (NOTE: not independently verified.)

Converting existing data into an API

Many municipalities already have data in a structured system — a SQL database (assessment rolls, permits), a CivicPlus or Granicus CMS S-123, or even spreadsheets. The path to an API:

  1. If data is in a SQL database: An API gateway or a lightweight framework (e.g., PostgREST, or a custom script) can expose database tables as REST endpoints directly. The data is already structured; the API is a thin layer on top.
  2. If data is in a CMS (CivicPlus, Granicus): Most modern civic CMS platforms have some export or API capability. If not, the practical path is to export the data to CSV/JSON periodically and publish it on an open-data platform (CKAN or Socrata) that generates the API automatically.
  3. If data is in spreadsheets: Upload to CKAN or Socrata; both generate an API from the uploaded file. This is the fastest path for a small municipality with no developer.
  4. If you need authentication, rate limiting, or billing: Place an API gateway (Kong S-106, AWS API Gateway S-121, or similar) in front of the API. This is the technical layer that enables a paid tier — API keys, per-key rate limits, usage metering, integration with billing. These technologies are covered in the Technical Landscape draft; the data-organization point is that the API must serve clean, schema-stable, well-documented data for the gateway layer to have anything worth gating.

What is GraphQL and is it relevant?

GraphQL is a newer API query language that lets a client request exactly the fields it wants in one request, rather than making multiple REST requests. It is powerful for complex, nested data models. For a municipality's purposes, REST is sufficient and far more widely understood; GraphQL is not necessary for a first-generation data program. The W3C Best Practices do not require GraphQL S-301.

API documentation — why it matters

An API without documentation is a locked door without a key. Documentation must tell a consumer: what endpoints exist, what parameters each accepts, what the response looks like (a sample response), what authentication is required, and what the rate limits are. The W3C Best Practice 25 — “Provide complete documentation for your API” — is explicit S-301. The DCAT-US schema supports this with the accessURL field (pointing to API documentation) and the endpointDescription field in DCAT S-304S-302. The US Census API User Guide is a model of clear government API documentation S-108.


7. Storage and Hosting Options

Where does the published data actually live? Options for a municipality, in order of increasing capability and cost:

Option A: A /data page on your existing municipal website

The simplest possible publication: create a page at www.townofulster.gov/data that lists your datasets with links to download CSV/JSON files. Cost: essentially zero (uses your existing website). Complexity: minimal. Trade-off: no API, no catalog search, no automatic metadata, no rate limiting — just files. This is a legitimate Phase 1–3 starting point and is exactly how the federal Project Open Data schema envisions agency-level data pages (each agency hosts agency.gov/data.json) S-304.

Option B: An open-data platform — CKAN (open source, free)

CKAN is a full data management system: it provides a catalog, dataset pages, metadata fields, search, preview, API generation, user accounts, and harvesting. It is open source and free to install, though hosting it requires a server or a hosted-CKAN provider. CKAN powers data.gov, Canada, Australia, the UK, and hundreds of sub-national portals S-306. Cost: server hosting ($5–50/month for a small cloud server) or a hosted CKAN plan (varies). Complexity: moderate — requires someone to install and maintain it (a part-time IT person or a vendor). Trade-off: the best capability-to-cost ratio for a municipality willing to manage a server.

Option C: An open-data platform — Socrata / Tyler Technologies (commercial, hosted)

Socrata is a fully hosted, commercial open-data platform. You upload data; Socrata provides the catalog, API, visualizations, and hosting. New York State (data.ny.gov) and NYC use Socrata S-308S-113. Cost: commercial subscription (contact sales; typically tens of thousands per year for a mid-size government — verify with vendor). Complexity: low — the vendor manages the infrastructure. Trade-off: higher cost, lowest internal effort, vendor lock-in.

Option D: Cloud storage (AWS S3, Google Cloud Storage, Azure Blob)

For a municipality that wants to publish large static files (bulk CSV/JSON, GIS files) cheaply, cloud object storage is an option. You upload files to a “bucket” and make the bucket public. Cost: pennies per gigabyte stored and per download. Complexity: low for static files; no built-in catalog, search, or API. Trade-off: best for bulk file distribution as a supplement to a catalog platform, not as a replacement for one. This is the pattern behind many large federal bulk-data downloads.

Option E: On-premises servers

Some municipalities host their own servers. This is viable if IT staff already exist, but it shifts the burden of security, backups, uptime, and bandwidth to the municipality. For data publication specifically, cloud or hosted platforms are almost always cheaper and more reliable than on-premises hosting for the same capability.

Existing municipal CMS (Granicus, CivicPlus)

Many NY municipalities already use Granicus (which includes govAccess/OpenCities for websites and GovQA for public records) S-123 or CivicPlus for their main website. These platforms may have data-publication or transparency modules. If your CMS already has this capability, it may be the lowest-friction starting point. Trade-off: CMS-bundled data tools are usually less capable than a dedicated open-data platform (CKAN/Socrata) for API generation, metadata, and catalog search. (NOTE: Specific CivicPlus and Granicus open-data/API module capabilities were not independently verified in this pass; flagged as needs verification.)


8. Data Refresh and Update Cadence

Why cadence matters

Data has a shelf life. A budget dataset from 2024 is less valuable in 2026 than it was in 2024. A permit list that is six months stale is worse than useless to a commercial consumer — it is misleading. The W3C Best Practice 21 — “Provide data up to date” — and Best Practice 20 — “Provide real-time access” — address this directly S-301. The DCAT-US schema captures cadence in the accrualPeriodicity field (e.g., R/P1D for daily, R/P1W for weekly, R/P1Y for annual) and in the modified field (last-changed date) S-304.

What “real-time” vs. “batch” vs. “on-demand” mean

  • Batch (periodic): The dataset is regenerated on a schedule — nightly, weekly, monthly, annually — and the full file is replaced. Most municipal data is naturally batch. The budget updates annually; council minutes update after each meeting; assessments update on the annual roll.
  • Real-time (streaming): Data is published as it is generated, with seconds-to-minutes delay. A 311 request is published the moment it is filed. This requires a live API or a streaming feed, not a static file. Real-time is more valuable to consumers but more expensive to produce.
  • On-demand (query-time): Data is not pre-published; it is generated in response to a query. “Give me all permits in zip 12401 since this morning” is an on-demand API call. This is what an API provides that a static file cannot.

How often should each type of data update?

Data typeRecommended cadenceRationale
Council minutes/agendasAfter each meeting (or as drafts before)Public interest is highest immediately around meetings
BudgetAnnual (published), with amendments as they occurFiscal cycle is annual
PermitsDaily or weeklyCommercial value depends on currency
AssessmentsAnnual (tentative + final roll)Follows the assessment calendar
311 / service requestsReal-time or dailyStatus changes matter to consumers
GIS / parcelsAnnual or on changeChanges are infrequent
Public noticesAs issued (immediate)Legal timing requirements
Contracts / procurementAs awardedTransparency interest at award time

How update frequency affects what crawlers will pay

A crawler building a real-estate product will pay more for parcel data updated weekly than for parcel data updated annually, because weekly data is more current and thus more valuable to the product's end users. A crawler building a permit-tracking service will pay more for daily permit data than for a monthly dump. Cadence is a pricing variable: the fresher the data, the higher the value, and the more justifiable a premium tier. But cadence only creates value if it is reliable — a dataset that claims to update daily but actually updates “whenever someone remembers” destroys trust. Publish the cadence in metadata (accrualPeriodicity) and meet it S-304S-301.


9. Data Quality Control

What makes data “good”?

The W3C Data on the Web Best Practices include Best Practice 6 — “Provide data quality information” — and reference a companion Data Quality Vocabulary (DQV) that defines quality dimensions S-301. The DCAT-US schema includes a dataQuality boolean field indicating whether the dataset meets the agency's information quality guidelines S-304. The six dimensions below are the standard framework for data quality:

  1. Completeness — are there missing fields or missing records? A permit dataset where 30% of rows are missing the contractor_name field is incomplete. The W3C DQV defines a “Completeness” dimension: “the degree to which all required information is present” S-301.
  2. Accuracy — does the data match reality? Is the assessed value on the parcel record the same as the value on the physical assessment roll? Accuracy is verified by cross-checking against the source system.
  3. Timeliness — is the data current? A 2024 permit list published in 2026 is not timely. See Section 8 on cadence.
  4. Consistency — is the data in the same format everywhere? Are all dates ISO 8601? Are all currency fields raw numbers? Are department names spelled the same way in every row? See Section 4 on schemas.
  5. Validity — does the data conform to the schema? Is every fiscal_year a 4-digit integer? Is every zip a 5-digit string? Validity is checked by a validator that tests each field against its defined type and allowed values.
  6. Uniqueness — are there duplicate records? Two rows for the same permit with the same permit number is a duplication error. Primary keys (a unique identifier for each record) prevent this.

How a municipality checks and maintains quality

  • Define a schema (Section 4) and publish it as a data dictionary (describedBy field in DCAT-US S-304).
  • Run a validator before each publication. Open-source tools exist for validating CSV against a schema (e.g., CSV validation tools that check field types, required fields, and allowed values). The W3C provides a “Model for Tabular Data and Metadata on the Web” that defines how to attach a schema to a CSV S-301. The federal government provides a DCAT-US validator at catalog.data.gov S-304.
  • Cross-check against source systems periodically — compare a sample of published records against the database of record to catch drift.
  • Publish known quality issues in the metadata. The W3C Best Practice 6 says known quality issues “should be explicitly stated in metadata” S-301. Honesty about gaps builds trust; hiding them destroys it.
  • Assign a data steward per dataset (see Section 11, governance) who is responsible for quality.

Tools that exist

  • CSV/JSON schema validators — open-source libraries in Python (frictionless, goodtables), JavaScript, and other languages validate tabular data against a schema.
  • DCAT-US validator — the federal government provides a validator for data.json catalog files at catalog.data.gov/dcat-us/validator S-304.
  • Frictionless Data — an open-source framework for validating, describing, and publishing tabular data with schemas. (NOTE: Frictionless Data was not independently fetched in this pass; it is widely used in open-data practice. Flagged as needs verification for current tool status.)

10. Privacy and Exemptions — What NOT to Publish

The core rule: publish public data, protect exempt data

FOIL (NY Public Officers Law Article 6) presumes that government records are public and places the burden on the agency to justify withholding S-011S-202. But FOIL also contains specific exemptions. Publishing data that falls under an exemption — or that is restricted by other law — exposes the municipality to liability, erodes public trust, and can undermine the entire data program. A data classification step (Section 2, Step 3 of the inventory) must happen before any dataset is published.

FOIL exemptions — POL §87(2)

NY FOIL exempts records that, if disclosed, would:

  • §87(2)(a): endanger the life or safety of any person;
  • §87(2)(b): constitute an unwarranted invasion of personal privacy (this is the primary PII exemption);
  • and other categories including trade secrets, inter-agency memoranda, and records compiled for law enforcement S-011S-202.

The NY Committee on Open Government (COOG) is the authoritative advisory body on FOIL and issues advisory opinions on what is and is not exempt S-015S-206. When in doubt about whether a field is exempt, consult COOG and your municipal attorney before publishing.

Personal Identifiable Information (PII)

PII is information that identifies a specific individual — name, address, phone, email, Social Security number, date of birth, driver's license number, medical information, financial account numbers. The W3C Best Practices explicitly warn that publishers “should bear in mind that combining data from multiple sources may allow inadvertent identification of individuals” even when individual fields seem harmless S-301. Redact PII before publication, not after. Common redactions:

  • Replace personal names with roles where the individual's identity is not the public interest (e.g., “Building Inspector” not “John Smith”).
  • Truncate or remove addresses for records where the address is a person's home (not a business).
  • Never publish Social Security numbers, driver's license numbers, bank account numbers, or medical record numbers.

DPPA — Driver's Privacy Protection Act (18 USC §2721)

DPPA restricts the disclosure of personal information from state motor vehicle records. It enumerates permissible uses (safety, insurance, litigation, research) and explicitly allows states to charge an “administrative fee for issuance of a motor vehicle record” S-203. Municipal vehicle/towing records that contain DMV-sourced personal information are restricted. Do not publish them as open data without confirming the information falls outside DPPA's definition of personal information or within a permissible use.

FERPA — Family Educational Rights and Privacy Act (20 USC §1232g)

FERPA protects the privacy of student education records at institutions receiving federal Department of Education funds. Schools generally cannot disclose education records without parent or eligible-student consent, with specific exceptions S-310. Municipal school district data that contains student-identifiable information is restricted. Directory information (name, address, dates of attendance) may be disclosable under FERPA's directory-information exception, but combining directory information with other data can re-create a protected education record and constitutes a violation S-310. (NOTE: FERPA details verified via Wikipedia summary and the statute citation; for specific school-district publication decisions, consult the district's FERPA policy and the US Department of Education's Student Privacy Policy Office.)

HIPAA — Health Insurance Portability and Accountability Act

HIPAA protects individually identifiable health information held by covered entities (health plans, healthcare providers, healthcare clearinghouses). A municipality that operates a health clinic or public health program may be a covered entity. Health records are not publishable as open data. Even a municipality that is not a HIPAA covered entity should treat health information as exempt under FOIL §87(2)(b) (personal privacy) S-011. (NOTE: The HIPAA Privacy Rule (45 CFR Parts 160 and 164) was not independently fetched in this pass; the general principle — do not publish identifiable health information — is well-established and reinforced by the W3C privacy guidance S-301. Flagged as needs verification for specific regulatory text.)

Redaction standards

There is no single universal redaction standard, but the practical rules are:

  1. Redact at the field level, not by blacking out text in a PDF. If a field is exempt, remove the entire field from the published dataset, not individual values.
  2. Document the redaction in the dataset metadata (the rights field in DCAT-US S-304 can explain what was withheld and why).
  3. Test for re-identification. A dataset that removes names but retains ZIP code + birth date + gender can re-identify ~87% of the US population (the “mosaic effect”). The W3C Best Practices warn about exactly this combining risk S-301.
  4. When in doubt, do not publish. It is easier to add a dataset later after a privacy review than to recall one that exposed private information.

Why getting this wrong is a liability risk

Publishing exempt data can trigger: FOIL violations and COOG complaints S-015; DPPA civil penalties S-203; FERPA funding-loss risk for school districts S-310; HIPAA penalties for covered entities; and common-law privacy tort claims. Proper data classification (the accessLevel field in DCAT-US: public / restricted public / non-public S-304) before publication is the structural safeguard.


11. Data Governance — Who Owns What

What is data governance?

Data governance is the set of policies, roles, and processes that determine who is responsible for data, who decides what gets published, who ensures quality, who handles privacy review, and who responds to FOIL requests for data. The federal resources.data.gov site maintains an entire “Data management & governance” resource category for exactly this S-305. What Works Cities certifies cities for, among other things, having governance structures that make data use sustainable S-307.

Why a municipality needs a data governance policy

Without governance, three failure modes recur:

  1. Over-disclosure (privacy failure): Someone publishes a dataset that contains exempt PII because no one reviewed it. Liability follows.
  2. Under-disclosure (transparency failure): No one publishes anything because no one knows who is allowed to approve publication. The data sits in spreadsheets on desktop computers.
  3. Quality decay: A dataset is published once, no one owns it, it goes stale, and it becomes worse than no data.

A governance policy prevents all three by assigning clear ownership and decision authority.

Who should own each dataset?

Every dataset in the inventory should have a named data steward — the person in the originating department who knows the data, is responsible for its quality, and updates it on the agreed cadence. The budget steward is in the finance department; the permits steward is in the building department; the GIS steward is in the planning or assessor's office. The DCAT-US contactPoint field (required) captures this ownership in the metadata S-304.

Who approves publication?

A data coordinator (the role from Section 2, Step 1) reviews each proposed dataset for: format compliance (Section 3), schema compliance (Section 4), metadata completeness (Section 5), and privacy classification (Section 10). The municipal attorney or clerk reviews anything marked restricted-public. The coordinator then approves publication to the catalog. This is a lightweight approval workflow — it does not require a new department, just a designated person and a checklist.

Who handles FOIL requests for data?

The municipal FOIL officer (Records Access Officer) handles FOIL requests as today. The data program does not replace FOIL; it reduces FOIL load by making common data available proactively. The Committee on Open Government is the authoritative guide for FOIL process S-015S-206. A well-organized data catalog is, in effect, a FOIL-reduction tool: data that is already public cannot be FOIL-requested.

How governance prevents both over- and under-disclosure

  • Over-disclosure: The privacy-classification step (accessLevel: public/restricted/non-public S-304) and attorney review gate publication. Nothing goes live without a classification.
  • Under-disclosure: The inventory (Section 2) makes visible everything that could be published, and the coordinator's job is to move datasets through the pipeline. The inventory is the forcing function against inertia.
  • Staleness: Each dataset's steward is responsible for meeting the published cadence. The modified date in metadata S-304 is public — if it is stale, everyone can see it.

12. Established Government Data Standards to Follow

A municipality should align with existing standards rather than inventing its own. The major frameworks:

Federal Project Open Data / DCAT-US (OMB M-13-13)

Project Open Data is the federal open-data initiative established by OMB Memorandum M-13-13, which directed federal agencies to make their data machine-readable and publicly available by default. The implementation schema is DCAT-US (formerly the “Project Open Data Metadata Schema”), expressed as a data.json catalog file S-304S-305. The schema is based on the W3C DCAT vocabulary S-302. This is the single most relevant standard for a US municipality to adopt — it defines the metadata fields, the catalog file format, and the access-level classification system that this guide recommends throughout. (NOTE: OMB M-13-13 itself was not directly fetched in this pass; it is referenced throughout the Project Open Data documentation at resources.data.gov S-305 and the DCAT-US schema S-304. The memo's existence and role are well-established; the full text should be verified at whitehouse.gov/omb before being cited in legislation.)

W3C Data on the Web Best Practices (Recommendation)

The W3C published “Data on the Web Best Practices” as a formal Recommendation (the highest level of W3C standard) on 31 January 2017. It defines 35 enumerated Best Practices covering metadata, licenses, provenance, quality, versioning, identifiers, formats, vocabularies, access (bulk, subsets, APIs, real-time), preservation, feedback, and enrichment S-301. This is the international technical standard for publishing data on the web. A municipality that follows the DCAT-US schema and the W3C Best Practices is aligned with both the federal and the international standard.

W3C DCAT (Data Catalog Vocabulary, v3)

DCAT is the W3C Recommendation for describing data catalogs in RDF, now at version 3 (22 August 2024). It defines the classes (Catalog, Dataset, Distribution, DataService, DatasetSeries, CatalogRecord) and properties that DCAT-US profiles S-302. DCAT is designed to “facilitate interoperability between data catalogs published on the Web” and to “increase the discoverability of datasets” S-302.

Schema.org Dataset

Schema.org defines a Dataset type (equivalent to dcat:Dataset) for embedding dataset metadata in web pages as JSON-LD, enabling discovery via search engines S-303. The cheapest discoverability win available to a municipality.

What Works Cities / Bloomberg Philanthropies

What Works Cities, founded by Bloomberg Philanthropies and led by Results for America, helps local governments use data and evidence at scale. It offers a Certification program that recognizes cities for data-driven governance; since 2017, over 100 cities have been certified S-307. Relevance: the certification criteria are a practical benchmark for what a well-governed municipal data program looks like. (NOTE: The specific certification criteria were not independently fetched in detail in this pass; the program's existence, scope, and 100+ certified-cities figure are confirmed from the whatworkscities.bloomberg.org homepage S-307.)

NY State open data policy (Executive Order 95)

New York State operates data.ny.gov, an open-data portal with 1,500+ datasets across 62 state agencies, running on the Socrata platform. The program is established under Executive Order 95 (referenced on the data.ny.gov site S-308). The site provides an Open Data Handbook and Dataset Submission Guide for state agencies — useful templates for a municipality. NY State does not impose a specific open-data mandate on local governments, but the state platform and its documentation are the closest in-state precedent and a model for local practice. (NOTE: Executive Order 95 is referenced on data.ny.gov S-308 and a PDF link is present; the PDF was fetched but is a scanned image and not text-extractable. The EO's existence and role are confirmed; specific local-government obligations under it, if any, should be verified against the EO text and NY ITS guidance.)

Sunlight Foundation / Code for America open data policy guidelines

The Sunlight Foundation historically published widely-cited open data policy guidelines for state and local governments, and Code for America / 18F produced open-data implementation guides. (NOTE: The Sunlight Foundation open data policy guidelines and specific Code for America / 18F guides were not independently fetched in this research pass. The Sunlight Foundation's open-data policy work is widely referenced in the open-government community but the organization has undergone structural changes. These sources are flagged as needs verification. They are recommended as secondary references but should not be cited as primary until verified.)

ISO 19115 (Geographic metadata)

ISO 19115 is the international standard for geographic information metadata. It is referenced in the W3C DCAT specification as a recommended controlled vocabulary for dataset scope/type S-302. For GIS-heavy municipalities, ISO 19115 (or the US FGDC Content Standard) is the relevant spatial-metadata standard. (NOTE: The ISO 19115 standard document itself is a paid ISO publication and was not independently purchased or fetched. The reference here is via its citation in the W3C DCAT Recommendation S-302. Flagged as needs verification for implementation detail.)


13. A Phased Implementation Roadmap

This is a practical, sequenced plan. Do not skip to monetization (Phase 6). Each phase builds on the last.

1

Phase 1: Data Inventory and Audit (Months 1–2)

What it involves: Survey every department; build the master inventory spreadsheet (Section 2); classify each dataset as public / restricted / non-public; flag PII concerns.

Who does it: Data coordinator + department heads + municipal attorney (for classification).

Success looks like: A complete inventory spreadsheet with an entry for every dataset the municipality holds, each with an owner, a current format, a cadence, and a privacy classification.

Standard alignment: DCAT-US accessLevel and contactPoint fields; W3C Best Practice 1 (metadata).

2

Phase 2: Priority Datasets (Month 3)

What it involves: From the inventory, select 3–5 datasets to publish first. Choose high-demand, low-risk data: budget/financial reports, council minutes/agendas, meeting calendars, public notices, GIS parcel boundaries.

Who does it: Data coordinator, with approval from the relevant department heads.

Success looks like: A shortlist of 3–5 named datasets with a clear reason for each selection (demand, low privacy risk, existing in a clean source system).

Standard alignment: DCAT-US title, description, keyword fields.

3

Phase 3: Format and Clean (Months 3–5)

What it involves: Convert each priority dataset to a machine-readable format (CSV for tables, JSON for nested, GeoJSON for maps — Section 3). Apply a schema (Section 4): ISO 8601 dates, raw-number currency, split addresses, consistent field names. Write a data dictionary for each.

Who does it: Data coordinator with the dataset steward in each department; possibly a contractor for one-time conversion help.

Success looks like: Each priority dataset exists as a clean CSV/JSON/GeoJSON file with a documented schema, and the file passes a validation check.

Standard alignment: W3C Best Practices 12 (machine-readable formats) and 13 (locale-neutral); ISO 8601; DCAT-US conformsTo and describedBy.

4

Phase 4: Publish (Months 5–6)

What it involves: Choose a home (Section 7) — a /data page, CKAN, or a hosted platform. Write metadata for each dataset (Section 5) using the DCAT-US field list. Publish the files and the metadata. Run a privacy review (Section 10) before going live.

Who does it: Data coordinator; IT or vendor for platform setup if using CKAN; municipal attorney for final privacy sign-off.

Success looks like: A public data page or portal where a resident or crawler can find each priority dataset, read its metadata, and download it in a machine-readable format. Embed schema.org Dataset JSON-LD on the landing pages for search discoverability.

Standard alignment: DCAT-US required metadata fields; W3C DCAT; schema.org Dataset; W3C Best Practices 1–6 (metadata, license, provenance, quality).

5

Phase 5: Quality and Maintenance (Ongoing, from Month 6)

What it involves: Set and meet the update cadence for each dataset (Section 8). Run validators before each publication. Assign and support data stewards (Section 11). Publish the cadence in metadata. Address quality issues as they arise. Expand the catalog by adding more datasets from the inventory in batches.

Who does it: Dataset stewards (ongoing, per dataset); data coordinator (oversight).

Success looks like: Datasets update on their published schedule; modified dates in metadata are current; no PII incidents; the catalog grows from 3–5 to 10–20+ datasets over the first year.

Standard alignment: W3C Best Practices 6 (quality), 7–8 (versioning), 20–22 (up-to-date, real-time, unavailability); DCAT-US accrualPeriodicity and modified.

6

Phase 6: Monetize — Paid Automated-Access Tier (Months 12+, only after Phases 1–5 are stable)

What it involves: Only after data is inventoried, clean, formatted, published with metadata, governed, and reliably maintained does it make sense to add a paid tier for automated access. This means: standing up an API (if not already done in Phase 4), placing an API gateway in front of it (Kong S-106, AWS API Gateway S-121, etc.), issuing API keys, setting rate limits per tier, metering usage, and setting a fee schedule tied to actual costs of providing access. The legal and economic design of the fee schedule is covered in the Legal Landscape and Economic Models drafts; the data-organization prerequisite is that there must be clean, stable, well-documented, reliable data behind the gateway for the paid tier to have any value.

Who does it: Data coordinator + IT/vendor + municipal attorney + governing board (to approve the fee ordinance).

Success looks like: A registered, key-based, rate-limited API serving clean municipal data, with a published fee schedule, a terms-of-use agreement, and usage monitoring. Free public access (download of CSVs, basic API) continues alongside the paid tier.

Standard alignment: W3C Best Practices 17 (bulk), 23 (API), 24 (web standards for APIs), 25 (API documentation); DCAT-US accessURL and distribution; W3C DCAT DataService class.

The Critical Sequencing Rule

Phases 1–5 create the asset. Phase 6 prices it. Trying to monetize messy, unstructured, ungoverned, stale data will fail commercially and may invite the kind of cost-diversion litigation that befell PACER S-009S-010. The PACER precedent — where fees were struck down because they exceeded the cost of providing access — is a direct warning: any municipal fee must be tied to the actual cost of providing the automated-access service, not used as a general revenue stream.


14. Plain-Language Data Glossary

TermDefinition
API (Application Programming Interface)A structured way for computer programs to request and receive data from a server, returning machine-readable data (usually JSON) rather than a human-readable web page.
Access levelA classification of whether a dataset can be made public. DCAT-US uses three values: public, restricted public, non-public.
Bulk downloadA complete copy of a dataset downloadable as a single file (CSV, JSON, XML). W3C Best Practice 17.
Catalog (data catalog)A structured list of datasets with metadata. The published form of a data inventory. DCAT Catalog class.
CSV (Comma-Separated Values)A plain-text tabular data format; one row per record, columns separated by commas. The simplest machine-readable format for tables.
Data dictionaryA document defining the fields, types, and allowed values in a dataset — the schema. DCAT-US describedBy field.
Data governanceThe policies, roles, and processes that determine who owns, approves, maintains, and protects data.
Data inventoryA complete list of all datasets an organization holds, with owner, format, cadence, and privacy classification. The first step of any data program.
Data stewardThe person responsible for a specific dataset's quality and updates.
DCAT (Data Catalog Vocabulary)The W3C international standard (Recommendation) for describing data catalogs in RDF.
DCAT-USThe US federal profile of DCAT, expressed as a JSON schema (data.json). Also called the Project Open Data Metadata Schema.
DistributionA specific downloadable file or API endpoint representing one form of a dataset. DCAT Distribution class; DCAT-US distribution field.
Endpoint (API)A specific URL at which an API serves a specific piece of data.
FOIL (Freedom of Information Law)NY Public Officers Law Article 6, governing public access to government records.
FormatThe file type of a distribution — CSV, JSON, XML, PDF, GeoJSON. DCAT-US format and mediaType fields.
GeoJSONA JSON-based format for geographic features (points, lines, polygons) with attributes. The modern web-mapping standard.
GraphQLA newer API query language allowing clients to request exactly the fields they want. Not required for municipal data programs.
HTML tableData displayed in a web page's table tags. More machine-readable than a PDF but fragile and not a substitute for downloadable files.
JSON (JavaScript Object Notation)A text format for nested/structured data; the modern standard for web APIs.
JSON-LDJSON for Linked Data; a way to embed structured metadata (like schema.org Dataset) in web pages.
Machine-readableA format that a computer can parse automatically without human interpretation. CSV, JSON, XML, GeoJSON are machine-readable; PDF and styled HTML are not.
MetadataData about a dataset — title, description, publisher, contact, update frequency, license, format, last-modified date. W3C Best Practices 1–3; DCAT-US required fields.
Open dataData that is publicly available, machine-readable, openly licensed, and free to use and redistribute.
PDF (Portable Document Format)A fixed-layout document format designed for printing and reading. NOT machine-readable for data extraction despite being electronic.
PII (Personally Identifiable Information)Information that identifies a specific individual. Must be reviewed and usually redacted before publication.
Rate limitingRestricting the number of API requests a consumer can make in a time window. Implemented by an API gateway.
REST APIThe most common style of web API, using HTTP methods (GET, POST, etc.) and URLs to access data resources.
RSS / AtomXML feed formats for publishing streams of dated items (news, agendas, notices).
SchemaThe formal definition of a dataset's fields, types, and allowed values. W3C “structural metadata”; DCAT-US conformsTo.
Schema.orgA vocabulary (maintained by Google, Microsoft, Yahoo, Yandex) for describing things on the web, including a Dataset type for data discoverability in search.
ShapefileA binary GIS format (a bundle of files) for geographic data; the long-standing professional GIS standard.
Spatial coverageThe geographic area a dataset describes. DCAT-US spatial field; W3C DCAT dcat:spatial.
Structured dataData organized in a consistent, machine-readable structure (tables, objects) with defined fields — as opposed to unstructured text/HTML/PDF.
Temporal coverageThe time period a dataset describes. DCAT-US temporal field.
Unstructured dataData in a format not readily parsed by computers — prose text, PDFs, styled HTML pages.
ValidatorA tool that checks whether data conforms to a schema (field types, required fields, allowed values).
XML (eXtensible Markup Language)An older structured-data format using tags; still common in government and GIS systems.

End of Data Organization Best Practices Guide.