VIGIL: Verifier-Informed Gated Improvement Loop for Spreadsheet Question Answering
Organizations: Atlassian · Carnegie Mellon University
Abstract
Enterprise agents should improve from delayed feedback without allowing every correction to rewrite system behavior. We study continual harness learning for corpus-level spreadsheet question answering. Building on FiCo (Find-then-Compute), a static retrieval-and-execution backbone, we introduce VIGIL (Verifier-Informed Gated Improvement Loop). Within a question, VIGIL verifies and repairs diversely prompted Structured Query Language (SQL) candidates. Across episodes, delayed labels update only a contract calibrator and query/result-column selector. The base model, prompts, retriever, and recorded candidate pool remain fixed in the continual-learning protocol. With the gold workbook and expected type supplied, the ungated and dual-gated full-replay variants reach 82.4% and 82.0% forward accuracy over 79 documents, from a 75.8% static baseline. The dual gate has the larger retrospective gain (2.7 versus 2.3 points), and its 6.3-point forward gain has a 95% t-interval of 5.6-6.9. In a separate stricter split that excludes 16 documents and 380 questions from fitting and online promotion, the accuracy-only gate raises mean held-out accuracy across ten final harnesses from 80.3% to 86.7%. Calibrator-only adaptation gains 5.9 points, close to the combined 6.4-point gain. Yet three of 26 gate-approved updates reduce held-out accuracy relative to their incumbents, so replay-buffer non-regression does not imply held-out non-regression. MiMoTable and external-task case studies test within-task verification and reuse the same promote-or-retain discipline. Overall, the results support bounded, auditable harness adaptation while revealing where finite replay gates fail to generalize beyond their promotion buffers.
Figures & tables
| Component | Within-question repair | Across-episode learning |
|---|---|---|
| Workbook retriever and loader | Frozen or oracle-supplied | Frozen or oracle-supplied |
| Base model and generation prompts | Frozen | Frozen |
| Candidate SQL | Repairable | Frozen replay pool |
| Answer-contract calibrator | Frozen | Learnable |
| Query/result-column selector | Frozen | Learnable |
| Parser, execution, and hard checks | Non-relaxable | Non-relaxable |
| Track | Systems / intervention | Oracle / controlled input | Valid claim | ||
|---|---|---|---|---|---|
| RQ1 | End to end | Prefix-RAG compared with FiCo | None | 1,810 / 508 | Shared-judge end-to-end difference |
| RQ2 | Controlled ablation | Single-component removal | Gold workbook (compute rows) | 1,810 | Paired effect in fixed runner |
| RQ3 | Verifier / bridge | Repair ladder and workbook/type | Varied by arm | 1,810 | Repair and oracle effects |
| RQ3 | Official MiMoTable | Direct compared with semantic gate | Benchmark-supplied workbook | 641 | Official-prompt judged accuracy |
| RQ4a | Full replay | Static, ungated, and dual-gated | Workbook + type, delayed labels | Forward and retrospective gain | |
| RQ4b | Held-out audit | Static and five adaptive variants | Workbook + type, delayed labels | per ordering + 380 audit | Held-out transfer and gate behavior |
| System | DataBench | MiMoTable retrieval |
|---|---|---|
| Prefix-RAG baseline | 12.8% | 22.2% |
| FiCo | 76.2% | 79.7% |
| Adaptation budget | Accepted | Correct | Overall accuracy | |
|---|---|---|---|---|
| Two initial candidates, no repair | 1,516 | 1,335 | 73.8% | — |
| first repair round | 1,574 | 1,379 | 76.2% | |
| second repair round | 1,576 | 1,381 | 76.3% |
| Official-workbook system | Mean judged accuracy |
|---|---|
| Claude 3.5 Sonnet, reported English text-only | 79.0% |
| Direct GPT-5.4 | 85.66% |
| Vigil semantic agreement | 85.70% |
| Treatment | Forward accuracy | Coverage | Selective accuracy | Retrospective gain | Harmful deployed | |
|---|---|---|---|---|---|---|
| Static harness | 75.8% | — | 87.1% | 87.0% | — | — |
| Ungated update | 82.4% | +6.7 | 94.2% | 87.5% | ||
| Dual replay gate | 82.0% | 93.8% | 87.5% | +2.7 | 0/16 |
| Final harness | Accuracy | Coverage | Selective accuracy | |
|---|---|---|---|---|
| Static | 80.3% | — | 90.5% | 88.7% |
| Calibrator only | 86.2% | 96.7% | 89.1% | |
| Selector only | 80.5% | 90.5% | 88.9% | |
| Combined, ungated | 86.6% | 96.7% | 89.5% | |
| Combined, accuracy-only gate | 86.7% | +6.4 | 96.8% | 89.6% |
| Combined, dual gate | 86.5% | 96.6% | 89.6% |
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
| Outcome | Count | Share |
|---|---|---|
| Correct | 103 | 54% |
| Retrieval within document | 59 | 31% |
| Retrieval across documents | 26 | 14% |
| Extraction error | 2 | 1% |
| Generation error | 0 | 0% |
| Representation | Coverage@5 | End-to-End |
|---|---|---|
| 350-token chunks | 16% | 5% |
| Row packing | 29% | 10% |
| Precomputed summaries | 39% | 15% |
| Multi-granularity [ Gulati et al., 2026b ] | 6% | 6% |
| Whole-table execution | — | 78% |
| Workbook supplied | Gold type | Predicted type |
|---|---|---|
| Gold workbook | 76.3% | 70.1% |
| FiCo -selected workbook | 66.3% | 60.8% |
| Observed signal | Events | Potential remediation |
|---|---|---|
| Count intent but no COUNT | 293 | Intent representation / generation prompt |
| Parser error | 236 | Structured decoding / repair examples |
| Type or result-shape mismatch | 193 | Contract calibration / result-column selection |
| Binder error | 169 | Schema normalization / grounding |
| Read-only or single-query violation | 122 | Constrained decoding |
| Diagnostic | DataBench | MiMoTable |
|---|---|---|
| Document recall@10 | 95.1% | 99.6% |
| Gold document selected for execution | 81.3% | 90.9% |
| SQL execution without exception | 98.5% | 97.2% |
| Final answer correct | 76.2% | 79.7% |
| Stage | Intervention | Full | Ablated | |
|---|---|---|---|---|
| Find | Remove summaries (final) | 21.3% | 18.7% | |
| Find | Remove schema reranking (final) | 21.3% | 20.4% | |
| Find | Remove empty-result fallback (final) | 21.3% | 21.3% | |
| Compute | Remove representative/sample values (denotation) | 25.9% | 18.3% | |
| Compute | Remove representative/sample values (final) | 27.8% | 20.8% |
| Answer type | Questions | Correct | Accuracy |
|---|---|---|---|
| Boolean | 387 | 328 | 84.8% |
| Number | 412 | 322 | 78.2% |
| Category | 333 | 240 | 72.1% |
| List[category] | 329 | 210 | 63.8% |
| List[number] | 349 | 281 | 80.5% |
| Terminal candidate stage | Questions | Correct | Accuracy |
|---|---|---|---|
| Initial candidate 1 | 1,456 | 1,157 | 79.5% |
| Initial candidate 2 | 258 | 178 | 69.0% |
| Repair 1 | 89 | 44 | 49.4% |
| Repair 2 | 7 | 2 | 28.6% |
| Question | Baseline | FiCo |
|---|---|---|
| “Among the top five countries by reported coronavirus cases, which has the highest case-fatality ratio?” | “I don’t know. The context only lists the United States.” | Brazil (2.189%) from a grouped ratio query. |
| “Among non-drinkers, is gambling mostly Yes or No?” | “Based on context, I cannot determine.” | Mostly No: 89 No versus 33 Yes. |
| “Do PASS or FAIL movies have a higher profitable share?” | “I don’t know. The context does not contain financial data.” | PASS: 64.2% versus FAIL: 61.8%. |
| System | Selection rule | Mean (%) | vs. direct (points) |
|---|---|---|---|
| Direct GPT-5.4 | Official prompt, medium reasoning | 85.66 | — |
| One verifier | Workbook-aware replace/retain | 85.58 | |
| Two-verifier consensus | Second verifier authorizes replacement | 85.59 | |
| Three-candidate deliberation | Randomized direct/calculation/audit arbitration | 85.51 | |
| Calculation candidate | Calculation-specialized prompt | 84.96 | |
| Audit candidate | Audit-specialized prompt | 84.70 |
| CL-Bench domain | Highest released mean | Adapter mean | |
|---|---|---|---|
| Blind spectrum monitoring | 46.198 | 55.605 | |
| Sales prediction | 10.073 | 11.202 | |
| Exploitable poker | 343.020 | 346.400 |
Table QA
Table question answering studies how AI systems retrieve, interpret, and reason over structured data to answer natural-language questions.
See all 66 papers