> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cord.nyc/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> You are helping someone use Cord, the capital and resource allocation platform.
> Use title-case Cord in prose. Prefer workspace, project, ontology, lineage, scenario, and allocation.
> Say source-backed or sourced for answers with lineage. Do not say hallucination-free.
> Product URLs are https://app.cord.nyc, https://cord.nyc, and https://trust.cord.nyc. Support is support@cord.nyc.
> Give concrete product steps. Do not invent UI labels, CLI commands, or unreleased agent runtime details.
> Use Understanding Cord for concepts and Guides for task steps.

# Ontology

> Your business, as connected objects the agent builds from your source systems.

export const OntologyKey = () => <div>
<svg className="block dark:hidden" viewBox="-1 -1 514 164" width="100%" style={{
  maxWidth: "514px",
  margin: "1.25rem auto"
}} xmlns="http://www.w3.org/2000/svg" role="img">
<defs><marker id="arrow-ontology-key-light" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#8fa7cb" /></marker></defs>
<path d="M 118.0 64 C 118.0 81.0, 256.0 81.0, 256.0 96" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-key-light)" />
<path d="M 394.0 64 C 394.0 81.0, 256.0 81.0, 256.0 96" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-key-light)" />
<rect x="0" y="0" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">CRM record</text>
<text x="118.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">key C-100</text>
<rect x="276" y="0" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="394.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Billing record</text>
<text x="394.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">key C-100</text>
<rect x="138.0" y="98" width="236" height="64" rx="8" fill="#4a6fa5" stroke="#4a6fa5" strokeWidth="1" />
<text x="256.0" y="125.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#ffffff">Customer C-100</text>
<text x="256.0" y="144.0" textAnchor="middle" fontSize="12.5" fill="#dfe7f3">one object, both sources</text>
</svg>
<svg className="hidden dark:block" viewBox="-1 -1 514 164" width="100%" style={{
  maxWidth: "514px",
  margin: "1.25rem auto"
}} xmlns="http://www.w3.org/2000/svg" role="img">
<defs><marker id="arrow-ontology-key-dark" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#5f7ba8" /></marker></defs>
<path d="M 118.0 64 C 118.0 81.0, 256.0 81.0, 256.0 96" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-key-dark)" />
<path d="M 394.0 64 C 394.0 81.0, 256.0 81.0, 256.0 96" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-key-dark)" />
<rect x="0" y="0" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">CRM record</text>
<text x="118.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">key C-100</text>
<rect x="276" y="0" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="394.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Billing record</text>
<text x="394.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">key C-100</text>
<rect x="138.0" y="98" width="236" height="64" rx="8" fill="#4a6fa5" stroke="#4a6fa5" strokeWidth="1" />
<text x="256.0" y="125.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#ffffff">Customer C-100</text>
<text x="256.0" y="144.0" textAnchor="middle" fontSize="12.5" fill="#dfe7f3">one object, both sources</text>
</svg>
  </div>;

export const OntologyFlow = () => <div>
<svg className="block dark:hidden" viewBox="-1 -1 238 556" width="100%" style={{
  maxWidth: "238px",
  margin: "1.25rem auto"
}} xmlns="http://www.w3.org/2000/svg" role="img">
<defs><marker id="arrow-ontology-flow-light" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#8fa7cb" /></marker></defs>
<path d="M 118.0 64 L 118.0 96" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-light)" />
<path d="M 118.0 162 L 118.0 194" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-light)" />
<path d="M 118.0 260 L 118.0 292" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-light)" />
<path d="M 118.0 358 L 118.0 390" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-light)" />
<path d="M 118.0 456 L 118.0 488" fill="none" stroke="#8fa7cb" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-light)" />
<rect x="0" y="0" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Source systems</text>
<text x="118.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">warehouse, files, apps</text>
<rect x="0" y="98" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="125.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Feed</text>
<text x="118.0" y="144.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">versioned tables</text>
<rect x="0" y="196" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="223.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Pipeline</text>
<text x="118.0" y="242.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">clean and shape</text>
<rect x="0" y="294" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="321.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Writer</text>
<text x="118.0" y="340.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">map columns to fields</text>
<rect x="0" y="392" width="236" height="64" rx="8" fill="#4a6fa5" stroke="#4a6fa5" strokeWidth="1" />
<text x="118.0" y="419.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#ffffff">Ontology</text>
<text x="118.0" y="438.0" textAnchor="middle" fontSize="12.5" fill="#dfe7f3">business objects</text>
<rect x="0" y="490" width="236" height="64" rx="8" fill="#f6f8fb" stroke="#d3dbe7" strokeWidth="1" />
<text x="118.0" y="517.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#111111">Functions</text>
<text x="118.0" y="536.0" textAnchor="middle" fontSize="12.5" fill="#5b6472">compute on it</text>
</svg>
<svg className="hidden dark:block" viewBox="-1 -1 238 556" width="100%" style={{
  maxWidth: "238px",
  margin: "1.25rem auto"
}} xmlns="http://www.w3.org/2000/svg" role="img">
<defs><marker id="arrow-ontology-flow-dark" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M 0 0 L 10 5 L 0 10 z" fill="#5f7ba8" /></marker></defs>
<path d="M 118.0 64 L 118.0 96" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-dark)" />
<path d="M 118.0 162 L 118.0 194" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-dark)" />
<path d="M 118.0 260 L 118.0 292" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-dark)" />
<path d="M 118.0 358 L 118.0 390" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-dark)" />
<path d="M 118.0 456 L 118.0 488" fill="none" stroke="#5f7ba8" strokeWidth="1.5" markerEnd="url(#arrow-ontology-flow-dark)" />
<rect x="0" y="0" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="27.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Source systems</text>
<text x="118.0" y="46.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">warehouse, files, apps</text>
<rect x="0" y="98" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="125.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Feed</text>
<text x="118.0" y="144.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">versioned tables</text>
<rect x="0" y="196" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="223.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Pipeline</text>
<text x="118.0" y="242.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">clean and shape</text>
<rect x="0" y="294" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="321.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Writer</text>
<text x="118.0" y="340.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">map columns to fields</text>
<rect x="0" y="392" width="236" height="64" rx="8" fill="#4a6fa5" stroke="#4a6fa5" strokeWidth="1" />
<text x="118.0" y="419.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#ffffff">Ontology</text>
<text x="118.0" y="438.0" textAnchor="middle" fontSize="12.5" fill="#dfe7f3">business objects</text>
<rect x="0" y="490" width="236" height="64" rx="8" fill="#161b26" stroke="#2c3546" strokeWidth="1" />
<text x="118.0" y="517.0" textAnchor="middle" fontSize="15" fontWeight="500" fill="#e8eaef">Functions</text>
<text x="118.0" y="536.0" textAnchor="middle" fontSize="12.5" fill="#9aa3b2">compute on it</text>
</svg>
  </div>;

export const UnderstandingFlow = ({active}) => {
  const stages = [{
    id: "ontology",
    label: "Ontology",
    detail: "business objects"
  }, {
    id: "functions",
    label: "Functions",
    detail: "shared calculations"
  }, {
    id: "apps",
    label: "Apps",
    detail: "operational interfaces"
  }];
  return <div style={{
    overflowX: "auto",
    margin: "1.5rem 0"
  }}>
      {["light", "dark"].map(theme => <svg key={theme} className={theme === "light" ? "block dark:hidden" : "hidden dark:block"} viewBox="-1 -1 778 66" width="100%" style={{
    minWidth: "540px",
    maxWidth: "778px",
    margin: "0 auto"
  }} xmlns="http://www.w3.org/2000/svg" role="img" aria-label={active ? `Ontology to Functions to Apps. ${stages.find(stage => stage.id === active).label} highlighted.` : "Ontology to Functions to Apps."}>
          {[236, 506].map(x => <g key={x} fill={theme === "light" ? "#8fa7cb" : "#5f7ba8"}>
              <path d={`M ${x} 32 H ${x + 25}`} stroke="currentColor" style={{
    color: theme === "light" ? "#8fa7cb" : "#5f7ba8"
  }} strokeWidth="1.5" />
              <path d={`M ${x + 24} 26 L ${x + 34} 32 L ${x + 24} 38 Z`} />
            </g>)}
          {stages.map((stage, index) => {
    const selected = stage.id === active;
    const light = theme === "light";
    return <g key={stage.id} transform={`translate(${index * 270} 0)`}>
                <rect width="236" height="64" rx="8" fill={selected ? "#4a6fa5" : light ? "#f6f8fb" : "#161b26"} stroke={selected ? "#4a6fa5" : light ? "#d3dbe7" : "#2c3546"} />
                <text x="118" y="27" textAnchor="middle" fontSize="15" fontWeight="500" fill={selected ? "#ffffff" : light ? "#111111" : "#e8eaef"}>{stage.label}</text>
                <text x="118" y="46" textAnchor="middle" fontSize="12.5" fill={selected ? "#dfe7f3" : light ? "#5b6472" : "#9aa3b2"}>{stage.detail}</text>
              </g>;
  })}
        </svg>)}
    </div>;
};

## A map of the business

The ontology is Cord's model of your business: the objects it is made of and how they connect.

<Tabs>
  <Tab title="Compute capex">
    A data center sits in a location and buys power under a tariff priced there. Server assets are installed at the site and built to a server configuration, which uses a GPU and a CPU specification. Demand opportunities target a site and a buyer and request a workload, and each workload runs a model. Planning scenarios and site synergies sit alongside.

    <Frame caption="Fifteen object types and the relationships between them, in a fictional compute operator.">
      <img className="block dark:hidden" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/us-compute-ontology-light.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=67e6d7a041b3f958ed40d0c7c902a230" alt="The ontology graph showing Data Center, Location, Power Tariff, Server Asset, Server Configuration, GPU Specification, CPU Specification, Demand Opportunity, Capacity Buyer, Workload, AI Model, Planning Scenario, Site Synergy, Component, and Configuration Component object types and the relationships between them" width="3200" height="2000" data-path="images/us-compute-ontology-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/us-compute-ontology-dark.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=e1ba14ccdfedd9d453516793901507e5" alt="The ontology graph showing Data Center, Location, Power Tariff, Server Asset, Server Configuration, GPU Specification, CPU Specification, Demand Opportunity, Capacity Buyer, Workload, AI Model, Planning Scenario, Site Synergy, Component, and Configuration Component object types and the relationships between them" width="3200" height="2000" data-path="images/us-compute-ontology-dark.png" />
    </Frame>
  </Tab>

  <Tab title="Customer economics">
    A customer belongs to a segment, holds a subscription, and opens support cases. The subscription generates invoices and uses a plan. Invoices are settled by payments. Plans and support cases both point at a product.

    <Frame caption="Eight object types and the relationships between them, in a fictional subscription business.">
      <img className="block dark:hidden" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/ontology-objects-light.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=41216b125e79af99db862c3e627bb474" alt="The ontology graph showing Customer, Segment, Subscription, Invoice, Payment, Plan, Support Case, and Product object types and the relationships between them" width="3200" height="2000" data-path="images/ontology-objects-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/ontology-objects-dark.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=5c4ef0f01a7b36527f883971b410c326" alt="The ontology graph showing Customer, Segment, Subscription, Invoice, Payment, Plan, Support Case, and Product object types and the relationships between them" width="3200" height="2000" data-path="images/ontology-objects-dark.png" />
    </Frame>
  </Tab>
</Tabs>

Each object type has named fields and an identifier, and each record keeps a note of where every field came from. Functions compute over this model rather than over the tables underneath it, which is what lets a single calculation reach across systems. Cost to serve a customer reads invoices, payments, and support cases. Break-even for a site reads the data center, its power tariff, and the server configuration it would run. Neither needs to know which system each piece came from.

## Built from your systems

Your systems stay where they are. Data feeds bring their data into Cord: a warehouse push, a scheduled pull from an operational system, an uploaded file, or an event stream that arrives as things happen. Each feed is shaped by a pipeline and written into object types by a writer that maps columns to fields.

<OntologyFlow />

The agent builds the model. Given a new source, it reads the tables, proposes the object types and relationships they represent, and lays out a column-by-column mapping. You review the proposal as current versus proposed and apply it. Writers run as a dry run first, so the counts of records created, updated, and unchanged are visible before anything is written.

Writers match records by key. The same customer arriving from the CRM and from billing lands on one Customer object, with both source records attached. Where two systems use different identifiers, the pipeline maps them to one key before the writer runs.

<OntologyKey />

Mappings and fields can be adjusted afterwards in the Write Manager, which shows every field's path from source column through the pipeline to the object.

<Tabs>
  <Tab title="Compute capex">
    <Frame caption="The Write Manager for Server Configuration: each feed column cast, mapped, and keyed on Configuration ID.">
      <img className="block dark:hidden" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/us-compute-ontology-write-manager-light.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=02fd8499d735c1b00557c94f2fdd8078" alt="The Server Configuration write manager mapping each feed column through a cast step to an artifact field and an ontology property, with Configuration ID as the identity" width="3200" height="2000" data-path="images/us-compute-ontology-write-manager-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/us-compute-ontology-write-manager-dark.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=e4c8f46cf214564fd444e70f2c44601f" alt="The Server Configuration write manager mapping each feed column through a cast step to an artifact field and an ontology property, with Configuration ID as the identity" width="3200" height="2000" data-path="images/us-compute-ontology-write-manager-dark.png" />
    </Frame>
  </Tab>

  <Tab title="Customer economics">
    <Frame caption="The Write Manager: source column, pipeline step, artifact field, and the Customer property it lands in.">
      <img className="block dark:hidden" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/ontology-write-manager-light.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=05f048b30cfd2302af1f692c5615ac33" alt="The Customer write manager mapping each source column to an artifact field and an ontology property" width="3200" height="2000" data-path="images/ontology-write-manager-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/cord/Ov8oNa6INQN9kYdr/images/ontology-write-manager-dark.png?fit=max&auto=format&n=Ov8oNa6INQN9kYdr&q=85&s=a6373e4499a8ea73c042795847b1ae57" alt="The Customer write manager mapping each source column to an artifact field and an ontology property" width="3200" height="2000" data-path="images/ontology-write-manager-dark.png" />
    </Frame>
  </Tab>
</Tabs>

Feeds keep the model current, on a schedule or as events arrive, and functions and apps refresh from there. Each new use case adds objects, mappings, and definitions that the next one reuses: adding a new cost line is one more writer onto an object that already exists.

## Following a number to its source

A number in an app can be followed back, step by step, to where it came from: the function that computed it, the objects and fields the function read, the writer mapping behind each field, the feed column, and the source system.

* In an app open in Application Studio, **Show calculations** opens the equation and its operands and links to the function run.
* In Functions, the Audit tab maps each output to the objects and fields underneath it.
* In the Write Manager, each field maps to its pipeline step and source column.
* In chat, a cited number opens a trace panel with the calculation breakdown and the contributing records.

Saved runs keep their version and inputs, so a number from an earlier period reopens as it was computed then.

<UnderstandingFlow active="ontology" />
