---
title: "Get School Vs Consumer Stats"
method: GET
path: "/admin/school-vs-consumer"
tags: ["admin", "admin"]
---

# Get School Vs Consumer Stats

`GET /admin/school-vs-consumer`

Core engagement/retention split: school-affiliated members (an active
OrganizationMember row on an active Organization — bulk-enrolled by a
coordinator via roster import, never chose to sign up the way a consumer
did) vs organic consumer signups (no org affiliation). Blending these
into one number is what every other admin page currently does — see
docs/development/DEAD_CODE_AUDIT... no, see the 2026-09-01 admin
dashboard audit. Sync (def) + 5min cache, same reasoning as /dau /mau.

Revenue is deliberately NOT reported here as one number: schools are sold
on direct B2B contracts (see CRM), not per-seat Stripe subscriptions —
Organization.member_tier is an entitlement, not a price. Consumer revenue
already has a home on /admin/business-metrics (Stripe-tier subscription
counts); duplicating a dollar figure here under a different definition
would be exactly the "same metric, two disagreeing answers" pattern this
audit was asked to avoid. What IS reported here: population, activity,
and return-rate, split by segment — the numbers Nancy actually asked for.

## Query parameters

- `segment` string

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `45cbba31aa7d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored/changes/admin/school-vs-consumer/get.md)

---

[API](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored.md) · [All operations](https://skmtc.dev/fluentea/apis/aurqa-language-learning-platform-refactored/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fluentea/aurqa-language-learning-platform-refactored/revisions/aea5e6e7d830/schema)
