Skip to main content

FS Garage Score Card - Project Overview

FS Garage Score Card is the per-project health-tracking surface built by Thanush Babu: custom metric categories, metrics, and time-series entries, rendered as KPI cards, funnels, or bar lists, with health status, targets, and a shareable snapshot export.

This page is the project-level Knowledge Transfer entry (FE + BE together). Repo setup details stay in the FE/BE folders; all metric formulas live in Metrics and Calculations.

What Score Card does​

  1. A lead or member opens a project and switches to its Score tab (/project/[id]/score).
  2. The frontend fetches that project's categories, metrics, and entries from PocketBase and derives every displayed number (roll-ups, deltas, momentum, target %) with a shared pure-function library - the backend stores raw data only.
  3. Owners/leadership use Manage Data to define categories/metrics and log entries (via auto-saving Quick Entry fields or the bulk Entries modal).
  4. Anyone with access can export a snapshot - a paginated, shareable view computed with the exact same formulas as the live page, with restricted metrics stripped for an "external" audience.
FieldValue
CategoryFS Garage
Frontendbase-fs-garage-fe
Backendfs-garage-base
UI route/project/[id]/score
PocketBasetypically http://127.0.0.1:8091
Where math lives

Every roll-up, delta, target suggestion, and export calculation is computed entirely on the frontend (lib/scorecard/*.js) from raw PocketBase data - the backend only stores entries and enforces access/integrity rules. See Metrics and Calculations.

Knowledge Transfer Score Card

Repositories​

RoleRepoResponsibility
FEbase-fs-garage-fe/project/[id]/score UI, Manage Data, snapshot export, the entire lib/scorecard/*.js calculation library
BEfs-garage-basemetric_categories / metrics / metric_entries PocketBase collections, access rules, integrity constraints

This module shares both repos with Utilisation (a different contributor's feature) and, on the frontend only, with Kanban and Gantt (also built by Thanush, documented separately since they're unrelated features - task board and timeline, not metrics).

Product surfaces (UI)​

SurfaceWhat it shows
KPI cardsA metric's current value, delta chip, momentum arrow, value-vs-target %, and 5-period sparkline
FunnelOrdered stages as bars scaled to the largest stage, each still showing its own value/target
Bar listGrouped metrics (with optional subcategories) as horizontal bars
Manage DataCategory/metric CRUD plus Quick Entry (auto-saving, one field per metric, current week by default)
Snapshot exportA paginated, shareable rendering of whichever KPI/funnel/bar-list sections are currently in view
Project listing momentumA 4-week sparkline per project, averaging headline-KPI value-vs-target %

Data model (summary)​

Three PocketBase collections, one level of category nesting, no persisted calculations:

  • metric_categories - grouped per project, display_type (kpi_card/funnel/bar_list), optional parent for one level of subcategory nesting, restricted flag.
  • metrics - belongs to a category; aggregation (sum/average/latest), frequency (daily...annually, shown to the FE as default_granularity), up to five per-cadence targets plus one custom-range target, is_headline_kpi, is_active (archive flag).
  • metric_entries - belongs to a metric; period_start/period_end/value, DB-enforced period_start <= period_end.

Full field-by-field reference: FS Garage Score Card (BE) API Reference. Every formula that turns these rows into what the UI shows: Metrics and Calculations.

Access model (summary)​

RoleViewCreate / edit / delete
MemberYesNo
Project ownerYesYes
ceo / c-suite / project-leadYesYes

Restriction cascades: a metric is hidden from a non-privileged viewer if it's flagged restricted itself, or its category (or that category's parent) is.

Next Steps​