# MISSING_INPUT — The engine needs an input the case did not supply ## What it means Some questions can only be answered with the help of an outside input: an official calendar for counting working days, a dataset the package refers to, a context field the computation reads. The package names what it needs, but only the case can supply it. When the input is absent, the engine stops that question instead of inventing the missing piece: the answer records what was missing, not a guess. This status is about the case, not the package. The rules are fine; they simply have nothing to count with. ## When you see it ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity Applicant; relation application_filed(a: Applicant, on: Date) kind empirical { key(a); } relation reply_due(a: Applicant, due: Date) kind institutional; deadline policy WORK_DAYS { start_count next_day; include_end true; roll no_roll; } rule ReplyDeadline strict { for a: Applicant; for on: Date; when application_filed(a, on); then reply_due(a, add_business_days(on, 5 business_day)); } ``` ```lawtest language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; test "no calendar on file" { given { context { legal_time @2026-03-01; decision_time @2026-03-01T09:00:00Z; knowledge_time @2026-03-01T09:00:00Z; timezone "UTC"; deadline_policy WORK_DAYS; } assert application_filed(entity_ref("urn:demo:diagnostics:ann"), @2026-03-02) { origin case_input; } } evaluate truth(reply_due(entity_ref("urn:demo:diagnostics:ann"), @2026-03-09)); expect evaluation_status == MISSING_INPUT; } ``` Working days are counted on the official calendar, and this case selects no calendar. The deadline cannot be counted, so the question ends here. ## What to do Supply the missing input in the case: pin the calendar the count should use, attach the dataset the package refers to, or fill in the context field the message names. Then ask the question again — the package needs no changes. ## Related - [Testing a package](/language/testing-a-package/) — how scenarios pin outcomes. - [MISSING_POLICY](/diagnostics/MISSING_POLICY/) — when the counting rule itself is unselected.