Knowledge Base
PressPrimer Assignment

Usage and Rate Limits

School counts every AI request and gives administrators control over how many are allowed: per-user limits, per-teacher daily budgets, and site-wide caps, with a choice between blocking over-limit requests and simply recording them. In earlier versions the limit was fixed at 100 requests per hour site-wide; that limit is now fully adjustable, and existing sites keep it as their editable starting value after upgrading.

What Counts as One Request

One logical AI operation is one request:

  • A grade suggestion counts as one request, whether triggered manually or by auto-grade
  • A proofreading pass counts as one request, no matter how many chunks it processes internally
  • Regenerating a suggestion counts as a new request
  • Failed provider calls still count — the request was made, even if the provider errored

Manual requests count against the person who clicked the button. Auto-grade requests count against the assignment’s owner, since no one is at the keyboard when the queue processes them.

Configuring Limits

Navigate to Assignments > Settings > AI and find the rate limiting section. Only administrators (or users with the ppas_manage_ai_rate_limits capability) can see and change these settings — teachers don’t manage spend guardrails.

Toggle Enable rate limiting on, then set any combination of:

  • Per user, hourly — requests each user can make in a rolling hour
  • Per user, daily — requests each user can make in a rolling day
  • Site-wide, hourly — total requests across the whole site per rolling hour
  • Site-wide, daily — total requests across the whole site per rolling day

Leave any field blank for no limit of that type. Windows are rolling, not calendar-based: a request made at 2:15 stops counting against the hourly window at 3:15.

Teacher Budgets

The Teacher budgets section lets you give a specific teacher their own daily cap, overriding the per-user daily limit for that teacher only. Click Add budget, choose the teacher, and set their daily request count. Use this to give a power user more headroom, or to rein in a heavy spender, without changing the default for everyone else.

Enforcement Mode

When a limit is reached, a site-wide setting decides what happens:

  • Block further requests — over-limit requests are declined with a message naming the limit that was hit and when it resets. The grading interface shows this inline. Queued auto-grade items are not dropped — they wait and retry once capacity returns.
  • Allow, but record the overage — requests proceed normally and the overage is recorded. Use this mode to observe real usage patterns before turning on hard blocking.

Both modes fire the same developer action (see below), so integrations can react to limit events either way.

Usage Visibility

For administrators: the settings screen includes a Usage Today panel showing site-wide totals (requests in the last hour and the last 24 hours), the most active users today, and how much of each teacher budget has been consumed. Click Refresh usage for current numbers.

For teachers: the grading interface shows a requests-remaining indicator (for example, 12 AI requests remaining this hour) that updates after every request. Teachers see their own remaining count without needing any settings access.

Provider-Side Limits

Your AI provider also enforces its own rate limits independently. If an OpenAI or Anthropic rate limit is hit before your site’s limits, you’ll see an error from the provider in the suggestion panel. Provider limits typically scale with your account tier — consult your provider’s documentation if you need higher limits.

Get Tips, news & Discounts to your inbox

Get your own demo site

Get Tips, news & Discounts to your inbox