Dev.to WebDev ๐Ÿ›  Dev ๐Ÿ‘ 0 ๐Ÿ“– 6 min read

Building a deadline tracker for Pennsylvania Right-to-Know requests

I am a Pennsylvania attorney. A lot of my work involves the Right-to-Know Law, the statute that lets anyone ask a state or local agency for public records. I built Open Docket because the hardest part of a records reques

I am a Pennsylvania attorney. A lot of my work involves the Right-to-Know Law, the statute that lets anyone ask a state or local agency for public records. I built Open Docket because the hardest part of a records request is often not the request itself. It is the clock.

The problem: the law runs on a clock

Pennsylvania's Right-to-Know Law (RTKL) sets short, specific deadlines. The ones that matter most to a requester are these:

  • Five business days to respond. Once the agency's Open Records Officer receives a written request, the agency has five business days to respond. (65 P.S. ยง 67.901)
  • Silence has a legal meaning. If the agency does not respond within that period, the request is "deemed denied." Nobody sends you a notice. The denial happens by operation of law.
  • The appeal window is short. A requester generally has 15 business days to appeal a denial or a deemed denial. (65 P.S. ยง 67.1101)
  • Extensions exist. An agency can send written notice that it needs more time, up to 30 calendar days, for reasons listed in the statute. (65 P.S. ยง 67.902)

Read that list as a developer and you see a state machine with timers. Read it as a requester and you see a lot of ways to miss something.

Most people who file records requests are not lawyers. They file a request, wait, get busy, and come back to it three weeks later. By then the deemed denial has come and gone and the appeal window may be closing or closed.

The deadlines are not hard to understand. They are hard to keep track of. That is a software problem.

Why "five days" is not a simple date add

The first version of the deadline logic in my head was received + 5 days. That is wrong in several ways.

  • Business days, not calendar days. Weekends do not count. A request received on a Thursday is not due the following Tuesday.
  • The clock starts on receipt. The trigger is the date the agency's Open Records Officer receives the request, which is not always the date you sent it.
  • Day one is the next business day. The day of receipt is not counted.
  • The appeal window counts from the denial. For a deemed denial, that means counting from a date nobody wrote down.

None of this is exotic. It is the same class of problem as billing cycles or SLA timers. But a bug here can cost someone their right to appeal, so the counting has to match how the statute counts and has to be explained to the user, not hidden.

What I built

Open Docket is a web app for filing and tracking Pennsylvania RTKL requests. It is run by Securing Public Access to Records and Knowledge, LLC (SPARK).

The core idea is simple: every request gets a docket, and every docket shows where the clock stands.

What it does today:

  1. Drafts the request letter. You can preview your letter before creating an account. An email address is needed only when you are ready to send.
  2. Tracks the response deadline. The docket counts business days from receipt and shows the due date, which day of the five you are on, and the date the request is deemed denied if the agency stays silent.
  3. Flags a deemed denial. If day five ends with no response, the docket flags the deemed denial the next morning and shows the appeal deadline.
  4. Gives each request a reply address. Agencies can reply to an Open Docket address, and replies land on the docket. You confirm how a reply should be read (for example, a grant, a denial, or an extension) before the clock changes. The software does not decide that for you.
  5. Prepares an appeal package on Pro. After a denial or deemed denial, when the appeal goes to the Office of Open Records, the paid Pro plan can assemble the request, the dates, and the agency's response or silence into an appeal for you to review.

One active request is free, including the response clock and the appeal deadline. Pro adds more active requests, deadline reminder emails, export and attachments, and the appeal package.

How it works, at a high level

Each request is a small state machine. States look roughly like: drafted, sent, clock running, responded, extended, deemed denied, appeal prepared, appeal filed, closed. Transitions come from either the calendar (a deadline passes) or a user action (you confirm a reply, you mark an appeal filed).

Dates are stored, not recomputed on the fly. The receipt date, the computed due date, and the user's confirmed events are saved. When something changes, the docket recalculates forward from stored facts. That makes it possible to show the user why a date is what it is.

Time-based transitions run on a schedule. A deemed denial is not an event anyone sends. A scheduled job checks running clocks and flags requests whose response period has ended. It runs the next morning, so the flag appears after the business day is over rather than at midnight.

Humans confirm anything that changes the legal reading. An agency reply might be a full grant, a partial denial, or an extension notice. Parsing that automatically is tempting. It is also where a wrong guess does the most damage. So replies land on the docket, and the requester confirms what the reply means.

The software never files anything. Open Docket prepares. You review and file. When you mark an appeal filed, the date is recorded next to the request.

Honest limitations

Here is what Open Docket does not do, and what to watch for.

  • It is Pennsylvania only. The deadlines are built around the RTKL. Other states have different statutes and different clocks.
  • The appeal package is for the Office of Open Records only. Some appeals go elsewhere. Requests to the Attorney General, Auditor General, State Treasurer, legislative agencies, and judicial agencies follow different paths. Open Docket does not prepare appeals for those forums or for court.
  • It is not legal advice. Open Docket is a tracking and drafting tool. It does not tell you whether to appeal or whether an agency's reasons are valid. Those decisions are yours, and some situations call for a lawyer.
  • The clock is only as good as the receipt date. If the date the agency received the request is wrong, every date after it is wrong. The docket shows its inputs so you can check them.
  • You still have to read the agency's reply. That is a deliberate design choice, but it is still work.
  • It is new. Edge cases exist that I have not seen yet. If you find one, I want to hear about it.

Related: a research site for decisions

Separately, SPARK runs rtkldecisions.com, a research site for Right-to-Know decisions issued by District Attorney Appeals Officers. It is a separate project with the same goal: make the process easier to see.

Try it

If you file records requests in Pennsylvania, or you know someone who does, Open Docket is live at open.rtkldecisions.com. You can preview a request letter without an account.

If you have built deadline engines, business-day calculators, or anything that turns a statute into a state machine, I would value your feedback on the approach. Comments are open.

J. Chadwick Schnee, Esq., is a Pennsylvania attorney and the founder of Securing Public Access to Records and Knowledge, LLC. This post is general information, not legal advice.

๐Ÿ“ฐ Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes โ€” full credit and traffic to the original publisher.