File size: 13,432 Bytes
59db361 1c43ec2 59db361 1c43ec2 59db361 1c43ec2 59db361 1c43ec2 59db361 1c43ec2 59db361 1c43ec2 59db361 1c43ec2 59db361 3396ad2 59db361 1c43ec2 59db361 1c43ec2 59db361 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 | <!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>
|