Track

Scientific Research — STEM2Connect AI Hackathon. Project: LabLedger. Team: FourStack.

Inspiration

Small student research projects often begin in a CSV. Missing readings, duplicate identifiers and unusual values can go unexplained. Automatically deleting anomalies can discard valid observations and erase why the data changed. LabLedger makes review decisions visible and exportable.

What it does

Paste a small CSV or load the clearly synthetic example. Choose the identifier, numeric measurement, optional group and unit columns. Deterministic checks flag missing identifiers, duplicate IDs, missing/invalid measurements and missing grouping labels. A local one-feature Isolation Forest suggests unusually isolated readings within each group/unit pair.

Every flagged record requires an explicit keep/exclude decision and a reason before export. The reviewed CSV contains retained records and audit columns. The full JSON ledger preserves all original records, including exclusions, source CSV record numbers, flags, decisions, reasons and model parameters. Nothing is removed automatically.

How it was built and how AI was used

The browser app uses JavaScript, HTML and CSS, without dependencies, API credits or a hosted model. The original small Isolation Forest implementation follows Liu, Ting and Zhou's 2008 algorithm: 64 random partition trees, subsamples up to 64 records, a reproducible seed and normalized path-length scores. Group/unit pairs need at least eight numeric readings. The review threshold above 0.65 is a prototype heuristic, not a calibrated error probability.

Codex assisted with design, implementation, synthetic data, tests, documentation and demo preparation. All product code was created October 21, 2026, during the permitted build period. No earlier winning project, ReliefBoard or TraceTutor product code was reused. Personal team contributions and learning experiences must be described by the members after actual review; they are not invented here.

Challenges and implementation lessons

Separate baselines matter: readings near 70 in one group should not be condemned because another group is near 20. Numeric validation must distinguish zero from missing or invalid data. CSV parsing must handle quoted commas/newlines while rejecting malformed records. Export gates must clear when input changes, and the audit must preserve excluded records rather than silently erasing them.

What works now

Thirteen core tests pass. Public browser testing used 20 synthetic records and found five flagged records. Explicit review retained the original duplicate-ID record and excluded four deliberately injected problems. The downloaded CSV contains 16 retained records; the JSON ledger contains all 20. Editing input disables stale exports, and malformed CSV produces a visible error. The captioned 87-second demo uses edited actual browser captures with synthetic narration, not a continuous recording.

Limitations and privacy

This prototype models one measurement at a time; it is not multivariate scientific validation. Small groups abstain. Labels are grouped as provided, without unit conversion. Biased samples, clustered mistakes and valid extremes can affect results. A flag is a question for the reviewer, not proof of an error. These narrow fixture checks are not an accuracy benchmark.

Analysis stays in the browser without data uploads, persistence or execution. Downloaded reports contain the supplied data and must be shared deliberately. Hosting still involves ordinary page requests. This is a research review aid, not certification for clinical, legal or safety decisions.

What's next

Evaluate with consented research datasets and researcher feedback, add model/threshold comparisons, and explore multivariate analysis with clearly stated assumptions. These are future plans, not completed features.

Links

Demo Day

November 24 presentation is still required. Live/prerecorded arrangements and the prerecorded deadline are announced in the official event Discord. No attendance or presentation completion is claimed.

Built With

Share this project:

Updates

Submission history