INTERACTIVE DEMO — SYNTHETIC DATA

Order Intake Trial

A three-day hiring trial built as an engineering artefact: a deterministic generator that renders phone-photographed wholesale order forms with seeded defects, and an answer key that grades the correct response to each one rather than the correct value. On this page the visitor is the candidate.

Every record on this page is fabricated. No production system, customer, employee or credential is involved.

The production system behind this demo was engineered by Prada Dipa — LinkedIn profile, opens in a new tab and Luthfi Aditya — LinkedIn profile, opens in a new tab. I managed and directed it — requirements, technical review, QA and rollout.

READ ABOUT THE SYSTEM

THE BATCH, AS IT ARRIVES

38 images in two drops. The filenames are the ones a sales rep’s phone produces, so no order number, no page marker and no duplicate is discoverable without opening the picture. Nine are here.

ONE FORM, AND WHAT THE KEY SAYS TO DO WITH IT

Synthetic wholesale order form MK-4463 for MERIDIAN KNITWEAR, photographed on a phone

WhatsApp Image 2026-08-11 at 14.25.59.jpeg
MK-4463 · TEMPLATE A · 3 LINES · CLEAN

Boxes are the generator’s own coordinates, pushed through the same rotation and crop as the photograph.

FINDINGS ON THIS FORM

Pick a finding, or click a highlighted region on the form. You are asked what the pipeline should do with it — not what it says.

GRADED 0/14 · CORRECT 0

THE TWO TRAPS

Every defect above announces itself. These two do not. A candidate hands in a spreadsheet and states two numbers; the numbers are graded against the generator’s ground truth, and a wrong one names which trap produced it.

One image is not one order. Two of these 38 images are halves of the same order, and three are photographs of orders that were already delivered yesterday.

THE FOURTEEN CLASSES

Counts are from this run of the generator: 39 seeded findings across 38 images. The right-hand column is the assessment — a candidate who extracts every character correctly and answers this column wrongly has failed, because a review queue that rejects the safe cases and accepts the dangerous ones is worse than no queue at all.

  • D1_SIZE_TOTAL_MISMATCH

    Size breakdown does not sum to the stated total

    Both numbers are legible and they disagree. Silently picking either one invents a quantity nobody wrote down.

    FLAG FOR REVIEW

    6× IN THIS RUN

  • D2_UNKNOWN_STYLE_CODE

    Style code is not in the product master

    There is nothing to reconcile it against. It goes to the review queue with the reason attached, not into the order.

    REJECT TO QUEUE

    5× IN THIS RUN

  • D3_CODE_NAME_MISMATCH

    Code is valid, but the description belongs to a different code

    Either field could be the mistake. Which one is authoritative is a business call, not an extraction call.

    FLAG FOR REVIEW

    3× IN THIS RUN

  • D4_COLOR_NOT_AVAILABLE

    Colour is not offered in that style

    Not a spelling problem — the combination does not exist. Substituting the nearest colour ships the wrong garment.

    REJECT TO QUEUE

    1× IN THIS RUN

  • D5_COLOR_NEAR_MISS

    Colour is a near-miss spelling of a real colour

    “Navy” is “Ink Navy”. This one normalises and goes straight through. Rejecting it is the wrong call — a pipeline that queues every near-miss buries the office team and gets switched off.

    ACCEPT

    7× IN THIS RUN

  • D6_PRICE_MISMATCH

    Unit price on the form differs from the master

    The rep may have agreed a price. Overwriting it with the master price destroys the only record that it was agreed.

    FLAG FOR REVIEW

    2× IN THIS RUN

  • D7_MISSING_SHIP_DATE

    A required order-level field is blank

    There is nothing to extract. An empty cell in the sheet reads as though somebody answered.

    FLAG FOR REVIEW

    2× IN THIS RUN

  • D8_FREETEXT_INSTRUCTION

    A handwritten instruction in the margin that is not an order line

    “CANCEL the 2104 Ember Clay from PO MK-4460.” An extractor that only reads the table drops this completely, and nobody finds out until the cancelled goods ship.

    ESCALATE TO A HUMAN

    2× IN THIS RUN

  • D9_IMAGE_ROTATED

    Photo taken at an angle

    Still legible. Extract it, or record low confidence — but queueing a form for a human because it is crooked is a false positive.

    ACCEPT

    1× IN THIS RUN

  • D9_IMAGE_LOW_LIGHT

    Dark, low-contrast phone photo

    Same call as the rotated one. Bad photography is not bad data until it is actually unreadable.

    ACCEPT

    1× IN THIS RUN

  • D9_IMAGE_CROPPED

    The frame cuts off part of the table

    The fields are genuinely not in the image. Guessing them is the exact failure this assessment exists to detect.

    FLAG FOR REVIEW

    1× IN THIS RUN

  • T1_CROSS_BATCH_DUPLICATE

    A batch-2 image is a re-send of an order already in batch 1

    Dedupe on order number at the store, not per file. One image per order creates orders that were never placed.

    DEDUPE ON ORDER NO.

    3× IN THIS RUN

  • T2_MULTI_PAGE_ORDER

    One order photographed as two pages

    “Page 1 of 2” and “Page 2 of 2” merge into one order of six lines. Treating each image as an order both loses three lines and invents an order.

    MERGE THE PAGES

    2× IN THIS RUN

  • T3_NEW_FORM_TEMPLATE

    The rep switched to a new form template mid-batch

    Fields reordered, QTY relabelled UNITS, ACCOUNT CODE gone. Schema-driven extraction survives it; a position-hardcoded prompt drops fields and reports success.

    ACCEPT

    3× IN THIS RUN