Frequently asked questions
Is uwwoe official?
No. uwwoe is not affiliated with the University of Waterloo. It is an independent exploration tool built on top of the public Kuali catalog. See Advisory only.
Is my plan saved?
Yes — anonymously. When you first interact with the Kanban, uwwoe issues an opaque bearer token (≥256 bits) and stores an HMAC verifier server-side. Your token is the only way to access your state. We do not know who you are; we do not have your email, name, or student number.
See Your plan.
Can I delete my plan?
Yes. DELETE /api/v1/state/current is a hard delete — the underlying
row is removed and the same token returns 401 unauthorized thereafter,
indistinguishable from any other unknown token. Only a minimal tombstone
remains (no academic state contents). See ADR 0019.
Why does Advisory say “unknown” on a requirement?
unknown means uwwoe could not resolve the requirement. Common causes:
- The requirement contains opaque source text the parser did not turn
into a structured condition (an
UnparsedRequirementper ADR 0005). - The requirement references data outside the current index (a non-Math-faculty course not yet indexed).
- The requirement uses a rule kind not yet in uwwoe’s evaluation taxonomy.
unknown is not the same as not_satisfied. uwwoe is conservative —
it will report unknown rather than guess. Verify in Quest.
Will uwwoe ever be authoritative?
No. The advisory-only constraint is permanent; it is in the LICENSE. uwwoe’s purpose is to make exploration faster and more legible; the authority lives with Quest and your advisor.
Can I use uwwoe for a non-Math program?
Probably not yet, in any useful way. The published index currently covers Math + engineering-support subjects. Courses and credentials from Arts, Health, Environment, and non-Math Science are not indexed. See Scope and coverage.
How fresh is the data?
The index is rebuilt out-of-band and republished as a deployment
operation. There is no live mirror of Kuali. The built_at timestamp on
GET /api/v1/index tells you when the currently-served index was built.
Why is my answer different from UWFlow / a study group / a friend’s plan?
uwwoe answers from the current Kuali catalog at index build time. If
your friend’s plan is from a different catalog year, or UWFlow’s data is
from a different snapshot, the answers can disagree. The
catalog_version_id field on your state records which catalog your plan
was built against.
Does uwwoe handle co-op, transfer credits, or substitutions?
Partially:
- Co-op terms are representable in the Kanban as terms with no course load. Co-op-specific credential rules (e.g., minimum work-term count) are not yet evaluated by Advisory.
- Transfer credits can be added to the Kanban as
takenentries. uwwoe does not validate transfer-credit equivalence — that’s an advisor decision. - Substitutions approved by your advisor are not visible to uwwoe. If your advisor told you “X counts as Y”, you can add X as taken and uwwoe will treat it that way for your exploration, but the advisor’s decision remains the authoritative record.
What happens if I share my plan with a friend?
You can export your plan as JSON via GET /api/v1/state/current/export
and share that file. Sharing the token itself is dangerous — anyone
with the token can read, modify, or delete your plan. Treat the token
like a password.
Where is the data stored?
In a SQLite file on the Fly.io machine serving uwwoe.fyi. There is no external database, no third-party analytics provider receiving your state. Anonymous-bearer-token verifiers and academic state live together in one writable SQLite database; the read-only catalog lives in a separate SQLite file. See State and privacy.
Is there an API I can build on?
There is an HTTP API at /api/v1/* — see API reference.
It is currently used by the official uwwoe frontend and is not
versioned for third-party stability. Expect breaking changes through V1.
How can I report a bug or wrong answer?
The contact path is being firmed up alongside the public-V1 launch. For now, please include the source reference uwwoe is showing for the wrong claim with your report — that’s the fastest way to confirm whether the catalog parse or the evaluator is at fault.
Why is the project named uwscrape but the domain is uwwoe.fyi?
uwscrape is the engineering name for the project, used in the codebase and on GitHub. uwwoe.fyi is the user-facing product domain. They refer to the same thing.