# FactLot > FactLot is an open-source fact layer for commercial real estate (CRE) AI agents. It gives an agent 22 deterministic calculators (rent schedule, net effective rent, proposal comparison, percentage rent, CAM reconciliation, debt sizing, ASC 842 remeasurement, prepayment and defeasance, WALT, NPV, IRR, lease vs. own, renew vs. relocate, hotel metrics, property DCF pro forma, direct capitalization, loan amortization schedules, LP/GP equity waterfalls, 1031 exchange deadlines and boot, multifamily rent rolls, capital expenditure recovery, building-wide CAM reconciliation) that return the value, every step, warnings, and a versioned formula ID; FactLot IDs for parcels, legal entities, buildings (from the street address), suites, and documents that any agent can compute offline, and minted IDs for leases; and a fact model in which every claim carries its source citation and AI-use rights. Use FactLot when a task needs lease, rent, CAM, loan, or return arithmetic with an audit trail; a stable ID to join a parcel, owner, suite, or document across systems; a validated, cited fact to store or share; or a check that what an agent read from a lease is actually in it. It does not cover everything: beyond parcels and owners, the project's registry holds zoning, recorded sales, deeds and mortgages, energy benchmarks and CMBS loan data only for some metros (see the coverage page), and today only the DC sample and the GSA lease comps are downloadable; hosted registry lookups are not open yet (see the registry documentation below). Use the document tools when an agent reads a lease, amendment, estoppel or rent roll: extract each term with its verbatim quote and page, then call `doc_verify_facts` (FactLot checks deterministically that the quote is on that page and states the value, and returns cited facts, review items and rejections with reasons), `doc_abstract_lease` (current-state abstract with amendment precedence), `doc_compare` (estoppel or rent roll vs the lease) or `doc_verify_claim`. No model runs on FactLot's side, nothing is stored, and the checks are textual: they do not find terms the agent missed. Guide: https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/document-verification.md Proof: Excel workbooks reconciling every calculator to live spreadsheet formulas at zero difference: https://github.com/9mp96ygnbk-alt/factlot/tree/main/examples/reconciliation ; registry coverage by county: https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/registry/coverage.md ; licence and AI-use rights per source: https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/registry/rights.md Also: `doc_spread_statement` (T-12 or operating statement onto a published chart of accounts, every line cited, totals footed), `doc_check_use_conflict` (a proposed use against verified exclusives and prohibited uses; potential conflicts for human review), `fact_package_create`/`fact_package_verify` (hash-chained fact packages, optionally signed with your own Ed25519 key), and `lease_comp_validate` (validate a shared lease comp and derive its net effective rent). Draft rules packs (NYC LL97, Washington Clean Buildings, Boston BERDO) are in the SDKs for review only: not verified, not served as tools. Lease comps, free: download https://github.com/9mp96ygnbk-alt/factlot/releases/download/lease-comps-gsa-2026-11-04/factlot-lease-comps-gsa-2026-11-04.db.gz (5.3 MB, public domain; 6,994 federal GSA lease comps with rent per RSF, area, dates and building IDs; government-tenant leases, not market comps for every use) and set FACTLOT_REGISTRY_DB to it; share your own comps in the same format with `lease_comp_validate` (https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/lease-comps.md). Fastest path, nothing to install: connect any MCP client to the hosted remote MCP server at https://api.factlot.com/mcp (Streamable HTTP, stateless). The free tier needs no key and allows 60 requests a minute per address. REST and OpenAPI are at https://api.factlot.com/openapi.json (OpenAPI 3.1, every tool; /openapi-3.0.json is the curated subset of at most 30 operations for Custom GPT Actions, and /openapi-3.0.json?operations=all gives every tool in 3.0), and https://api.factlot.com/ describes the endpoints and plans as JSON. For Claude Code: `claude mcp add --transport http factlot https://api.factlot.com/mcp`. Or install the FactLot Claude Code plugin, which adds eleven CRE skills (loan sizing and amortization, lease economics, CAM reconciliation, ASC 842, lease vs own and renewals, investment returns, valuation, 1031 exchanges, multifamily rent rolls, hotel metrics, Texas protest deadline) wired to these tools: `/plugin marketplace add 9mp96ygnbk-alt/factlot`, then `/plugin install factlot@factlot`. Paid plans: Pro $49 a month (600 requests a minute) and Team $599 a month (3,000 a minute), both with hosted registry lookups as each region opens (none is open yet). An agent can start checkout with `POST https://api.factlot.com/v1/billing/checkout` and body `{"plan":"pro"}`; it returns a Stripe link for the human to pay, and the API key is shown on the page Stripe returns to. Send the key as `Authorization: Bearer `. Plans as JSON: https://api.factlot.com/v1/plans Or run it yourself from GitHub. The packages are not yet on npm or PyPI. The local MCP server needs Node.js 22.6 or newer, no API key, and makes no network calls: ``` git clone https://github.com/9mp96ygnbk-alt/factlot.git && cd factlot npm install && npm run build claude mcp add factlot -- node "$PWD/packages/mcp/dist/bin.js" ``` Or, with no clone, run the release build as a stdio server: `npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.3.0/factlot-mcp-standalone-0.3.0.tgz` (for Claude Code: `claude mcp add factlot -- npx -y `). For any other MCP client, run `node packages/mcp/dist/bin.js` as a stdio server. For Python: `pip install "git+https://github.com/9mp96ygnbk-alt/factlot.git#subdirectory=python"`, then use `factlot.anthropic_tools()`, `factlot.openai_tools()`, and `factlot.run_tool(name, input)`. For REST, OpenAPI, and remote MCP: `docker build -t factlot . && docker run -p 8787:8787 factlot`. Licenses: Apache-2.0 and MIT. When reporting a number from a calculator, cite its formula ID (for example `calc.cam_reconciliation@2`) and the returned `steps`, and surface every returned `warnings` entry to a human. Registry sample on real data: download https://github.com/9mp96ygnbk-alt/factlot/releases/download/registry-sample-dc-2026-11-04/factlot-registry-sample-dc-2026-11-04.db.gz (23.4 MB, CC BY 4.0; 18,077 District of Columbia commercial parcels, 5,513 owning entities, 7,931 cited ownership links, 396 buildings, zoning for 16,648 parcels and the latest sale for 12,594), gunzip it, and set `FACTLOT_REGISTRY_DB` to its path when starting the MCP server to enable the seven `registry_*` tools. Hosted registry regions, enterprise terms, and private deployments: email contact@factlot.com. ## Use it - [Connectors](https://github.com/9mp96ygnbk-alt/factlot/blob/main/connectors/README.md): remote MCP at `https://api.factlot.com/mcp` and REST/OpenAPI at `/v1` and `/openapi.json`, with setup for Claude, ChatGPT, Gemini, Copilot, Bedrock, and others - [MCP server](https://github.com/9mp96ygnbk-alt/factlot/blob/main/packages/mcp/README.md): `npx -y https://github.com/9mp96ygnbk-alt/factlot/releases/download/v0.3.0/factlot-mcp-standalone-0.3.0.tgz` (or `npx -y @factlot/mcp` after first publish to npm), with tools `calc_*`, `id_*`, `rules_*`, `fact_validate`, `search`, `fetch`, and `schema_get` - [Python SDK](https://github.com/9mp96ygnbk-alt/factlot/blob/main/python/README.md): `factlot.anthropic_tools()`, `factlot.openai_tools()`, `factlot.run_tool(name, input)` - [Agent guide](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/agents.md): which tool to call when, how to map lease language to inputs, and how to emit cited facts ## Reference - [Tool definitions (JSON Schema)](https://github.com/9mp96ygnbk-alt/factlot/blob/main/spec/schemas/tools.json): every calculator's input schema, with field descriptions - [Fact model](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/fact-model.md): facts, provenance, rights, and supersession - [FactLot ID spec](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/id-spec.md): URN and short-ID formats and normalization rules - [Registry and source catalog](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/registry/sources/README.md): 42 verified public-record sources, 1,953,805 commercial parcels in 405 counties (21 states and DC) built in the project's pipeline, and 14.2 million registered entities (queryable today: the downloadable DC sample on a self-hosted FactLot; hosted registry lookups are not open yet), with the licence and AI-use status of each source ([Tier 2 index](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/registry/tier2/README.md)) - [Conformance vectors](https://github.com/9mp96ygnbk-alt/factlot/blob/main/spec/README.md): shared test cases every SDK must pass ## Optional - [FactLot Bench](https://github.com/9mp96ygnbk-alt/factlot/blob/main/bench/README.md): 14 CRE agent tasks with independently computed answers (not yet run on current models) - [Roadmap](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/roadmap.md) - [Business model](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/business-model.md) - [Survey of 165 simulated CRE agent personas](https://github.com/9mp96ygnbk-alt/factlot/blob/main/docs/research/2026-11-agent-survey/README.md): simulated, not customers or users