Analytics26 Oct 2026Halden Ceramics, sandbox account
The desk, by the numbers
Live data from the desk: every dispute on the shop's PayPal sandbox account, where it stands with PayPal, and the brief Exhibit wrote for it. See what is due before PayPal's ten-day window closes, what fighting kept against what refunds gave back, and which sentences the checker struck. Click a rung, a stamp or a bar to filter the page, or ask the analyst.
Laying out the report…
How the report is made
The report runs on AG Studio, embedded in Exhibit. Switch to Edit with the analyst to move widgets, change what they show, add Exhibit's own from the widget menu, or ask for one in words.
Exhibit's own widgets
Four custom AG Studio widgets drawn in React and SVG: the deadline ladder, the kept, refunded and lost ledger, the checker's pleading paper and the rubber stamps. They read their rows through Studio, so page filters and cross-filters apply to them; each has its own form in Studio's edit panel and a description Studio's agents read. Grid cells print case ids as Bates numbers that open the case on a double-click.
An analyst on Studio's agent framework
Exhibit analyst is a custom agent on Studio's Agent Framework. It knows PayPal's ten-day window, fight or refund, and the checker, and has five tools of its own:
deadline_ladder,desk_ledger,turn_to_page,new_widget_slotandcheck_widget. It hands anything that changes the dashboard to Studio's own planning, page and widget agents, then reads the report back so it only reports what changed. Every turn runs on the app's own model (GPT-5.6 on Azure OpenAI) through this server, which writes the analyst's instructions itself; no key reaches the browser.Paperwork, not a template
Studio's theme sets the blue backing sheet, white widgets ruled in hairlines, the site's type, and a chart palette in Exhibit's inks: blue for money at stake, red for lost or struck, green only for a win. Grid widgets print case ids as red Bates numbers, and the pages are binder tabs.
Straight from the desk
Two tables from
/api/analytics: one row per dispute on the sandbox account, read from PayPal's Disputes API, and one per sentence Exhibit wrote and checked, joined on the case id. The page reads them again every minute.