SEC Cyber Disclosure

Build the Item 1.05 Form 8-K a US public company files when it decides a cybersecurity incident is material.

The clock the rule sets runs four business days from the materiality determination, not from the incident and not from discovery. Those are three different dates, and counting from the wrong one is how a filing is late. The determination date is the input, and the deadline is counted from it in business days.

The Attorney General delay is the one thing that stops that clock, and it requires a written national-security or public-safety justification. Asking for the delay without one is refused here rather than at the filing.

What comes back is a drafted artifact for counsel, as Markdown to read and JSON to file. Whether an incident is material is a judgment the registrant makes; this writes up the decision, it does not make it.

b.secCyber.eightKArtifact(opts) #

stable0.8.25sec-cybersoc2
{
  incidentId:               string,   // the registrant's own incident identifier; required
  registrant:               object,   // { name, cik }; both required
  materialityFinding:       string,   // one of b.secCyber.FINDINGS; required
  materialityReasoning:     string,   // why the finding was reached; required
  nature:                   string,   // what happened; required
  scope:                    string,   // what it reached; required
  timing:                   string,   // when it happened and was contained; required
  impact:                   string,   // effect on operations and finances; required
  detectedAt:               number,   // epoch ms the incident was detected
  materialityDeterminedAt:  number,   // epoch ms the determination was made; defaults to now
  agDelayRequested:         boolean,  // default false — the Attorney General delay
  agDelayJustification:     string,   // required when the delay is requested
  audit:                    boolean,  // default true
}

Draft the Item 1.05 disclosure and answer { artifact: { markdown, json }, deadline, deadlineBusinessDays }. deadline is epoch milliseconds, counted four business days from materialityDeterminedAt and skipping Saturdays and Sundays.

materialityFinding is one of b.secCyber.FINDINGS: "material", "not-material" or "pending". The finding is recorded as given, since a draft that says the determination is still pending is a different document from one that says the incident was material.

agDelayRequested: true requires agDelayJustification and is refused without it. With the delay requested, deadlineBusinessDays answers null, because the four-day count no longer describes the filing.

The draft is an input to counsel, not a filing and not advice.

var b = require("@blamejs/core");
var out = b.secCyber.eightKArtifact({
  incidentId:              "IR-2026-0042",
  registrant:              { name: "Example Corp", cik: "0000320193" },
  materialityFinding:      "material",
  materialityReasoning:    "Customer records were exfiltrated.",
  nature:                  "Unauthorized access to a database.",
  scope:                   "One production database.",
  timing:                  "Detected 2026-03-01, contained 2026-03-02.",
  impact:                  "Under assessment.",
  materialityDeterminedAt: Date.parse("2026-03-02T00:00:00Z"),
});
out.deadlineBusinessDays;   // → 4

Last updated 2026-10-12T14:21:56.879Z by seeder.