---
title: "What LatticeKit is"
summary: "Orientation for anyone — person or agent — working against a LatticeKit business for the first time: what the platform models, the handful of concepts everything else is built from, and what it deliberately does not do."
---

# What LatticeKit is

LatticeKit runs businesses that sell **time, things, and the combination of the two** —
a racquet club renting courts by the hour, a gym running a class timetable, a salon
booking appointments against named staff, a studio selling seats in a room. It handles
scheduling, the catalog, customers, payments, the ledger, communications and reporting
as one system rather than as integrations between five.

It is also built to be operated by software. A business can be read, changed and
verified through an API designed for AI agents as much as for applications — see
[the agent API](agent-api.md).

Not sure it fits? Describe your business at `/start` on the console and see it set up on
LatticeKit before you sign up — what your customers would book, your hours, your menu. If it
looks right, one click creates it and the setup assistant picks up from there. An AI agent
can do the same on a person's behalf — describe, preview, build a live demo, then create the
account that keeps it — through the signup endpoint of [the agent API](agent-api.md).

## The concepts everything else assumes

Nine ideas carry most of the platform. Learn these and the rest is vocabulary.

**Tenant.** One business. Every piece of data belongs to exactly one, and nothing
crosses between them. A tenant may have **sub-tenants** — locations or business units —
and rows can be scoped to one or shared across all. See [tenancy](tenancy.md).

**Person.** A human the business knows: a customer, a member, a member of staff. People
carry contact details, consents, and attributes the business defines.

**Group.** The universal "this person belongs to something" model — a household, a
membership tier, a team, a staff roster. Employment is a group; a tier is a group.

**Resource.** A physical thing that can be committed: a court, a room, a chair, a piece
of equipment, a unit of stock. Resources are held and released rather than simply
booked, so two people cannot take the same one.

**Offer.** Something a customer can buy or book, and the terms attached — how long it
lasts, what it needs, whether it takes a deposit, what the cancellation policy is.

**Availability.** When an offer can actually be taken. This is not always a grid of
slots: it might be a range, a queue, a capacity, or something an external system owns.

**Booking.** One reservation, moving through a lifecycle from held, to confirmed, to
completed or cancelled. See [scheduling](scheduling.md).

**Order.** A live tab or cart. It opens, things are added, it is fired, and it closes —
and closing is what turns activity into money: an invoice, ledger entries, stock
consumed, a receipt sent.

**Invoice and ledger.** Money is recorded as double-entry bookkeeping, not as a status
field. Every charge, refund, credit note and stored-value movement is a balanced posting,
which is what makes a period closeable and a total trustworthy.

## Shapes of business it fits

The scheduling model was built to cover more than appointments. It handles fixed grids
(courts on the hour), variable durations (a service that takes as long as it takes),
capacity (sixteen people fit in the room whether or not there are sixteen of anything
else), queues and waitlists, multi-day stays, group bookings with rosters, and
availability owned by an external system.

If a business sells access to time or things, and needs the money and the communications
that follow to be handled too, it is in scope.

## What it deliberately is not

It is not a website builder, though it renders customer-facing booking pages. It is not
a general accounting package, though it keeps a real ledger and exports to one. It is not
a payment processor — it presents several as one interface and stores tokens, never card
numbers.

There are also verticals LatticeKit is not eligible to serve, for legal rather than
technical reasons. Eligibility is checked when a business is set up, and an ineligible
one is turned away rather than partially configured.

## Where to go next

- [Glossary](glossary.md) — the vocabulary, in one place.
- [Scheduling](scheduling.md) — offers, availability and the booking lifecycle.
- [Identifiers](identifiers.md) and [tenancy](tenancy.md) — the two contracts that hold everywhere.
- [Errors](errors.md) — how a failed call explains itself.
- [Agent API](agent-api.md) — connecting an AI client.
- [Tenant as code](tenant-as-code.md) — a whole business as one reviewable document.
