
How Unspoken Words Enter AI Meeting Transcripts
A fluent transcript can contain words nobody said. Preserve the recording, inspect silent spans and separate draft text from statements that become meeting evidence.
Read MoreZharfAI Team

A maintenance assistant reads a bilingual supplier quotation. It extracts ۱۲٫۵, normalizes the digits to 12.5, and proposes a purchase total. The arithmetic is internally consistent. The result is still unsafe: the source line did not say whether the quantity was kilograms or tonnes, the price used another currency, a comma elsewhere meant a thousands separator, and the supplier rounds tax at invoice level while the purchasing system rounds each line.
The reader decision is not simply whether the model “can do math.” It is: for this quantitative claim, may the AI present a number, may a deterministic service calculate a result, or may the result authorize a real effect? Those are three different permissions.
The central rule is: a model may interpret and propose a quantity, but it must not become the authority for its unit, currency, precision, rounding, evidence, or business effect. Put those properties in a versioned measurement contract, execute the calculation in a deterministic engine, and reject or escalate any claim whose meaning is incomplete.
12.5 is a valid decimal lexeme. It is not yet inventory, money, duration, a percentage, or a safe threshold. A useful quantitative claim needs a semantic envelope:
| Property | Question the system must answer |
|---|---|
| Quantity kind | Is this mass, money, count, time, temperature, rate, or something else? |
| Unit or currency | Kilograms or tonnes? USD or another dollar-denominated currency? |
| Scale and precision | Are trailing zeros significant? How many fractional places are allowed? |
| Rounding | Which mode, at which step, and to which quantum? |
| Evidence | Which source region, record version, or system of record supports the value? |
| Effective time | When did the price, rate, limit, or conversion rule apply? |
| Uncertainty | Is this exact, measured within a tolerance, estimated, or ambiguous? |
| Authority | May it be displayed, calculated, compared, posted, paid, or only reviewed? |
The BIPM SI Brochure, updated in 2026, expresses the value of a quantity as a number and a unit; changing the unit changes the numerical value without changing the underlying quantity. That simple metrology rule matters in AI systems because language models can preserve a plausible number while silently losing its unit.
Money adds another namespace. SIX, the official ISO 4217 maintenance agency, maintains alphabetic and numeric currency codes and their minor-unit relationships. A symbol such as $ or a translated currency name is not an adequate machine identifier. Neither is “two decimals” a universal property of money.
The NIST AI RMF trustworthiness characteristics define validation as objective evidence that requirements for an intended use were fulfilled, and accuracy as closeness to true or accepted values. NIST also says measurement should reflect realistic use conditions and that human intervention may be needed when a system cannot detect or correct an error. It does not prescribe a quantity schema or a calculator architecture.
Research gives a narrower technical result. The 2023 ICML paper Program-Aided Language Models reports that language models can decompose natural-language problems yet still make logical and arithmetic mistakes; its PAL method delegates the solution step to an interpreter and improves results across the evaluated reasoning tasks. That study is not financial-control certification, and a generated program can encode the wrong unit or business rule. It supports separation of language interpretation from execution, not blind trust in model-written code.
The standards and documentation below establish unit, currency, numeric representation, and rounding behavior. The quantity contract, the three permission lanes, and the release gate in this guide are ZharfAI analysis built from those facts. They are not a form mandated by NIST, BIPM, ISO, IEEE, Python, PostgreSQL, HMRC, or the PAL authors.
Assign each quantitative use case to the least powerful lane that meets the need:
| Lane | AI may do | Independent system must do | Typical terminal result |
|---|---|---|---|
| Present | Find a candidate value, quote it, explain a verified result | Resolve evidence, unit, locale, and display format | Show with provenance or mark unresolved |
| Compute | Map language into a proposed expression and operands | Validate types and rules, then calculate deterministically | Return result plus a calculation receipt |
| Authorize | Summarize the case and identify exceptions | Apply identity, limit, policy, approval, and effect controls | Approve, defer, reject, or require review |
Crossing lanes must be explicit: a calculation cannot authorize payment or prove source identity, and approval cannot repair a currency the reviewer never saw.
This extends the structured-output contract. Schema validity can require a decimal string and a currency field; the quantity contract proves whether they form a supported claim and whether the consumer may use it.
Keep the model-facing object small, but keep the trusted envelope complete. A consequential quantity should carry at least:
{
"status": "supported | absent | ambiguous | conflicting",
"source_lexeme": "۱۲٫۵",
"normalized_value": "12.5",
"quantity_kind": "mass",
"unit_code": "kg",
"currency_code": null,
"precision": 1,
"rounding_rule_id": null,
"source_ref": "quote-184/page-2/region-7",
"effective_at": "2026-08-24T00:00:00Z",
"tolerance": null,
"contract_version": "quantity-v3",
"allowed_use": "compare-only"
}
source_lexeme preserves what the document showed. normalized_value is a canonical decimal string, not a binary float. status prevents missing, ambiguous, conflicting, and supported values from collapsing into a nullable field. source_ref must resolve to an immutable record or protected region, not a model-generated citation-shaped string.
Do not let the model set trusted fields such as allowed_use, policy version, approval state, tenant, exchange-rate source, or rounding rule. The application derives those from authenticated context and controlled reference data. Use an allowlisted unit registry and currency table rather than accepting arbitrary abbreviations.
Quantitative extraction is partly a language problem. Persian and Latin digits may appear together; decimal and thousands separators vary; a minus sign can be a dash; parentheses may indicate a negative amount; percent may mean a fraction or percentage points; and abbreviations can be ambiguous across domains.
Normalization should produce candidates, never silently decide among incompatible interpretations. Preserve the original glyphs and location. Parse under an explicit locale and document profile. If 1,250 could mean one thousand two hundred fifty or one and a quarter, return ambiguous unless surrounding evidence resolves it. If a unit is absent, do not borrow it from the previous line without a versioned rule and evidence link.
Separate quantity from presentation. Store canonical identifiers and decimal values; localize digits, grouping, unit names, and currency symbols only at the display boundary. Both interfaces can then show the same business quantity.
The financial-document automation guide sets the broader division of labor: models handle irregular documents; rules and accountants control financial effects. The quantity contract applies that boundary per field.
Moving arithmetic out of the language model is necessary but not sufficient. The engine needs pinned behavior: decimal representation, precision, rounding mode, operation order, overflow handling, unit conversions, currency metadata, rule versions, and allowed functions.
IEEE 754-2019 defines binary and decimal floating-point formats, operations, exceptions, and results that depend on inputs, sequence, and destination format. It is not a warning that floating point is “wrong.” It is a reason to name the numeric format and operation sequence in the contract.
For decimal business invariants, ordinary binary floating point is often the wrong representation. The current Python decimal documentation shows exact representation of decimal values, configurable precision and rounding, and signals such as Inexact and Rounded. The PostgreSQL numeric-type documentation similarly distinguishes exact numeric from inexact real and double precision; it also demonstrates that numeric and floating types may resolve halfway cases differently.
Choose representation by claim: bounded integers for counts, integer minor units or fixed-scale decimal for money, and floating point with stated tolerance where appropriate. Never route a source decimal through binary float before constructing its exact value.
The engine should accept a signed contract and operands, not arbitrary model-written code. Compile any proposed expression into an allowlisted operation graph, validate dimensions, then execute it. Record the engine and rule versions, operands, ordered operations, rounding events, exceptions, and final output.
Rounding mode alone is incomplete. The contract must state what is rounded, when, to what increment, under which jurisdiction or commercial agreement, and whether intermediate values remain available.
The UK VAT Notice 700 permits specified approaches for invoice and line-level VAT calculations and requires consistency. That is jurisdiction-specific guidance, not a global default. Its durable architectural lesson is that rounding at a line, unit, tax, or invoice boundary can produce different valid totals under different policies.
Store a rule such as:
rule: supplier-vat-2026-04
mode: half-up
quantum: 0.01 USD
stage: round each line total; round discount; compute tax on net invoice total
effective: 2026-04-01 through 2026-12-31
authority: purchasing policy P-17
Do not hide rounding behind a database column declaration. PostgreSQL documents that a constrained numeric column rounds values to its declared scale on storage. If that is the first moment the application discovers precision loss, the decision has already become implicit. Trap or record every inexact conversion before the effect boundary.
Prices, exchange rates, tax rules, tolerances, approval limits, and unit conversions do not all change on the same clock. A calculation receipt needs the event time of the business fact, the observation time of the source, and the effective interval of every rule.
For a currency conversion, record the source pair, direction, rate, effective timestamp, publication identifier, fallback behavior, and rounding after conversion. “Use today's rate” is not reproducible across time zones or reruns. For a measured quantity, preserve instrument or source tolerance rather than manufacturing extra certainty by printing more digits.
If required evidence or an effective rule is unavailable, the correct output is not zero, the last value in memory, or a plausible estimate. It is absent, ambiguous, or conflicting, followed by the disposition defined in the abstention contract.
A dependable quantitative path has separable stages:
source bytes
-> locale-aware extraction with source regions
-> quantity candidates and explicit uncertainty
-> unit/currency/reference-data resolution
-> semantic and dimensional validation
-> deterministic calculation under a pinned rule
-> independent postcondition and tolerance checks
-> authorization / human review
-> external effect and authoritative receipt
The model belongs mainly in extraction, mapping, and explanation. It may suggest a unit from context, but the resolver must verify the unit against the source and domain. It may propose an operation graph, but the engine must reject unknown operations, incompatible dimensions, missing rates, division by zero, overflow, and unauthorized rule versions.
Keep authorization after calculation. Amount limits, segregation of duties, tenant scope, supplier identity, duplicate detection, and approval state do not become mathematical just because the amount is exact. After an effect, reconcile the calculation receipt with the system-of-record receipt. The audit-evidence guide explains why a model trace alone cannot prove that a transaction occurred.
Assume a test invoice contains two mass lines written with Persian digits: ۱۲٫۵ kg and ۲٫۲۵ kg, each priced at 34.75 USD/kg, followed by a 2.5% discount and 20% tax. For this example only, purchasing policy says: use exact decimal operands, round each line half-up to 0.01 USD, round the discount to cents, then calculate and round tax on the net invoice total. This is an invented operating rule, not tax advice.
The engine calculates:
| Step | Exact input | Contract result |
|---|---|---|
| Line 1 | 12.5 × 34.75 = 434.375 | 434.38 USD |
| Line 2 | 2.25 × 34.75 = 78.1875 | 78.19 USD |
| Rounded subtotal | 434.38 + 78.19 | 512.57 USD |
| Discount | 512.57 × 0.025 = 12.81425 | 12.81 USD |
| Net | 512.57 − 12.81 | 499.76 USD |
| Tax | 499.76 × 0.20 = 99.952 | 99.95 USD |
| Total | 499.76 + 99.95 | 599.71 USD |
If another service keeps both line values unrounded until the end, it reaches 599.698125 and rounds to 599.70 USD. Neither language fluency nor more decimal places selects the governing result. The one-cent difference comes from operation order and rounding stage. The contract decides; the receipt shows how.
Now change kg to an unresolved source abbreviation, remove USD, or date the quotation outside the price rule's effective interval. The engine must not calculate a total. It should return the exact blocking fields and route the case to evidence retrieval or qualified review.
Production evaluation must attack meaning and effect, not only benchmark arithmetic. Build cases across:
NaN, and infinity paths;Compare complete receipts, not only final totals. A test should fail if the result matches by accident while the source, unit, rule, operation order, or exception handling differs.
Monitor the places where meaning can disappear:
Rounded, Inexact, overflow, invalid-operation, or tolerance exceptions;Do not optimize extraction accuracy while hiding unit ambiguity. Report field-level correctness as a joint claim: value, unit or currency, evidence, effective rule, and allowed use all agree. Revisit the contract whenever a source layout, locale, currency table, tax policy, database type, arithmetic library, model, or downstream authority changes.
Before an AI-generated number can create a business effect, require affirmative answers:
A number becomes operationally trustworthy only when the organization can state what it measures, which rule transformed it, which evidence supports it, and what the result is allowed to do.
decimal documentation — current Python 3 documentation reviewed on August 24, 2026; exact decimal representation, precision, rounding modes, signals, and float-conversion behavior.numeric, inexact floating types, scale coercion, and differing tie behavior.
A fluent transcript can contain words nobody said. Preserve the recording, inspect silent spans and separate draft text from statements that become meeting evidence.
Read More
A practical contract for deciding which AI functions may continue, degrade, wait, transfer to people, or stop when a model or dependency becomes unhealthy.
Read More
A practical change-control architecture for deciding what must be versioned, tested, canaried, and restored together when an AI system evolves.
Read MoreIf this note maps to a real system in your organisation, start with the services page or a shipped case study.