Violations, buildings, deadlines and the map
How to find out what is wrong with a building and what is owed, and how to turn that into work: tracking buildings, assigning them to clients, working the violations explorer, the Deadlines worklist, a single apartment, and the citywide map. It is written for project managers and dispatchers. Starting a project from any of these is in running a project.
Before you start
- Public data is loaded on a schedule. Violations, complaints, hearings, liens and 311 records come from city agencies through a nightly sync. What you see reflects the last sync, and some agencies' records can be incomplete. The Violations page says so when you view the whole city.
- Track the buildings you work on. Tracking is what puts a building in your portfolio, in the Deadlines worklist and in the "already in Complied" scope of the map.
- Assign a client to each tracked building. Projects, the client portal and document sharing all follow the building's client.
- Apartments come from agency records. An apartment appears only after an agency record has named it, and the app never adds or invents one. Deadlines are therefore computed for the apartments on file, and every view that counts them says how many apartments it can see out of the building's total.
- You need the view-buildings permission for Buildings, Violations and Deadlines, the view-clients permission for Clients and the view-map permission for the map (team and roles).
Buildings (/buildings)
The list shows the buildings your company tracks, grouped by borough. The side rail narrows to buildings with open lead orders, overdue lead orders, or built before 1978 (presumed lead). The search box filters your list; below it, the citywide register search finds buildings you do not track yet, each with a Track button.
A building's page (/buildings/:id) shows the identifiers (BIN, BBL, borough, year built, total
units, units on file, HPD registration), a Tracked or Not tracked status, and:
| Section | What it holds |
|---|---|
| Track building | Puts the building in your portfolio (needs the manage-buildings permission) |
| Client | The client this building belongs to; choose one from the list |
| Violations, Complaints | Counts of the building's open records |
| Building contacts | The tenant and the superintendent (name and contact), used to reach the building |
| Deadlines | What the building owes, and how many of its apartments the app can see |
| Our work here | The building's projects, open and closed, and Start a project |
Clients (/clients)
Add client opens a form with the client's name, whether it is a Client or a Subclient,
contact email, phone, address, mailing address, where they heard about the company, and whether
the client requires a notarized affidavit. The list is split into Active and Inactive, and a
client's page (/clients/:id) has Buildings and Projects tabs and its contact details.
Portal logins for a client are not managed on this page.
Violations (/violations)
The violations explorer lists agency records with a scope switch at the top:
- My Buildings: only the buildings you track.
- Citywide: the whole public record. Apartment search and the list-only view apply here.
Filter by agency, status (Open, Closed, Dismissed), HPD order family (Hazard 616/617/624, Turnover 621/622/623/625, RPO audit 618/619/620, Local Law 31 626), class (A, B, C, I), and deadline (Overdue, Due in 30 days, Due in 90 days, No deadline, or a custom range). In My Buildings you can also filter by client and by what is owed (the same obligation filters as the map). In Citywide you can filter by borough or one building.
Choose how to group the rows (by building, client, client then building, building then unit, unit
or none) and the view: List, Board or Calendar (My Buildings only). Export page or
Export CSV downloads what is shown, and the map link opens the same filter on /map.
Saved views keep a filter set.
A row opens the violation page (/violations/:id) with:
- a next action card that says what is due and what happens if it is missed, an order clock with the correct-by, certify-by and file-by dates, and, for a blocked order, what blocks it;
- the order's resolution paths (the same options as Decide), related orders in the unit, the agency facts, the location parsed from HPD's wording, a timeline and the raw record;
- Start the work, which creates a violation-origin project with this violation linked and opens its Decide stage, or Open project when one already exists (needs the manage-projects permission); Copy summary and a link to the building.
Deadlines (/deadlines)
Deadlines is the worklist of what each tracked apartment needs next, grouped by client and building. It lists needs from three families of duty:
| Family | Needs |
|---|---|
| Annual-notice cycle | Needs annual notice → awaiting tenant response → no response, escalating (certified mail or a DOHMH notice) → needs annual investigation |
| Local Law 31 | Needs the one-time full-unit XRF test |
| Exemption monitoring | A Lead-Safe exemption's monitoring visit or risk assessment is due |
| Records | Missing turnover, non-violation-work or previous-owner records |
An LL31 test that has not happened is "Needs test", never overdue, because a late test still satisfies the duty. Duties with no deadline are never marked overdue.
Use the tabs Upcoming, Overdue and Done this year, filter chips (annual-notice cycle, notices we run for the client, LL31, exemption, overdue, next 30 days, next 90 days), search, and the client filter. A coverage banner lists tracked buildings with no apartments on file, so a short list is not read as "all clear". On each row:
- Log… opens a drawer to record what was done (notice delivered and by which method, response received, whether a child under six lives there, escalation dates, investigation, turnover work, non-violation work, a monitoring visit), which advances the apartment to its next need;
- Create project (with the manage-projects permission) opens the project form prefilled from the need, and the project is recorded against it.
An apartment (/units/:id)
The apartment page shows one apartment's facts (floor, child under 6, last turnover, Local Law 31 test and date, client, audit year) and three tabs: Needs (with Log… and Create project on each need), Exemption (New application, and Log monitoring visit for a granted exemption) and Related (the apartment's violations and projects). Edit unit facts records the child-under-6 flag, the last turnover date and whether the LL31 test is on record. These facts start unknown and stay unknown until someone records them; the app never assumes an answer.
The Complied Map (/map)
The map shows the whole city's buildings and records, and every choice you make changes the map, the totals, the ranked list and the pins together.
- Lens (top left) is a preset question: Open lead orders, Overdue lead orders, Child at risk (open 618), Records overdue (RPO), Presumed lead (pre-1978), Our portfolio, Everything open and Every building.
- Ask the map turns a sentence such as "overdue lead orders in Brooklyn, 20+ units" into filters.
- Facets narrow further: Records (department, then category, then order number), Status (overdue, in the cure window, postponed, hearing scheduled, balance owed, contested by you, or an agency's own status names), Whose (on the public record, already in Complied, or not yet in Complied), Borough, Year built, Units, and Obligations.
- Obligations facets read your tracked apartments: what is owed (needs annual notice, awaiting tenant response, no response and escalating, needs annual investigation, needs LL31 test, Lead-Safe monitoring due, missing records), when (overdue, next 30, next 90) and what is true of the apartment (children under 6, turnover in the last year, investigation done, LL31 tested). Choosing any of them limits the map to your tracked buildings.
- The results rail on the right ranks buildings by risk, most overdue or largest. Each row expands into the building's figures (open, overdue, balance owed) and its top orders, with Copy link to reopen it on the same filter. Buildings show In Complied or Prospect.
Departments whose own feeds are not loaded (FDNY, DOHMH, DSNY) appear disabled; their summonses show under ECB / OATH. How the map answers a query is described in the map architecture.
Search and shortcuts
Ctrl+K (or ⌘K) opens a palette that searches buildings and recent pages and jumps to any
destination you can open, including pages that are not in the sidebar such as Floor plans,
New project and Team roles.
Under the hood
Ingestion · Map · Data model