Skip to content
🚧 These docs are a work in progress. The information here may not be complete or accurate.

How It All Fits Together

This is the most important page to read before anything else. Kanri has a handful of concepts that sound similar but mean very different things. Understanding how they connect will make everything else click.

The most common source of confusion in Kanri is the difference between a Membership and a Subscription. They are two completely separate records.

A Membership is the enrolment record. It answers: which program is this member in, and what is their current status? When you enrol a new student in Adult Karate, you’re creating a Membership.

A Subscription is the billing record. It answers: how much does this member pay, and when does the charge go out? When you set up automatic monthly billing for that student, you’re creating a Subscription.

A member can have a Membership without a Subscription. A cash-paying member or someone on a complimentary place is a common example. A member can also have a Subscription without a Membership, which is usually a data error worth fixing. The Only Memberships and Only Subscriptions reports exist specifically to help you find these mismatches.

A Program is the top-level activity you offer: “Adult Karate”, “Junior Ballet”, “Swim Level 1”. Members are enrolled into programs via Memberships.

Each program contains Classes, which are the named types of training within it. “Adult Karate” might have “Karate (White–Blue Belt)” and “Karate (Blue–Black Belt)” as separate classes. Each class has a “counts towards attendance” setting. If you turn it off, attending that class won’t count toward a member’s level promotion requirements.

Classes can optionally have Variants, which are sub-types that distinguish the format of a session without creating a whole new class. “Karate (Blue–Black Belt)” might have a “Sparring” variant and a “Kata” variant. Variants are optional; a class with no variants just runs as itself.

A Schedule is a recurring timetable entry. It defines which class runs, on which days, at what time, and generates individual Sessions from that pattern. Sessions are the actual occurrences members attend. When you take attendance, you’re marking members as present on a specific session. If you change a schedule’s time or days, you sync it to push those changes to future sessions. Past sessions are never affected.

A Billing Plan is a named payment product: “Monthly Karate”, “Annual All-Access”, “Drop-In Pass”. Think of it as a product on your price list.

Each plan has one or more Prices, which are the actual amounts and billing intervals. “Monthly Karate” might have an Adult price of C$120/month and a Junior price of C$80/month. Whether plans can have multiple prices is controlled by a school-level setting. See Subscription Behaviors for details.

A Subscription links a specific member to a specific price on a plan. Once active, Kanri charges the member automatically on that interval, and the payments appear in their payment history.

Programs can optionally have Levels, which are a ranking system like belt grades or skill tiers. When a member is enrolled in a program they’re placed at a starting level. Each level can have requirements: a minimum number of classes attended and a minimum number of days since their last promotion.

When a member meets those requirements, they appear in the Promotions report and can be promoted to the next level, which resets their counter.

Groups are named collections of members. You can add individual members to a group directly, or attach a whole program so that every active member in that program is automatically included. Groups are currently used for sending targeted broadcasts and will be used for more purposes in future.

You run Springfield Karate. A new student, Alex, walks in. Here’s what you’d do:

  1. Add Alex as a member: enter their name, contact details, and emergency contact.
  2. Assign a Membership: enrol Alex in “Adult Karate” at White Belt, with a status of Active.
  3. Add a payment method: save Alex’s credit card or bank account.
  4. Create a Subscription: link Alex to “Monthly Karate – Adult C$120/month”. Kanri charges automatically from here on.
  5. Alex shows up for class and checks in at the kiosk, or a staff member takes attendance. Attendance is recorded against their Membership.
  6. After enough classes, Alex appears in the Promotions report and is ready to move to Yellow Belt.

That’s the core loop: enrolment → billing → attendance → promotion.

TermWhat it means
ProgramThe activity you offer (e.g. “Adult Karate”)
ClassA type of training within a program
Class VariantAn optional sub-format of a class (e.g. “Sparring”)
SessionA single timed occurrence of a class, generated by a Schedule
ScheduleA recurring timetable entry that generates Sessions
MembershipA member’s enrolment record in a program
LevelA rank within a program (e.g. “White Belt”)
Billing PlanA named payment product (e.g. “Monthly Karate”)
PriceA specific amount and billing interval on a Plan
SubscriptionA member’s recurring billing record
GroupA named collection of members used for targeting

For definitions of every term in Kanri, see the Glossary.