Skip to content

Status meanings

Every Advisory answer and every requirement node in uwwoe carries one of six statuses. This page tells you what each means in plain language.

The full formal definition lives in the query evaluation semantics spec. This page is the version you read first.

The six states

satisfied

The requirement is met by your current Kanban state, with a clean explanation tree and no unknowns or conflicts in the relevant branch.

Example: You have MATH 137 marked taken (with a passing grade), and the requirement is “MATH 137 or MATH 147”. Advisory returns satisfied with missing_options: [] and a source reference to the prerequisite string in the Kuali catalog.

not_satisfied

The requirement is not met, no alternative branch resolves, and uwwoe has the data to say so confidently.

Example: A credential requires “complete 2.0 units of 4th-year Pure Math courses”. Your Kanban contains zero 4th-year PMATH courses. Status: not_satisfied, with a list of qualifying courses in missing_options.

partial

Some sub-requirements are met, others are not. Common for credential requirements where you have done half the requirement and the rest is outstanding.

Example: A minor requires “five of the following: ACTSC 221, ACTSC 231, AFM 101, AFM 102, BUS 121W”. You have ACTSC 221 and AFM 101 marked taken. Status: partial, with missing_options listing the three options that would close the gap.

unknown

uwwoe cannot tell whether the requirement is satisfied. This is the most important status to understand correctly. It is not the same as not_satisfied. Common causes:

  • The requirement contains opaque source text the parser turned into an UnparsedRequirement (ADR 0005).
  • The requirement references courses outside the current index (e.g., a non-Math-faculty course we haven’t yet indexed).
  • A grade threshold applies but your Kanban entry has no grade.
  • The evaluation engine returned engine_unknown or hit a timeout — by policy (ADR 0018) this is mapped to academic unknown, never to not_satisfied.

The unknowns[] array on the response carries unknown_reason codes so you can see why the status is unknown.

Example: A prerequisite reads “permission of department”. The parser cannot evaluate that. Status: unknown. Action: verify in Quest or with the department.

conflict

Two parts of your plan contradict each other.

Example: You have both MATH 137 and MATH 147 marked taken. The catalog lists them as antirequisites — you may receive credit for only one. Status: conflict. The response includes a conflict_reason and a source reference to the antirequisite rule.

Example: A course is listed under two subject codes (cross-listed) and you have both entries marked taken. Status: conflict for duplicate-credit, with a source reference to the cross-listing record.

not_applicable

The requirement does not apply to your state — for example, a requirement gated on program enrollment that doesn’t match your declared program, or a rule that has been superseded by a newer catalog version.

Example: A 1A-level requirement evaluated against a 4B-level student who has long since cleared it via a different path. Status: not_applicable, no missing_options.

How statuses combine

When a parent requirement has child sub-rules, uwwoe combines child statuses using rules from the query evaluation semantics spec. A few common combinations:

  • all_of([satisfied, satisfied, satisfied])satisfied.
  • all_of([satisfied, not_satisfied, satisfied])not_satisfied.
  • all_of([satisfied, unknown, satisfied])unknown (conservative).
  • any_of([not_satisfied, satisfied, not_satisfied])satisfied.
  • any_of([not_satisfied, unknown, not_satisfied])unknown.
  • A conflict anywhere in a branch propagates upward and is reported on the parent.

The principle: uwwoe is conservative. When in doubt, report unknown rather than guess at satisfied or not_satisfied.

Reading the explanation tree

Every status comes with a tree. Leaves are individual conditions (e.g., “MATH 137 taken”); internal nodes are logical combinators (all_of, any_of, choose). Each node carries its own status, completeness, and source reference. Click any node in the in-app inspector to see the source-of-truth excerpt.