Everything the old workflow needed you to do by hand

Built around one evaluation period at a time: build a rubric, run it, get results, without a spreadsheet in between.

Your rubric, your scale, built once

Rubrics are teacher-scoped, not tied to one class. Build one and assign it to every section you teach. Each criterion gets its own indicator text at every score level, so a "3" means something specific rather than a bare number.

  • Analytic mode: one shared min–max scale across every criterion
  • Holistic mode: each criterion carries its own point range, no forced averaging
  • Score interpretation table maps a numeric mean to a verbal label you define
  • Rubric and roster lock automatically on period activation, fully immutable once students start
  • Multiple evaluation periods per class (midterm, final, etc.), kept fully separate
  • Optional minimum/maximum evaluation requirements, checked against group size at creation
  • Scheduled auto-open/close per period, with manual override always available

Who it's for: Teachers with several sections of the same subject who don't want to rebuild the same rubric five times.

Rubric: Group Project

Contribution
1–4
Communication
1–4
Reliability
1–4
Initiative
1–4

Honest feedback, without the social cost

Students score each criterion with a slider bounded by the rubric's scale, add an optional private note the teacher alone sees, and an optional public note the evaluated student sees with no attribution. A confirmation screen recaps everything before final submit, a guard against a slider mis-tap on a phone.

  • Self-select or teacher-assigned groups, set per evaluation period
  • Optional self-evaluation, recorded separately and never mixed into the peer average
  • A student's results view can overlay their self-evaluation against the peer average, per criterion, as a comparison chart
  • Evaluations autosave locally first, so a dropped connection never loses a draft
  • Aggregate-only results: no student ever sees another student's individual score

Who it's for: Teachers who've seen a Google Form get quietly gamed by whoever wrote the harshest or kindest comment; anonymity here is enforced server-side, not just hidden in the UI.

JD
Rating: J. Dela Cruz
Groupmate · Final Project
3 of 5 scored
Contribution to the group4
1234
Communication3
1234

Nothing reaches a student until it's ready

Two independent gates protect what a student eventually sees: a minimum-evaluator threshold on results, and moderation on public notes. Neither is optional to route around: both are enforced at the API layer, not just hidden in the interface.

  • n ≥ 3 evaluators required before any numeric result or public note is shown
  • Public notes reviewed before release, with bulk-approve and auto-flagging
  • Teacher can exclude a specific evaluator's rating, with a required reason; the original submission is never edited or deleted, only flagged
  • Teacher can override the n≥3 threshold per student when they judge it appropriate
  • Reopening a period after release marks those results stale until re-released; any note touched after a reopen reverts to pending review

Who it's for: Any teacher handing evaluative feedback about minors to other minors. This is the part of the spec built to be airtight, not just functional.

Results: awaiting release

A. Reyes
2 of 3 evaluators, withheld
J. Dela Cruz
5 of 5 evaluators, ready to release
M. Santos
1 of 3 evaluators, withheld

Bulk import, no email required

Upload a CSV of Student ID, name, and an optional group/team column. Marka validates it before anything commits: new students, matched existing records, duplicates, and missing fields are all called out up front. Every student gets a 7-character access code, printable in bulk for handing out in class.

  • Import validation preview before committing a single row
  • One student record per teacher, linked across every class they're enrolled in
  • Codes exclude ambiguous characters, no 0/O or 1/I/L mix-ups when read aloud
  • Bulk export, print sheet, and single-student reveal for a lost code

Who it's for: Teachers who already keep a class list in a spreadsheet and don't want to type 40 names into a web form.

Roster: 10-A Section

Dela Cruz, J.7K4M9QXActive
Santos, M.2H8W5RTActive
Reyes, A.9F3N7YKReset
Cruz, R.4T6V2MQActive

Watch a period without waiting for it to close

Expand any student's row while a period is still open to see a provisional, clearly-labeled aggregate: bar chart by default, radar chart optional. A separate coverage view sorts students by evaluations received, not just given, so a self-select period can't quietly leave someone with unusable results.

  • In-progress rollup, expandable per student, marked provisional
  • Completion tracker (given) and coverage view (received), tracked separately
  • Evaluator × evaluated completion matrix
  • Unusual scoring pattern flags surfaced for a look, not treated as proof — see the full pattern-detection breakdown below

Who it's for: Teachers who want to nudge stragglers before a deadline instead of discovering gaps after the period closes.

In progress: 4 of 7 evaluations so far

Contribution
3.3
Communication
2.7
Reliability
3.6

The same rater/ratee methodology as CATME

Most peer-eval tools just average scores. Marka applies the rater/ratee statistical methodology behind CATME, Purdue's widely-used academic peer-evaluation framework, to flag patterns worth a second look, automatically, for every activated period. Every flag reaches the teacher only, worded as "worth a look," never an accusation — nothing changes a score automatically.

  • Free-riders and standout performers, flagged relative to their own class, not a fixed number
  • Overconfident and underconfident self-ratings, including a repeat trend across periods
  • Rater disagreement, straight-lining, and rushed submissions
  • Scoring cliques and mutual-inflation circles, via graph-based clique and cluster detection
  • Systematic rater bias against consensus, and suspicious mutual low/high-score pairs

Who it's for: Teachers who want free-riders, grudge scoring, and friend-group inflation caught before grades go out, not after a parent or student appeals one.

Flags: Final Project, Section 10-A

Collusion clique — 3 studentsWorth a look
Straight-lining — 1 evaluatorWorth a look
Overconfident self-ratingWorth a look
Consensus divergenceWorth a look

The pivot table, generated for you

The Consolidated Final Report is a named, one-click action available once a period has results: the direct replacement for the old export → pivot table → mail-merge step. Confidence context (n, limited-data flags) travels with the export, so a spreadsheet copy is never more misleading than the in-app view.

  • Dashboard table and CSV download, generated together
  • Multi-period side-by-side view for comparing midterm and final
  • Cross-period trend view — track a student's growth from midterm to final
  • Printable full report with an executive summary page, then one page per student
  • Evaluator-level drill-down: exclude a specific rating with a reason, and the average recalculates immediately, reversibly
  • Simplified name + General Average export for pasting into a gradebook

Who it's for: Teachers who currently combine multiple Google Forms exports by hand before they can hand results back to a class.

Class rollup: General Average

J. Dela Cruz
3.5
M. Santos
3.8
A. Reyes
2.8
R. Cruz
3.2

Your students' data never leaves your class

Every owner-scoped table carries the teacher's owner ID, and every reference between them (the class-enrollment junction, a period's roster snapshot) is a composite foreign key tied to that same owner ID. A query that forgets to filter by teacher can't accidentally leak across tenants; the boundary is enforced by the schema, not just remembered by application code.

  • No student ever receives email, only teacher accounts do
  • A period's rubric and roster snapshot on activation, then become fully immutable
  • Rate limiting on both teacher password login and student access-code entry
  • Archive vs. permanent delete kept distinct: deletion requires typing "DELETE" to confirm

Who it's for: Any school administrator who asks where student data lives before signing off on a new tool.

Tenant boundary

owner_id → studentsenforced
owner_id → classesenforced
owner_id → rubricsenforced
owner_id → class_students (composite FK)enforced

Ready to run your next evaluation period?

Free to start, no student email required.

See pricing