| <!doctype html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>Journal-Entry Validation — Centific AI Research</title> |
| <link rel="stylesheet" href="/static/styles.css"> |
| <link rel="stylesheet" href="/static/landing.css"> |
| </head> |
| <body> |
| <header class="topbar"> |
| <div class="brand-mark">JE</div> |
| <div class="brand-text"> |
| <h1>Journal-Entry Validation</h1> |
| <p class="brand-sub">Centific AI Research</p> |
| </div> |
| <span id="health-dot" title="backend status"></span> |
| </header> |
| <nav class="tabbar" aria-label="Site sections"> |
| <a href="#home" data-tab="home">Home</a> |
| <a href="#datasets" data-tab="datasets">Datasets</a> |
| <a href="#tasks" data-tab="tasks">Tasks</a> |
| <a href="#scoring" data-tab="scoring">Scoring</a> |
| <a href="#console" data-tab="console">Console</a> |
| </nav> |
|
|
| <main class="wrap"> |
| <div id="tab-home" class="tabpane landing" hidden> |
| <section class="hero"> |
| <div> |
| <p class="eyebrow">Centific AI Research</p> |
| <h1 class="display">Can your AI audit <span class="grad">like an auditor?</span></h1> |
| <p class="lede">An evaluation environment where AI agents investigate real |
| government ledger data — and are scored the way professionals are.</p> |
| <div class="cta-row"> |
| <a class="btn-primary" href="#tasks">Explore the environment</a> |
| <a class="btn-ghost" href="https://www.centific.com/" target="_blank" rel="noopener">Talk to us</a> |
| </div> |
| </div> |
| <div class="je-card" aria-hidden="true"> |
| <div class="je-head"><span>JE-2041-0193</span><span>period 7</span></div> |
| <div class="je-row"><span>Dr 5210 Contracted services</span><span>12,480.00</span></div> |
| <div class="je-row"><span>Cr 1010 Cash</span><span>12,480.00</span></div> |
| <div class="je-row je-flag"><span>flag: duplicate payment</span><span>confirmed</span></div> |
| <span class="stamp-chip">evidence cited ✓</span> |
| </div> |
| </section> |
|
|
| <section> |
| <p class="eyebrow">The problem</p> |
| <h2>Answering isn't auditing</h2> |
| <p class="section-intro">Finance and audit teams review thousands of journal |
| entries every close. Sampling misses things; blanket rules flag too much. |
| And an AI that merely <em>answers</em> can't be trusted with this work — you |
| need one that <strong>investigates</strong>: opens the documents, checks the |
| numbers, and cites its evidence.</p> |
| </section> |
|
|
| <section> |
| <p class="eyebrow">What this is</p> |
| <h2>Real cases, real tools, real scores</h2> |
| <div class="step-strip"> |
| <div class="info-card"> |
| <h3>A case is issued</h3> |
| <p>A slice of a real government ledger and a validation question. The |
| environment holds a verified answer key the agent never sees.</p> |
| </div> |
| <div class="info-card"> |
| <h3>The agent investigates</h3> |
| <p>It works the case with professional tools — querying the ledger, |
| looking up reference data, opening supporting documents. Every tool call |
| is logged.</p> |
| </div> |
| <div class="info-card"> |
| <h3>Every claim is scored</h3> |
| <p>Findings are checked against the answer key; the way the agent worked |
| is scored against professional standards. Deterministically.</p> |
| </div> |
| </div> |
| </section> |
|
|
| <section> |
| <p class="eyebrow">How we measure</p> |
| <h2>Three axes, reported separately</h2> |
| <div class="axis-cards"> |
| <div class="info-card"> |
| <h3>Outcome</h3> |
| <p>Did it find the right entries — and call each finding by the right |
| name?</p> |
| </div> |
| <div class="info-card"> |
| <h3>Process</h3> |
| <p>Did it work like an auditor — evidence opened, citations honest, no |
| wasted steps?</p> |
| </div> |
| <div class="info-card axis-soon"> |
| <h3>Rationale <small>· upcoming</small></h3> |
| <p>Is the written reasoning sound? Graded against human experts as |
| judgment-call tasks arrive.</p> |
| </div> |
| </div> |
| </section> |
|
|
| <section> |
| <p class="eyebrow">Why trust the numbers</p> |
| <h2>Scores you can stand behind</h2> |
| <ul class="trust-list"> |
| <li><strong>Fully reproducible.</strong> The same case always replays |
| byte-for-byte — a score can be re-derived, not just believed.</li> |
| <li><strong>Fabrication is fatal.</strong> Cite evidence the agent was |
| never shown and the episode fails automatically, whatever the other numbers |
| say.</li> |
| <li><strong>Baselines set the floor.</strong> Two built-in scripted |
| strategies — flag everything, answer without evidence — run on every task. |
| A model only matters if it beats both.</li> |
| </ul> |
| </section> |
|
|
| <footer class="land-footer"> |
| <span>Centific AI Research — journal-entry validation environment</span> |
| <a class="btn-ghost" href="https://www.centific.com/" target="_blank" rel="noopener">Talk to us</a> |
| </footer> |
| </div> |
| <div id="tab-datasets" class="tabpane landing" data-content="/static/content/datasets.html" hidden></div> |
| <div id="tab-tasks" class="tabpane landing" data-content="/static/content/tasks.html" hidden></div> |
| <div id="tab-scoring" class="tabpane landing" data-content="/static/content/scoring.html" hidden></div> |
| <div id="tab-console" class="tabpane" hidden> |
|
|
| <section id="configure"> |
| <div class="configure-grid"> |
|
|
| <div class="panel col-tasks"> |
| <div class="panel-title">Tasks</div> |
| <div class="panel-body"> |
| <div id="task-list" class="crowlist"></div> |
| </div> |
| </div> |
|
|
| <div class="panel col-mid"> |
| <div class="panel-title">Configuration</div> |
| <div class="panel-body"> |
| <fieldset class="box" id="knob-box" hidden> |
| <legend class="lab">Knobs</legend> |
| <div class="lab boxlab">Instance & difficulty</div> |
| <div id="knobs"></div> |
| </fieldset> |
|
|
| <fieldset class="box" id="tool-box" hidden> |
| <legend class="lab">Tools</legend> |
| <div class="lab boxlab">Tool surface <span class="lab-sub">(uncheck to raise difficulty)</span></div> |
| <div id="tools" class="toolgrid"></div> |
| </fieldset> |
|
|
| <fieldset class="box" id="model-box"> |
| <legend class="lab">Models</legend> |
| <div class="lab boxlab">Models × seeds</div> |
|
|
| <div class="field-row"> |
| <span class="fieldlabel">Models</span> |
| <div class="model-field"> |
| <button type="button" id="model-dd-btn" class="dd-btn" |
| aria-haspopup="listbox" aria-expanded="false"> |
| <span id="model-dd-label">Select models</span> |
| <span class="dd-caret" aria-hidden="true">▾</span> |
| </button> |
| <div id="model-dd" class="dd-panel" hidden> |
| <input type="search" id="model-search" |
| placeholder="Search all models…" autocomplete="off"> |
| <p id="curated-note" class="dd-note" hidden></p> |
| <div id="model-list" class="dd-list" role="listbox"></div> |
| <p id="model-dd-hint" class="dd-note"></p> |
| </div> |
| </div> |
| </div> |
| <div id="model-tags" class="model-tags"></div> |
|
|
| <div class="field-row baseline-row"> |
| <span class="fieldlabel">Baselines</span> |
| <label class="baseline-check"> |
| <input type="checkbox" id="baseline-flag" value="baseline:flag_everything"> |
| Flag everything |
| </label> |
| <label class="baseline-check"> |
| <input type="checkbox" id="baseline-noev" value="baseline:no_evidence"> |
| No evidence |
| </label> |
| <span class="fieldnote">scripted, free</span> |
| </div> |
|
|
| <div class="field-row"> |
| <span class="fieldlabel">Seeds per model</span> |
| <input type="range" id="seed-count" min="1" max="20" step="1"> |
| <span class="fieldval mono" id="seed-count-val"></span> |
| </div> |
| <div class="field-row"> |
| <span class="fieldlabel">Step budget</span> |
| <input type="range" id="step-budget-range" min="10" max="20000" step="10"> |
| <input type="number" id="step-budget-num" min="1" step="1" class="mono"> |
| </div> |
| <div class="field-row"> |
| <span class="fieldlabel">Prompt version</span> |
| <select id="prompt-version"> |
| <option value="minimal">Minimal: bare task brief</option> |
| <option value="standard" selected>Standard: adds citation rule, step budget</option> |
| <option value="detailed">Detailed: adds scenario, rationale guidance</option> |
| </select> |
| <button type="button" id="prompt-view-btn" class="chip">View</button> |
| </div> |
| <div id="prompt-preview" class="prompt-preview" hidden> |
| <div class="lab">System prompt</div> |
| <pre id="prompt-preview-system" class="mono"></pre> |
| <div class="lab">Task brief (user message)</div> |
| <pre id="prompt-preview-brief" class="mono"></pre> |
| </div> |
| </fieldset> |
|
|
| <p id="seed-warning" class="rnote bad" hidden></p> |
| <p id="withheld-note" class="rnote warn" hidden></p> |
| <p id="headroom-warning" class="rnote warn" hidden></p> |
| <p id="launch-error" class="rnote bad" role="alert" hidden></p> |
| <div class="launch-row"> |
| <button id="launch" type="button" disabled>Launch run</button> |
| </div> |
| </div> |
| </div> |
|
|
| <div class="panel col-run"> |
| <div class="panel-title">Run config</div> |
| <div class="panel-body"> |
| <pre id="config-preview" class="mono"></pre> |
| <div class="lab" style="margin-top:12px">Sweep estimate</div> |
| <div class="box" id="sweep-estimate"></div> |
| </div> |
| </div> |
|
|
| </div> |
| </section> |
|
|
| <section id="history"> |
| <div class="panel"> |
| <div class="panel-title panel-title-row"> |
| <span>Past runs</span> |
| <button type="button" id="history-refresh" class="chip">Refresh</button> |
| </div> |
| <div class="panel-body"> |
| <p id="history-empty" class="rnote" hidden>No runs recorded yet. Configure and launch one above.</p> |
| <div id="history-list" class="crowlist"></div> |
| </div> |
| </div> |
| </section> |
|
|
| <section id="live" hidden> |
| <div class="panel"> |
| <div class="panel-title panel-title-row"> |
| <span>Live run</span> |
| <span class="run-meta-row"> |
| <span id="live-run-id" class="mono"></span> |
| <span id="live-status" class="stat"></span> |
| <span id="live-conn" class="conn-badge"></span> |
| </span> |
| </div> |
| <div class="panel-body"> |
| <p id="live-banner" class="rnote bad" hidden></p> |
|
|
| <div class="lab">Episodes</div> |
| <div id="episode-grid" class="episode-grid"></div> |
|
|
| <div id="player-grid" class="player-grid" hidden> |
| <div class="box" id="step-feed-panel"> |
| <div class="panel-head"> |
| <span class="lab" style="margin:0">Step log</span> |
| <span id="step-feed-title" class="mono"></span> |
| </div> |
| <div id="step-feed" class="step-feed"></div> |
| </div> |
| <div class="box scoreboard"> |
| <div class="lab">Live scoreboard</div> |
| <div id="scoreboard-body"></div> |
| </div> |
| </div> |
|
|
| <p id="live-terminal-note" class="rnote bad" hidden></p> |
| </div> |
| </div> |
| </section> |
|
|
| <section id="results" hidden> |
| <div class="panel"> |
| <div class="panel-title">Results</div> |
| <div class="panel-body"> |
| <div class="results-level" id="results-level-1"> |
| <div class="panel-head"> |
| <h2>By model</h2> |
| <button type="button" class="raw-toggle" data-level="1">Raw JSON</button> |
| </div> |
| <div id="results-model-table-wrap"></div> |
| <pre id="results-raw-1" hidden></pre> |
| </div> |
|
|
| <div class="results-level" id="results-level-2" hidden> |
| <div class="panel-head"> |
| <h3 id="results-level-2-title"></h3> |
| <button type="button" class="raw-toggle" data-level="2">Raw JSON</button> |
| </div> |
| <div id="results-seed-table-wrap"></div> |
| <pre id="results-raw-2" hidden></pre> |
| </div> |
|
|
| <div class="results-level" id="results-level-3" hidden> |
| <div class="panel-head"> |
| <h3 id="results-level-3-title"></h3> |
| <button type="button" class="raw-toggle" data-level="3">Raw JSON</button> |
| </div> |
| <div id="results-breakdown" hidden></div> |
| <div id="results-step-table-wrap"></div> |
| <pre id="results-raw-3" hidden></pre> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| </div> |
| </main> |
|
|
| <script src="/static/app.js"></script> |
| <script src="/static/tabs.js"></script> |
| </body> |
| </html> |
|
|