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
- A lead or member opens a project and switches to its Score tab (
/project/[id]/score). - 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.
- Owners/leadership use Manage Data to define categories/metrics and log entries (via auto-saving Quick Entry fields or the bulk Entries modal).
- 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.
| Field | Value |
|---|---|
| Category | FS Garage |
| Frontend | base-fs-garage-fe |
| Backend | fs-garage-base |
| UI route | /project/[id]/score |
| PocketBase | typically http://127.0.0.1:8091 |
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.
Repositories
| Role | Repo | Responsibility |
|---|---|---|
| FE | base-fs-garage-fe | /project/[id]/score UI, Manage Data, snapshot export, the entire lib/scorecard/*.js calculation library |
| BE | fs-garage-base | metric_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)
| Surface | What it shows |
|---|---|
| KPI cards | A metric's current value, delta chip, momentum arrow, value-vs-target %, and 5-period sparkline |
| Funnel | Ordered stages as bars scaled to the largest stage, each still showing its own value/target |
| Bar list | Grouped metrics (with optional subcategories) as horizontal bars |
| Manage Data | Category/metric CRUD plus Quick Entry (auto-saving, one field per metric, current week by default) |
| Snapshot export | A paginated, shareable rendering of whichever KPI/funnel/bar-list sections are currently in view |
| Project listing momentum | A 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), optionalparentfor one level of subcategory nesting,restrictedflag.metrics- belongs to a category;aggregation(sum/average/latest),frequency(daily...annually, shown to the FE asdefault_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-enforcedperiod_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)
| Role | View | Create / edit / delete |
|---|---|---|
| Member | Yes | No |
| Project owner | Yes | Yes |
ceo / c-suite / project-lead | Yes | Yes |
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.
Related docs in this site
- Metrics and Calculations - full formula catalog
- FE overview - frontend repo KT (Score Card only - see Kanban and Gantt for the other features in the same repo)
- BE overview - backend repo KT