Proof ledger

Every fact on this site, with its source.

This page is the receipt drawer. If a number or claim appears on the home, product, gym owners, students or pricing page, it is in the table below with where it came from, the date it was checked and what is still uncertain about it. If it is not here, it is a placeholder. The counts on this page are computed from the ledger, not typed.

15

facts with a public source

7

checked on a live page

1

where sources disagree

10

placeholders awaiting an answer

Facts used

16 claims, each with a page you can open

Figures come from the site’s single statistics file, which rounds real counts down to the nearest ten, so a figure here is always a floor on the real inventory. “Checked on a live page” means a phone capture of that page ships with this site; “stated” means the page says it and nothing more; “sources disagree” means the pages show a placeholder instead of picking a side.

ClaimUsed onSourceChecked
220+ techniques in the library, searchable by position

The exact figure, 227, was last counted on 2026-07-24. The site rounds down to the nearest ten, and the library showed the rounded figure on 2026-11-01. Older home and pricing copy said "over 1000" and was replaced in CHA-3838; llms.txt rounded up to a figure ten higher and was corrected in CHA-3840.

Home, Product, Students, Pricingbjjchat.com/techniquescapture /proof/techniques.pngcode: src/config/publicStats.ts2026-11-01Checked on a live page
20+ training and study tools, all free

20 entries were counted on 2026-07-24; the code now has more tool pages, so the rounded figure is a floor. Seven of the tools need a free account to use (see the dual-state record).

Pricingbjjchat.com/toolscode: src/config/publicStats.ts2026-11-01Stated on a public page
40+ academy pages in the public directory

The directory, the stats file and the public directory API (40 academy pages on 2026-11-01, five of them verified) agree on 40+. The older /claim-gym copy said "hundreds of BJJ academies" and was corrected in CHA-3840; CHA-3841 retired that page, which now redirects to /gym-owners#claim. No count of academies that run on the software is published, so the pages quote only the directory figure.

Home, Studentsbjjchat.com/schoolscapture /proof/schools.pngcode: src/config/publicStats.ts2026-11-01Checked on a live page
One plan at $0, forever: no tiers, no per-member fees, no credit card, no trial clock, unlimited coaches and students, every future update included

The Terms of Service, section 7, say some features require a paid subscription, with fees and automatic renewal. Hosted tournament entry fees are set by organisers, and the code allows a platform fee on them that defaults to zero (backend/config/appConfig.js, PLATFORM_FEE_BPS); no fee policy is published. The pricing page shows both as pending rather than pretending they do not exist.

Pending: the Terms of Service, section 7, still describe paid subscriptions, fees and automatic renewal, while this page says $0 forever.

Home, Gym owners, Students, Pricingbjjchat.com/pricing2026-11-01Sources disagree
An academy gets on by finding or adding its listing, verifying ownership, and being approved by the BJJChat team, after which the listing shows a verified badge

The steps were published on /claim-gym and /coaching, retired in CHA-3841 and redirected to this section. The claim form itself, at /schools/claim, needs sign-in. How long review takes is not published.

Pending: typical review time for a claim.

Home, Gym owners, Studentsbjjchat.com/gym-owners#claimcode: src/app/(dashboard)/schools/claim2026-11-01Stated on a public page
3G Elizabethtown Brazilian Jiu-Jitsu: 101 Cherry St, Elizabethtown, PA 17022; (717) 350-8554; 7 weekly class times; instruction from a 2nd-degree black belt; membership covers all 3G locations

The capture does not show verification; the public directory API listed the academy as verified on 2026-11-01. Whether it may be presented as the example is still Eric's call.

Pending: 3G Elizabethtown may be shown as the example academy. The directory lists it as verified (checked 2026-11-01); featuring it is a choice for the academy and Eric.

Home, Product, Gym ownersbjjchat.com/schools/3g-elizabethtown-jiujitsucapture /proof/gym-3g.png2026-11-01Checked on a live page
Built by Chainbytes LLC; "built by practitioners, for practitioners"

No person, belt or home academy is named anywhere on the site.

Pending: whether the builders may be named, with belt and academy.

Homebjjchat.com/about2026-11-01Stated on a public page
No testimonial, named customer or customer count is published on bjjchat.com, so the pages show labelled empty slots instead

Pending: one owner quote, with name, academy and date.

Home, Gym ownersbjjchat.com/about2026-11-01Stated on a public page
Students check in from the app on their phone, or a coach checks a group into one of the day's classes from the coach dashboard; drop-ins are tracked separately

QR-code and face check-in shipped only through the public kiosk, which was retired in August 2026 (PROJECT-STATUS.md; kiosk face check-in handlers removed in CHA-2772, the QR endpoint in CHA-2771). The attendance page still advertised both until CHA-3840; CHA-3841 retired that page, which now redirects to this section. Face enrolment remains in account settings with nothing that uses it. The owner "Check-in desk" is the tournament day-of desk, not class attendance.

Product, Gym owners, Pricingbjjchat.com/gym-owners#featurescode: backend/controllers/attendanceController.js (memberCheckIn), src/components/coach/BulkCheckIn.tsx2026-11-01Stated on a public page
Unlimited coaches per gym with their own logins; promotion tracking against belt requirements; lesson plans shared, exported or private; separate curricula for kids, teens and adults; several gyms from one account

Published on the older /coaching and /attendance pages, retired in CHA-3841 and redirected to /gym-owners.

Gym ownersbjjchat.com/gym-owners#faqcode: src/app/app/coach/curriculum-builder, src/app/app/mygym (gym switcher)2026-11-01Stated on a public page
A lead pipeline, campaigns and automations are in the owner workspace; member billing and SMS are built but payments are not switched on

The production API answered 503 "Payments not activated" to its Stripe webhook on 2026-11-01, which is the dormant path in the code. Whether SMS is configured in production is not visible publicly. The compare table said "shipping this quarter" with no source and was corrected in CHA-3840.

Pending: when member billing and SMS switch on. The payments code is built, but the production API answered "Payments not activated" on 2026-11-01; SMS sends only once Twilio is configured; the lead pipeline is in the owner workspace today.

Product, Gym owners, Pricingbjjchat.com/pricingcode: backend/controllers/stripeController.js (dormant unless STRIPE_ENABLED), backend/services/smsService.js (dormant until Twilio env), src/app/app/owner/growth, src/app/app/owner/money2026-11-01Stated on a public page
Sourced comparison pages for Wodify, Gymdesk, Zen Planner, Spark Membership and PushPress

Competitor prices were re-checked against each vendor's pricing page on 2026-11-01: Wodify's entry plan is listed at $199 a month with a $99 promotional rate, not the $79 the table had carried since July 2026; Spark Membership now publishes $199 a month after a trial. Each compare page shows the date its prices were checked. The pricing page does not restate competitor prices.

Pricingbjjchat.com/comparecode: src/lib/marketing/comparisons.ts2026-11-01Stated on a public page
The round timer runs in the browser with competition, drilling and sparring presets and a ten-second warning bell, no account neededHome, Product, Studentsbjjchat.com/tools/round-timercapture /proof/round-timer.png2026-11-01Checked on a live page
The drilling tracker counts reps for one technique, takes a rep goal and times the block, no account neededProduct, Studentsbjjchat.com/tools/drilling-trackercapture /proof/drilling-tracker.png2026-11-01Checked on a live page
The weight class finder gives gi and no-gi divisions for IBJJF, ADCC and NAGA from a body weight, no account neededProduct, Studentsbjjchat.com/tools/weight-classcapture /proof/weight-class.png2026-11-01Checked on a live page
Seven tool pages open without an account but show a preview; the tool itself needs a free account: sparring journal, injury tracker, session scheduler, 1 Thing Today, system builder, AI drill plan, bracket strategy

CHA-3838 badged these Live now. The capture shows the signed-out preview, which is what a visitor gets; from CHA-3839 they are badged In the app with the preview linked.

Product, Pricingbjjchat.com/tools/sparring-journalcapture /proof/sparring-journal.pngcode: src/components/app/DualStateTool.tsx2026-11-01Checked on a live page

Feature status

How a badge is earned

A feature is Live nowonly if its public page exists in the site’s code and works without an account. It is In the app only if a signed-in route for it exists in the code; where the tool also has a public preview, the name links to it. A Proposal is not built. A test runs on every change and fails the build if a badge outruns the code.

  • Live nowpublic page, open it without an account
  • In the appexists behind sign-in; a linked name opens its public preview
  • Proposaldoes not exist, shown for discussion only

In the app

32
  • Sparring journalsigned-in route /tools/sparring-journal
  • Injury trackersigned-in route /tools/injury-tracker
  • Session schedulersigned-in route /tools/session-scheduler
  • 1 Thing Todaysigned-in route /tools/daily-focus
  • Training log, streaks and belt progresssigned-in route /app/train
  • Analyticssigned-in route /app/analytics
  • System builder, A-game and defense blueprints, belt curriculumsigned-in route /tools/system-builder
  • AI drill plan and training gap analyzersigned-in route /tools/ai-drill-plan
  • Curriculum library and gym librarysigned-in route /app/study/gym-library
  • Bracket strategysigned-in route /tools/bracket-strategy
  • Competition history and coach competition toolssigned-in route /app/coach/competitions
  • Class schedule and check-insigned-in route /app/coach
  • Curriculum builder and lesson planssigned-in route /app/coach/curriculum-builder
  • Student progress, promotions and certificatessigned-in route /app/me/students
  • Coaching plans, game plans, private lessonssigned-in route /app/coach/coaching-plans
  • Gym blog, community and gym librarysigned-in route /app/coach/blog
  • Staff, waivers, store, reports, automationssigned-in route /app/owner/staff
  • Lead pipeline, campaigns, member billing, SMSsigned-in route /app/owner/growth
  • Attendance reports and streakssigned-in route /app/owner/reports
  • Curriculum by belt, promotions, certificatessigned-in route /app/coach/curriculum-builder
  • Lesson plans and coaching planssigned-in route /app/coach/coaching-plans
  • Multiple locationssigned-in route /app/mygym
  • Gym blog, forums, gym librarysigned-in route /app/community
  • Log a sessionsigned-in route /app/train
  • Today, this week, your streaksigned-in route /app
  • Curriculum progresssigned-in route /app/me/promotions
  • Certificatessigned-in route /app/me/certificates
  • Private lessonssigned-in route /app/appointments
  • Scheduling and check-insigned-in route /app/coach
  • BJJ-native curriculum and beltssigned-in route /app/coach/curriculum-builder
  • AI planningsigned-in route /tools/ai-drill-plan
  • Communitysigned-in route /app/community

Proposal

1
  • Public changelog page

Published 1 statement carry the Published badge: written on a public page, with nothing to click through to.

Conflicts found

Where the site disagrees with itself

Where two published sources disagree, these pages pick neither and leave a placeholder. The conflict stays listed until the source of truth is settled.

  • One plan at $0, forever: no tiers, no per-member fees, no credit card, no trial clock, unlimited coaches and students, every future update includedThe Terms of Service, section 7, say some features require a paid subscription, with fees and automatic renewal. Hosted tournament entry fees are set by organisers, and the code allows a platform fee on them that defaults to zero (backend/config/appConfig.js, PLATFORM_FEE_BPS); no fee policy is published. The pricing page shows both as pending rather than pretending they do not exist.

Placeholders waiting on an answer

10 items. Each one is an amber chip on the page named; it goes away when the real thing exists, not before.

  • Pending: when member billing and SMS switch on. The payments code is built, but the production API answered "Payments not activated" on 2026-11-01; SMS sends only once Twilio is configured; the lead pipeline is in the owner workspace today.On Product, Gym owners, Pricing. Resolved when: Eric states whether and when payments and SMS are switched on for academies, so the pages can name a date or say none is set.
  • Pending: one owner quote, with name, academy and date.On Home, Gym owners. Resolved when: A real gym owner supplies a quote and agrees to be named.
  • Pending: whether the builders may be named, with belt and academy.On Home. Resolved when: Eric decides whether the people who build BJJChat are named on the site.
  • Pending: real captures of the coach dashboard, coach check-in and owner workspace.On Product, Gym owners. Resolved when: Captures of signed-in screens are taken from a real account with permission to show them.
  • Pending: a real capture of the student home screen.On Students. Resolved when: A capture of a signed-in student home screen is taken with permission to show it.
  • Pending: typical review time for a claim.On Gym owners. Resolved when: Eric states how long claim review usually takes.
  • Pending: 3G Elizabethtown may be shown as the example academy. The directory lists it as verified (checked 2026-11-01); featuring it is a choice for the academy and Eric.On Gym owners. Resolved when: Eric confirms the academy may be presented as the example on the public site.
  • Pending: which owner workspace features are ready to show publicly. Staff, waivers, store, website, landing pages, campaigns, automations, health, reports, content and integrations all have routes in the code.On Product. Resolved when: Eric lists the owner features that may be described on the public site.
  • Pending: the Terms of Service, section 7, still describe paid subscriptions, fees and automatic renewal, while this page says $0 forever.On Pricing. Resolved when: Eric decides whether the Terms are brought in line with the free plan, or this page names what could ever be paid for.
  • Pending: whether BJJChat takes a platform fee on hosted tournament entry fees, and at what rate. Nothing is published; the code allows a configurable fee that defaults to zero.On Pricing. Resolved when: Eric states the platform fee policy for hosted events, so this page can name the rate or say there is none.

Captures used

7 public pages, photographed on 2026-11-01

All taken at 390 px width and 2x scale from the live site, unedited. None is a signed-in screen. Open the address under each one and compare. The signed-in crops on the homepage are different: they use a made-up sample account, are labelled as such and are not counted here.

The BJJ round timer page on bjjchat.com at phone width
bjjchat.com/tools/round-timer, captured 2026-11-01
The 3G Elizabethtown academy page on bjjchat.com at phone width
bjjchat.com/schools/3g-elizabethtown-jiujitsu, captured 2026-11-01
The technique library on bjjchat.com at phone width
bjjchat.com/techniques, captured 2026-11-01
The schools directory on bjjchat.com at phone width
bjjchat.com/schools, captured 2026-11-01
The weight class finder on bjjchat.com at phone width
bjjchat.com/tools/weight-class, captured 2026-11-01
The drilling tracker on bjjchat.com at phone width
bjjchat.com/tools/drilling-tracker, captured 2026-11-01
The sparring journal on bjjchat.com at phone width
bjjchat.com/tools/sparring-journal, captured 2026-11-01

Found something that does not match? Tell us, and the ledger changes.

The ledger is a file in the site’s code. Correcting it is a change anyone on the team can make and a test checks before it ships.