Angel Campa
Colour theme

The ledger

Every figure on this site, added up. The product pages carry the detail and the reasoning, and the scale of it is hard to see spread across 17 of them.

Each number here was recorded by the repository it came from, and traces back to the document that produced it. I built the schema gate that requires a source and a capture date on every metric, so arithmetic is what this page adds. The repositories counted differently from each other, and the tables below show where.

The shape of it

17 products across 5 eras. 16 of them sit inside a closed build period of 430 days, which is the span the headline on the home page counts. The core sample beside it runs past that, to today, because one era has not closed. The remaining 1 sits inside that open era, still going.

Those 17 pages hold 134 recorded metrics and 69 screenshots. Every metric carries a source and the date it was measured. The content schema requires both, so a number without provenance fails the build rather than reaching a page.

What adds up

Four quantities turn up often enough, and were counted closely enough alike, to be worth summing. The repositories record plenty else, and the rest of it stayed on the product pages.

One row per product. Where the line columns are empty, that repository counted its tree as one figure with tests inside it, and appears in the second table below.

Recorded figures per product, with a total and the number of products stating each one.
ProductEraSource linesTest linesTest casesCommitsWhat the line counts covered
GatherGrove.NET331,181463,43022,7302,130backend C#, web and mobile TypeScript, and shared design tokens; 24,479 lines of generated EF Core migrations counted separately
GeoLeap.NET14,3132,322
SkillLedger.NET115,872122,9334,136944src/ C#; the web client's TypeScript is counted separately
CapVeri.NET364,654534,15016,7585,242authored TS, TSX, PY, MJS, JS and JSX source, with generated output kept out of the total
CAMAudit v2Pivot
LextractPivot106,16191,0844,7311,252all non-test, non-doc tracked code; the test count is directory-inclusive
GrantPipeApril250,218388,07418,2484,266authored source across six workspaces, generated files excluded
KaiplanApril89,693141,1586,929469TS, TSX, Astro, CSS, SQL and MJS, counting a file as test when its name ends .test or .spec
PebbleDeskApril88,514168,7047,8181,443TS, TSX and Astro, with test files excluded; files matching .test.ts or .test.tsx
GavelhouseApril6,580680
PHIGuardApril87,20557,2022,109876authored code categories, with documentation, config, marketing content and generated artifacts kept out
FlorivaApril50,48577,9874,596706src/, app/, components/ and constants/; tests/ and e2e/
Ventora PlatformPlatform34,43548,4642,734TypeScript, JavaScript and Python source, counted apart from the test files in the same packages; TypeScript, JavaScript and Python test files
Ventora SequencerPlatform28,70240,1921,747698authored TypeScript, generated files excluded
Ventora CRMPlatform13,97113,844573179files classed application and test; schema and tooling counted separately
Floriva WebApril32,4259,659431283application source, build and verification tooling, styles and SQL migrations; the test suite, counted apart from application source
Decision-making skillsHarness2,397408
Total1,593,5162,156,881116,83021,898

Across the 13 products that publish a split, test code outweighs source code 1.35 to 1.

The products that publish one line count

2 products state a single figure covering source and tests together instead of a split, which is why the two line columns above have no cell for them.

Counted with tests inside the same figure.

Products stating one line count covering source and tests together.
ProductLines countedWhat the count covered
GeoLeap1,063,755C#, TSX, TS, JS and SQL across the full tree, tests included; a raw wc -l count, so blank lines and comments are in the figure
Gavelhouse224,885every tracked source file, test files included
Total1,288,640

The two tables divide the work between them and share no product, so they add.

Split across 13 products
3,750,397
Combined across 2 products
1,288,640
Lines across 15 products
5,039,037

How these totals were made

These totals sum measurements taken under different rules. CapVeri counted six file extensions and excluded generated output, Gavelhouse counted every tracked file with tests inside the total and approximated its test case count from call sites, SkillLedger counted C# and left its web client's TypeScript out, and two products' test counts are what sits in the tree, unconfirmed by a run. Commit figures come from each project's private history: the published snapshots are single squashed commits, recorded here as the repositories logged them at the time.

The two products in the second table stay there for reasons worth stating. Gavelhouse's figure is regenerated and checked by its own build, which fails if the document drifts from the tree, and it carries no source-versus-test dimension to split on. GeoLeap's is a raw line count its own document calls an upper bound, because the tools that strip comments were missing from the machine that measured it. Recounting either one here would replace a number its repository stands behind with one this site made up.

The gate on this page

Every number in the tables is a restatement of a number already printed on a product page, and the build checks that it still matches the sentence it was taken from. Edit one without the other and the build fails, naming the figure and the sentence it no longer agrees with. The totals read from the same claims the product pages make.

Where each figure came from

Every figure above, with the document it was read from and the date it was measured. Figures rot, so the date travels with the number.

GatherGrove4 figures
Source lines
331,181backend C#, web and mobile TypeScript, and shared design tokens; 24,479 lines of generated EF Core migrations counted separatelyportfolio/METRICS.md § Code volume: verified, measured
Test lines
463,430backend C#, web and mobile TypeScript, and shared design tokens; 24,479 lines of generated EF Core migrations counted separatelyportfolio/METRICS.md § Code volume: verified, measured
Test cases
22,730passing across the backend, web client and mobile suitesREADME.md § test table, measured README.md § test table, measured README.md § test table, measured
Commits
2,130the private development historyportfolio/METRICS.md § Commit history, measured
GeoLeap3 figures
Lines counted
1,063,755C#, TSX, TS, JS and SQL across the full tree, tests included; a raw wc -l count, so blank lines and comments are in the figureportfolio/METRICS.md § Lines and files, counted with wc -l, measured
Test cases
14,313passing across the backend and frontend suitesportfolio/METRICS.md § Test results: Backend, measured portfolio/METRICS.md § Test results: Frontend, measured
Commits
2,322the full private development history of the projectportfolio/METRICS.md § Commit history, measured
SkillLedger4 figures
Source lines
115,872src/ C#; the web client's TypeScript is counted separatelyportfolio/METRICS.md § Source size, measured
Test lines
122,933src/ C#; the web client's TypeScript is counted separatelyportfolio/METRICS.md § Source size, measured
Test cases
4,136declared [Fact] test methods; the real case count runs higher once [Theory] and [InlineData] cases are addedportfolio/METRICS.md § Tests, measured
Commits
944commits recorded in the private development historyportfolio/METRICS.md § History, exported from the private source repository; this snapshot is one commit, measured
CapVeri4 figures
Source lines
364,654authored TS, TSX, PY, MJS, JS and JSX source, with generated output kept out of the totalportfolio/METRICS.md § Source vs test vs generated, measured
Test lines
534,150authored TS, TSX, PY, MJS, JS and JSX source, with generated output kept out of the totalportfolio/METRICS.md § Source vs test vs generated, measured
Test cases
16,758passing in a measured pytest and vitest runportfolio/METRICS.md § Measured runs, measured
Commits
5,242the full commit history of CapVeri's private development repository, 2025-12-24 to 2026-07-03portfolio/METRICS.md § Git history, measured
Lextract4 figures
Source lines
106,161all non-test, non-doc tracked code; the test count is directory-inclusiveportfolio/METRICS.md § What each number's command actually is, measured
Test lines
91,084all non-test, non-doc tracked code; the test count is directory-inclusiveportfolio/METRICS.md § What each number's command actually is, measured
Test cases
4,731all non-test, non-doc tracked code; the test count is directory-inclusiveportfolio/METRICS.md § What each number's command actually is, measured
Commits
1,252the private development historyportfolio/METRICS.md § Commit history, measured
GrantPipe4 figures
Source lines
250,218authored source across six workspaces, generated files excludedportfolio/METRICS.md § Scale, measured
Test lines
388,074authored source across six workspaces, generated files excludedportfolio/METRICS.md § Scale, measured
Test cases
18,248declared across 905 unit and integration test filesportfolio/METRICS.md § Structure, measured
Commits
4,266the private development historyportfolio/METRICS.md § Scale, measured
Kaiplan4 figures
Source lines
89,693TS, TSX, Astro, CSS, SQL and MJS, counting a file as test when its name ends .test or .specportfolio/METRICS.md § 2. Source against test, measured
Test lines
141,158TS, TSX, Astro, CSS, SQL and MJS, counting a file as test when its name ends .test or .specportfolio/METRICS.md § 2. Source against test, measured
Test cases
6,929declared, counted by grep across 425 test filesportfolio/METRICS.md § 3. Test files, cases, assertions, measured
Commits
469commits recorded across the solo development historyportfolio/METRICS.md § 7, measured
PebbleDesk4 figures
Source lines
88,514TS, TSX and Astro, with test files excludedportfolio/METRICS.md § Size, measured
Test lines
168,704files matching .test.ts or .test.tsxportfolio/METRICS.md § Size, measured
Test cases
7,818individual test cases (`it` blocks) across every .test.ts and .test.tsx file in the treeportfolio/METRICS.md § Counting test cases, measured
Commits
1,443commits recorded in the source repository's git historyportfolio/METRICS.md § Source repository history, measured
Gavelhouse3 figures
Lines counted
224,885every tracked source file, test files includedportfolio/METRICS.md § Source (includes test files; generated by pnpm run metrics:generate), measured
Test cases
6,580static count of it( and test( call sites across the suiteportfolio/METRICS.md § Tests (static count of it( and test( call sites), measured
Commits
680the full private commit history, first commit to snapshot captureportfolio/METRICS.md § History (private source repository; 131 of 680 commits under an automation account), measured
PHIGuard4 figures
Source lines
87,205authored code categories, with documentation, config, marketing content and generated artifacts kept outportfolio/METRICS.md § Code, measured
Test lines
57,202authored code categories, with documentation, config, marketing content and generated artifacts kept outportfolio/METRICS.md § Code, measured
Test cases
2,109declared across 182 filesportfolio/METRICS.md § Tests, measured
Commits
876commits made across the repository's development historyREADME § About this snapshot, measured
Floriva4 figures
Source lines
50,485src/, app/, components/ and constants/docs/metrics.md § Code, measured
Test lines
77,987tests/ and e2e/docs/metrics.md § Code, measured
Test cases
4,596passing in a measured Jest rundocs/metrics.md § Tests, measured
Commits
706commits to the project's private repositorydocs/metrics.md § History, measured
Ventora Platform3 figures
Source lines
34,435TypeScript, JavaScript and Python source, counted apart from the test files in the same packagesportfolio/METRICS.md § Source versus test, by package, measured portfolio/METRICS.md § Source versus test, by package, measured portfolio/METRICS.md § Source versus test, by package, measured
Test lines
48,464TypeScript, JavaScript and Python test filesportfolio/METRICS.md § Source versus test, by package, measured portfolio/METRICS.md § Source versus test, by package, measured portfolio/METRICS.md § Source versus test, by package, measured
Test cases
2,734declared across vitest, pytest and node:testportfolio/METRICS.md § Scale, measured portfolio/METRICS.md § Scale, measured portfolio/METRICS.md § Scale, measured
Ventora Sequencer4 figures
Source lines
28,702authored TypeScript, generated files excludedportfolio/METRICS.md § Code size, measured
Test lines
40,192authored TypeScript, generated files excludedportfolio/METRICS.md § Code size, measured
Test cases
1,747passing across 149 filesportfolio/METRICS.md § Tests and coverage, measured
Commits
698commits recorded in the repository's historyportfolio/METRICS.md § Numbers that are not checkable from this snapshot, measured
Ventora CRM4 figures
Source lines
13,971files classed application and test; schema and tooling counted separatelyportfolio/METRICS.md § By role, measured
Test lines
13,844files classed application and test; schema and tooling counted separatelyportfolio/METRICS.md § By role, measured
Test cases
573declared across the three gating suitesportfolio/METRICS.md § Tests, measured
Commits
179the project's own git history over its build periodREADME.md, status banner, measured
Floriva Web4 figures
Source lines
32,425application source, build and verification tooling, styles and SQL migrationsportfolio/METRICS.md § Written by hand (that doc's heading for authored rather than generated files), measured portfolio/METRICS.md § Written by hand (that doc's heading for authored rather than generated files), measured portfolio/METRICS.md § Written by hand (that doc's heading for authored rather than generated files), measured portfolio/METRICS.md § Written by hand (that doc's heading for authored rather than generated files), measured
Test lines
9,659the test suite, counted apart from application sourceportfolio/METRICS.md § Written by hand (that doc's heading for authored rather than generated files), measured
Test cases
431429 passed, 2 skipped, 0 failingportfolio/METRICS.md § Tests, measured
Commits
283commits in the private development repository that produced this snapshotREADME § By the numbers, measured
Decision-making skills2 figures
Commits
408the full public commit history, first commit to the date this was countedthe decision-making-skills repository at commit 50dfc58, counted directly: this project is live rather than a snapshot and keeps no generated metrics document, measured
Test cases
2,397Python test functions declared across 65 files under tests/the decision-making-skills repository at commit 50dfc58, counted directly: this project is live rather than a snapshot and keeps no generated metrics document, measured