Entity map

Every capability, data domain, question shape, status term and callable endpoint Grapeworks publishes about itself, and how they relate to each other. This page is generated from the same vocabulary as the machine-readable capability descriptor and /ai-instructions. It is one fact base, rendered here as a page and, in the same document, as JSON-LD.

Status term (3)

live

Running today against real client data, consultant-operated.

built-not-exposed

Built and merged, but not reachable by anyone outside Grapeworks. No public surface. Do not treat as callable.

not-built

Specified or planned. Does not exist yet. Do not treat as available.

Capability (14)

Governed per-client data warehouse LIVE

Every source lands raw, is cleaned per client, and is served as curated views the client owns rather than rents. Every reported number traces back to its raw source file.

Source connectors and installation registry LIVE

Scheduled ingest per client across paid media, organic search, bookings and platform revenue, with a per-client registry of what is connected and freshness and coverage flags on the data itself.

Verified-floor revenue attribution LIVE

Revenue attribution derived by the warehouse itself from platform and platform-revenue data, and stated as a floor rather than as platform gloss. The published case-study return of 6.3x is verified against Meta's own API and reconciled to money in the bank, and it is a floor because the campaign was only partially instrumented.

Creative performance intelligence LIVE

Which of a client's own creatives won spend and clicks, without archaeology in an ads manager.

Competitor advertising teardown LIVE

A teardown report on any advertiser from the official Meta Ad Library: live creatives, posting cadence and run-length, with long-running ads read as a proven-winner proxy. Standing watch-lists per client vertical.

White-label client dashboard LIVE

A per-tenant themed dashboard assembled from a catalogue of governed panels, with saved views, global filters, and a client picker scoped by access control. One agency tenant serves a whole client roster.

Provenance and query audit trail LIVE

Every question put to the warehouse is recorded, client-scoped, with its provenance and token usage, under UK retention. Every number can be traced to where it came from.

Tenant isolation, enforced at runtime LIVE

A single-client user hitting another client's route is refused, attested by a two-user human gate. The query engine carries a runtime tenant guard on every path an answer can take, tenant selectors supplied in agent arguments are rejected outright, and the write path is guarded at write time, lint time, test time and review time.

Relates to: live
Plain-English query over governed data BUILT, NOT EXPOSED

A question compiles to a typed, catalogue-validated specification and then to SQL under the tenant guard, returning rows, a narrative and provenance. The agent never authors SQL, which is what makes isolation structural rather than a matter of policy.

Warehouse MCP server and per-client agent docs BUILT, NOT EXPOSED

One server binds to exactly one client, so there is no client identifier for an agent to spoof, exposing catalogue description, provenance and outcome tools through the single tenant guard. Per-client agent documentation is generated from that client's resolved catalogue only, so one client's docs cannot enumerate another's vocabulary.

Ranked improvement recommendations BUILT, NOT EXPOSED

Ranked recommendations for improving paid media, each carrying a forecast, the levers behind it, and the measured before-and-after result of changes that already ran.

Staged campaign changes under human approval BUILT, NOT EXPOSED

Proposed campaign changes are staged paused and never fire themselves. An approval expires twelve hours after it is posted and a lapsed one cannot fire, so a decision nobody made stays unmade. A single approval cannot raise a daily budget by more than 1.5x its current value, and the check fails closed: if the current budget cannot be read, the change is refused rather than applied to an assumed value.

Public demo query surface LIVE

A read-only, unauthenticated endpoint returning the real response schema over demo-tenant fixture data, so an agent can learn the interface without a human in the loop.

Relates to: live

Data domain (9)

Paid media LIVE

Meta Ads (spend, purchases, placements, creatives, demographics, action values)

Relates to: live
Organic social BUILT, NOT EXPOSED

Meta organic posts

Relates to: built-not-exposed
Bookings and booked revenue LIVE

iCal booked-calendar ingest

Relates to: live
Platform revenue LIVE

Kickstarter pledge ingest, with personal data held in a separate namespace

Relates to: live
Accounting and finance BUILT, NOT EXPOSED

FreeAgent (true CAC, profitability, cashflow views)

Relates to: built-not-exposed
CRM and contact spine BUILT, NOT EXPOSED

Contact schema and derive; fixture-fed

Relates to: built-not-exposed
Competitor advertising LIVE

Meta Ad Library API (official, whitelisted path)

Relates to: live

Question this warehouse answers (8)

What did this ad spend actually return, checked against the platform's own API rather than a self-reported screenshot? LIVE
Where do the pixel, the platform and the booked revenue disagree, and by how much? LIVE
Which of my own creatives won spend and clicks, and which should be cut? LIVE
What is a named competitor running right now, in what formats, and for how long has each ad survived? LIVE
How does organic search performance sit alongside paid, in the same governed place? LIVE
Where did this specific number come from, and who asked what of the warehouse? LIVE
What should I change next, what is the forecast, and what happened when the last change ran? BUILT, NOT EXPOSED
Can I ask this in plain English and get a checkable answer with its provenance attached? BUILT, NOT EXPOSED

Callable endpoint (2)

What is askable on the demo surface: metric ids, their dimensions, date grain, the named windows, and the filter shapes supported and not supported. LIVE
Relates to: live
A schema-correct response with a provenance block, served from static fixtures. Unknown parameters are rejected with a structured error naming the accepted set. LIVE
Relates to: live