HomeDocsComponentsBlocksForm contractValidation
Blocks / Rate card

Rate card

Three numeric fields, three different canonical types.

Open in Claude Code

Emits 12000 — integer cents, never 120.00 as a float.

Shows 10, emits 0.1. Capped at 40%.

Quarter-hour increments, stored as seconds.

This is a live form, not a screenshot — fill it in and submit it. The code tab is the exact file that is running, read from disk at build time, so the two cannot drift.

What it is doing

The clearest demonstration of why the canonical value matters. Three fields that all look like numbers to a user and are three completely different numbers to your database: integer cents, a fraction, and seconds. Get any one of them wrong and the invoice is wrong.

What it submits

FIELDVALUE
rate12000 — cents, formatted as €120,00 for de-DE
discount0.1 — a fraction, while the field shows 10
minimum1800 — seconds, while the field shows 30m

Components used