Features

Everything between the agent
and the number.

Capture, measure, review, and publish, with the same service layer under every surface. Nothing here is a plan: every feature below ships in the current release.

Written at the time of the work

Capture

MCP server, eight tools

record_leverage, get_leverage_summary, get_today_stats, list_records, get_project_breakdown, get_timeseries, get_fatigue_assessment, and predict_leverage, callable by any MCP-capable agent.

CLI

leverage add creates or idempotently updates a record from any shell, with every provenance field available as a flag. Accepts the same field names as the MCP tool.

REST API

/api/v1/records, analytics, fatigue, prediction, users, teams, and projects. OpenAPI-documented; the CLI and MCP server import the same service layer.

Idempotent by design

A client-generated record id is unique within an account. Retrying a create or completion with the same id returns or updates the same canonical record instead of duplicating it.

Provenance on every number

Tokens are exact, estimated with a named rate, or unavailable. Estimates carry a basis and an author. Operator time is the sum of prompt, supervision, correction, and review minutes, and the total must reconcile.

Corrections that keep the original

A correction never overwrites. The original row stays, the correction supersedes it, and public outputs carry only the effective record.

Formulas, not adjectives

Measure

Six published metrics

Aggregate execution factor, median task factor, arithmetic task mean, aggregate operator leverage, calendar compression, and capability expansion, each with a formula identifier.

Ratio of sums, not mean of ratios

The headline number is 60 × sum(hours) / sum(agent minutes). The mean of per-task factors is kept, labeled as the task mean, and never presented as the headline.

Coverage published beside the number

Operator leverage is computed only over records with complete operator-time coverage, and every result states the covered count and percentage.

Calendar compression done honestly

Task level divides senior-hours by wall-clock span. Period level requires the union of intervals; overlapping spans are never summed as unique calendar time.

Capability expansion without fiction

Work that needed new learning or was infeasible unaided is classified and counted. No invented or infinite hour estimates, ever.

Prediction

predict_leverage estimates the factor for a new task from the record so far, so a team can plan against its own history rather than a vendor's benchmark.

The dashboard

Review

Summary and time series

Totals and factors by day, week, and month, with the record count and coverage that make each figure defensible.

Projects and repositories

Per-project breakdowns tie leverage to the codebases it came from, with commit and session identifiers on every record.

Drafts, confirmation, and publication review

A record is a draft until confirmed. Publication requires an approved review and a public-safe restatement of the task; raw task text never crosses the boundary.

Decision fatigue

A level, a score, recommendations for the operator, and guidance for the agents, derived from today's confirmed records.

Light and dark

Both themes, follows the system preference, meets WCAG 2.1 AA contrast throughout.

Chirp integration

New records preview into your team chat with project, factor, and task; slash commands for today, the leaderboard, and projects; record links unfurl.

For more than one operator

Teams and access

Users and teams

Personal records roll up to teams. Leaderboards rank by execution factor over any window, with the same coverage rules as the published metrics.

API keys

Per-user keys, hashed with argon2id at rest, revocable and regenerable from the dashboard or the API.

Three ways to authenticate

Mutual TLS from your fleet, service tokens for other services, and OpenID Connect sign-in for people, in that order of precedence.

Fleet identity

Signs in through your OpenID Connect provider; the fleet's own identity service ships with the Renkara tools if you do not have one.

Installed where your engineers work

Operate

Self-hosted

FastAPI on Python, SQLAlchemy 2.0 with asyncpg, PostgreSQL 17, a React dashboard built by Vite. Ships as a container image; runs on ARM64 or x86.

Migrations and seeding

Alembic migrations, a seed for first boot, and generated columns for the derived factors so no client can write a wrong one.

Health and diagnostics

A health endpoint for your load balancer and a diagnostics endpoint for your monitoring, both unauthenticated on read where they should be.

Snapshot contract

One immutable publication build emits CSV, JSON, summary, time series, methodology, corrections, and a manifest with SHA-256 for every sibling file. The website, the download, and the daily rollups all consume the same snapshot.

Measure it before you argue about it.

One annual license installs Fulcrum in your environment: the API, the dashboard, the CLI, and the MCP server your agents already know how to call. $1,199 per year. Included for a year with every Vantalect engagement.

Already licensed? Sign in to Fulcrum.

Claude and Claude Code are trademarks of Anthropic, PBC. Fulcrum is not affiliated with or endorsed by Anthropic.