Data ethics
Our data paradigm
Last updated July 31, 2026
CourseTrees is independent and student-built, not affiliated with or endorsed by any university. It is free to explore, and optional paid plans may be offered in the future. CourseTrees will never sell data or paywall public catalog data. We can only ask students to trust the map if we are careful with data, so this page covers what we hold, where it came from, and what the privacy and ethics rules that apply to us mean for how we treat it. In short: the course data we display is factual and public, the grade distributions we show are aggregate and de-identified, we suppress any group small enough to risk identifying a student, we never sell personal data, and we honor access, deletion, opt-out, and takedown requests.
You can also read the data paradigm (markdown; PDF regeneration pending) and download our ethics statement as a PDF.
What data we hold
- Public catalog data: course codes, titles, descriptions, prerequisites, and offering history, gathered from each school's public course catalog. This is factual information about courses, not about people.
- Aggregate grade distributions: where a school publishes them or makes them available through public-records channels, we show the distribution of grades for a section or term as counts and percentages. We also show student-reported grade distributions from course-feedback surveys when available, labeled “Student-reported.” These are group statistics. They are not tied to any student.
- Public course and professor ratings: coarse, aggregate signals drawn from public sources, shown under a general community label, never attributed to a named individual reviewer.
- Optional account data: if you sign in with a school email to post, we store your email, a small profile, and what you post. We email you about once a month with what we shipped, and you can turn that off in your settings or from any of those emails. Browsing needs no account, and your school, courses taken, and plans stay in your own browser. Full detail is in our privacy notice.
FERPA: why our data is not protected education records
The Family Educational Rights and Privacy Act (FERPA) protects a student's education records: personally identifiable records that a school or its agents keep about that individual student, such as their transcript, grades, and enrollment. It governs institutions that receive federal funding and the records they hold about identified students.
CourseTrees is not a school, and we do not hold education records. The two kinds of data we display are different in kind from a protected record:
- Public catalog data describes courses, not students. A course description or a prerequisite list is not personally identifiable information about any individual.
- Aggregate grade distributions describe a group, not a person. A statement that a section of 120 students earned 30% A grades says nothing identifiable about any one of them. FERPA itself treats properly de-identified, aggregated information as outside the definition of a protected record, as long as a student cannot reasonably be identified from it.
The key safeguard is de-identification. To keep aggregate data from becoming re-identifying, we apply the minimum cell-size floor described next.
Our grade-suppression floor: a minimum cell size of 5
We never display a grade distribution for a group small enough to risk re-identifying a student. Our floor is a minimum cell size of 5. If the number of students behind a distribution, or behind a cell within it, falls below 5, we suppress it rather than show it.
Small groups are where aggregate data stops being anonymous. In a section of three students, a single grade can point to a single person, especially when someone already knows who was enrolled. A floor of 5 is a widely used threshold for reporting aggregate education and health statistics without exposing individuals. We treat it as a hard minimum, not a goal.
GDPR: rights for people in the EU and EEA
The General Data Protection Regulation (GDPR) governs the processing of personal data of people in the European Union and European Economic Area. Most of what we show is not personal data at all, but the account data of a signed-in user is, and we treat it accordingly. If GDPR applies to you, you have the right to access the data we hold about you, to have wrong data corrected, to have your data erased, to restrict or object to certain processing, and to receive your data in a portable format.
We rely on your consent, given when you choose to sign in and post, and on our legitimate interest in running a study aid, as our bases for processing the small amount of account data we hold. We do not sell personal data and we do not use it for advertising. To exercise any right, email coursetrees@gmail.com.
CCPA and CPRA: rights for California residents
The California Consumer Privacy Act (CCPA), as amended by the California Privacy Rights Act (CPRA), gives California residents rights over their personal information. If you are covered, you have the right to know what personal information we collect and how we use it, to delete the personal information we hold about you, to correct inaccurate information, and to opt out of the sale or sharing of personal information.
We do not sell or share personal information as those terms are defined by the CCPA and CPRA. There is nothing to opt out of on that front, and we will not start selling your data. To make a request, email coursetrees@gmail.com. We will not treat you differently for exercising any right.
Data minimization
We collect as little as the site needs to work. Browsing requires no account. Your school, the courses you mark as taken, and any plan you build stay in your own browser and are never uploaded to us. Analytics are coarse and non-identifying: we strip course, plan, and other student-specific values from the URL before recording a page path, we do not send raw search text or course titles, and we do not run session recording. If you never sign in, we hold no account for you.
How Cam works
Cam is a chatbot, but there is no language model behind it. There are 25 question types it knows how to answer: what a course requires, how grades came out, a term-by-term path to a course, what a concentration needs, how professors are rated, when a course runs, and so on. Ask one of those and Cam matches your wording to it, runs the single database lookup that goes with it, and drops the rows that come back into a fixed template. Every course code in an answer comes from a row we list underneath it.
Most answers involve no language model at all. When your question matches one of the question types above, the answer is a database lookup dropped into a fixed template — no provider, no prompt, no generated text, and no model-inference energy or water cost on top of the single read. Ask something the engine cannot match and, where Cam is switched on, the question is sent to Groq to be answered conversationally against the same catalog data. Every answer tells you which of the two you got, and answers built from catalog rows list those rows underneath.
An earlier version of Cam did call a third-party language model. This page used to disclose that, and it cited the model-pricing and rate-limit pages we were using as the basis for its cost and energy footprint. That inference layer is gone from the product now. Those citations described something CourseTrees no longer does, so we took them down instead of leaving them up.
Here is where Cam stops:
- Ask something outside those question types and Cam says so rather than guessing at it.
- If a school is missing a dataset, Cam names the school and says what is missing instead of filling the gap. Many schools have no concentration data at all, and coverage varies everywhere.
- Deterministic does not mean correct. An answer is only as good as the catalog row behind it, and both catalogs and our prerequisite parsers contain mistakes.
- Questions are matched by pattern, so unusual phrasing can land on the wrong question type or be refused. The sources under each answer are there so you can check what it actually read.
- Cam is a study aid, not academic advice. Confirm anything that matters against the official catalog and your advisor before you register.
Cam reads the same public catalog, grade, and ratings data described above, scoped to the school you are viewing, through the same access controls as the rest of the site. The engine itself is handed only your question and which school you are looking at, not who you are. What is sent and what is kept when you ask is set out in our privacy notice.
How we treat catalog sources: robots and Terms
We gather public catalog data with automated tools, at a respectful rate that does not burden a school's systems, and we attribute each source with a link back to the official catalog. Before we add a source, we review its published Terms and its robots rules, and we design our collection to stay within normal, respectful use rather than aggressive bulk harvesting. When a source signals that automated access is not welcome, we respect that signal. Coverage varies by school as a result, and we would rather have less data than data we should not have taken.
The ACM Code of Ethics
We hold ourselves to the professional standards in the Association for Computing Machinery (ACM) Code of Ethics and Professional Conduct. In practice that means:
- Avoid harm. We weigh the effect of our data choices on students, and we suppress anything that could identify an individual.
- Respect privacy. We collect the minimum, keep personal data out of what we publish, and protect the little account data we hold.
- Be honest and trustworthy. We describe our data and its limits plainly, including where coverage is thin or a source is only the catalog.
- Respect the work and rules of others. We attribute sources and follow their Terms and robots rules.
Opt-out and takedown
We provide a clear way to have data changed or removed:
- Instructor or individual opt-out. If you are an instructor or an individual and you want data associated with you removed or excluded, email coursetrees@gmail.com and we will act on it.
- Per-source takedown. If you represent a university or a data source and you want data corrected or removed, email coursetrees@gmail.com. We will respond promptly and, where appropriate, stop collecting from that source.
- Correcting a specific course. If a course detail looks wrong, use the report button in any course panel, or email us.
Contact
Questions, opt-out requests, and takedown requests all go to the same inbox. Email coursetrees@gmail.com.