-
-
The remaining calculated difference is $80: $55 for Week A and $25 for Week B, under the retained assumptions.
-
Check the record behind an interpretation. Source excerpts provide traceability, not proof of authenticity.
-
Edit and save a local request grounded in the current account. Saved wording can be copied or downloaded; it is not sent automatically.
-
The fictional example links $60 gross, $48 received and $12 withheld as one correction rather than counting the bank entry again.
Inspiration
“We corrected both weeks.”
A payment arrives, but a worker still needs to understand which week it covers, what remains unresolved, and what records to ask for next.
Wage disputes can unfold across payslips, bank receipts, messages and later corrections. A new document can change the explanation without changing the total. WageProof grew from that problem: helping a worker, or someone assisting them, maintain a clear, checkable account as evidence changes.
The initial scope is an existing wage dispute involving ordinary California hourly pay.
What it does
WageProof turns imported wage records into a proposed account that a person can inspect, correct and review. It connects payment interpretations to source excerpts, compares new evidence with the last reviewed version, and prepares a factual case update with supporting records.
The fictional demonstration follows $140 → $80 → $80 in remaining calculated differences.
A $60 gross correction produces a $48 net receipt. Those are two views of one payment and must not be counted twice. Later evidence explains how the correction was allocated between two weeks. The remaining weekly differences become $55 and $25, while the combined $80 stays unchanged.
The allocation question is answered. Payroll’s supporting calculation and reconciliation are still missing.
Users can:
- Import supported text, PDF and image records and inspect their extracted text.
- Open the source behind an interpretation and keep uncertain payment details explicit.
- Correct an account with an attributed explanation and review a specific revision.
- Compare later evidence with the last reviewed account while preserving earlier versions.
- Export a portable ZIP containing the factual update, detailed explanation, selected original records and evidence links.
- Prepare, edit and save an unsent records-request draft grounded in the current account.
A bundled, read-only example lets reviewers explore three recorded revisions and six fictional originals without model credentials. Fresh analysis uses the configured model service.
WageProof prepares material for human review. It does not send correspondence, file documents or decide a claim.
How we built it
WageProof was built as a solo student project using React, JavaScript and Vite, with a Node.js server and Python utilities.
Poppler extracts PDF text, while Tesseract provides labelled OCR. Through Codex CLI, the configured model proposes a structured interpretation with tools disabled. Recorded analysis used gpt-6-astra with the configured azure provider.
Ajv validates the schema. Application code checks exact quoted source anchors and performs supported wage calculations in integer cents. Versioned local storage connects original records, account revisions and review state. Request drafts use deterministic starting text from the retained request, without another model call.
Original files and case storage remain local. Fresh inference sends extracted text and case context to the configured model service; it is not offline processing.
OpenAI Codex assisted planning, design, implementation, testing, documentation and media automation. Other components include Lucide React, Marked, and the Manrope and DM Sans fonts.
The current demo uses actual application captures and fictional records, with shortened processing waits disclosed. Its AI narration uses ElevenLabs Neha — Messy and Relatable, with media assembled using Node.js, Python and FFmpeg.
Challenges we ran into
The hardest challenge was preserving meaning across revisions. An unchanged total can hide a changed allocation or an unresolved request.
An early short export omitted a material detail that remained present in the detailed analysis. The export path was repaired, and the original failure was retained in the evaluation record.
Other challenges included separating gross corrections from net receipts, preventing duplicate payments, keeping cleared claim details unknown, and preserving draft text through failed saves or competing edits.
Accomplishments that we're proud of
The released local workflow carries imported records through account review, evidence export and an unsent follow-up draft.
The source passed 124 automated tests and 30 setup/runtime checks on the development macOS host. Desktop and narrow layouts were inspected across source review, saving, conflicts, stale drafts and recovery states.
Small synthetic evaluations compared WageProof with a strong ordinary model workflow. Both passed all eight targets across two previously unused synthetic reserve families. These targets are not an accuracy estimate or evidence of superiority, wage recovery or human time savings.
The most meaningful accomplishment is keeping the evidence, assumptions and unresolved questions visible throughout the workflow.
What we learned
Getting a number right is only part of the job.
A useful account must also explain where the number came from, what changed, what remains unknown and which next action the evidence supports.
Exact source matching makes an interpretation traceable. It does not prove that a document is authentic or that the interpretation is legally correct. Human review needs to remain connected to the particular version and evidence being reviewed.
What's next for WageProof
The next step is consent-based observation with workers or advocates: does maintaining reviewed history, source-linked updates and reusable request wording help enough to justify another tool?
That experience should be compared with their current process before expanding the product’s scope.
The prototype currently supports English records and a limited California hourly calculation slice. It does not determine legal entitlement, penalties or case closure. Practitioner validation, broader document coverage and a public multi-user deployment remain future work.

Log in or sign up for Devpost to join the conversation.