Skip to main content
Every figure the API returns is defined here, and only here. The same words appear in the API reference, in the AI connector’s tool descriptions, and behind the How is this calculated? button in Scoutworks. If a definition changes, the changelog says so, even when the shape of the response does not.

Node metrics

The metric values of GET /nodes/metrics. Each row is one figure for one group or node, one section and one night.

member_count

Members. Active memberships of young people. A young person in two groups counts once in each.
  • Counts each active membership whose young person is not archived.
  • A young person in two groups counts once in each group, so a total above those groups counts them twice.
  • To count each young person once, read young_people_count.
Sections: One row per section, by the section’s age group, whichever group it belongs to. A membership with no section is unassigned. The section rows sum to all exactly. How fresh: Built each night. A group that stops sharing, or moves to another district, leaves the totals above it at the next build, within 24 hours.

waiting_count

Waiting list. Open waiting list entries.
  • An entry counts while it is received, contacted or offered. Entries that have joined, withdrawn or been removed do not.
  • A child on two groups’ waiting lists counts once on each.
Sections: One row per section the entries are waiting for, by its age group. An entry with no section chosen is unassigned. The section rows sum to all exactly. How fresh: Built each night. A group that stops sharing, or moves to another district, leaves the totals above it at the next build, within 24 hours.

net_growth_12m

Net growth (12 months). Memberships that started minus memberships that ended, over the 12 calendar months (UTC) up to and including the month the figure was built.
  • A membership started when its join date falls in the window, whether or not it has ended since.
  • A membership ended when it was archived in the window. An archive from before archive dates were recorded is dated by the last change to the young person’s record.
  • So a young person who joined and left inside the window counts as one that started and one that ended: no change.
  • A negative value means more memberships ended than started.
Sections: all only. The section a young person joined is not kept, so a split by section would mislead. How fresh: Built each night. A group that stops sharing, or moves to another district, leaves the totals above it at the next build, within 24 hours.

young_people_count

Young people. Young people with an active membership, each counted once, however many groups they belong to.
  • Counts each young person, not archived, with at least one active membership in the group or node or in any group below it that shares data with it.
  • A young person in two groups counts once, so a total above those groups can be lower than the sum of their own young_people_count. Never add value or ownValue across rows to get a total: read the node’s own row.
  • Counted directly each night, not added up from the rows below, so it is never stale.
Sections: One row per age group, plus unassigned. A young person counts once in each age group they are in, so a child who is a Cub in one group and a Scout in another counts in both rows but once in all. The section rows can add up to more than all. How fresh: Built each night. A group that stops sharing, or moves to another district, leaves the totals above it at the next build, within 24 hours.