Skip to main content
View source

Currency Convert (Explicit)

View as Markdown

A RocketRide filter node that converts structured monetary facts at a rate and date you explicitly supply. Pick it when a financial pipeline needs a reproducible, auditable conversion step rather than a live exchange-rate lookup or a node that only labels currencies.

What it does​

The node reads and re-emits the answers lane. For a fact whose configured currency field matches the source currency, it preserves the original fact, adds a converted amount and currency, and appends a provenance entry with the rate, date, and source/target currencies. It never fetches rates or contacts a network service, so the result depends only on the stated configuration.

Input may be one JSON fact object or a list of fact objects. Plain text, scalar JSON, non-fact objects, invalid amounts, and facts in another currency pass through unchanged, making this a safe opt-in step after structured extraction or normalization.

Lanes​

Lane inLane outDescription
answersanswersConvert matching JSON fact records and forward every input record once.

Configuration​

Set the source and target codes, state the conversion rate deliberately, then align the amount and currency field names with the fact schema produced upstream. The default profile supplies EUR-to-USD field names and a neutral rate, but there is only one profile and these individual fields are what tailor the conversion.

Source and target currency​

Source currency selects which facts are eligible; matching is case-insensitive. Target currency is written exactly as configured into the new converted.currency value. Keep both codes non-empty: if either is empty, the node logs a warning and all answers pass through unchanged. Change the field names below if an upstream extractor uses names other than amount and currency.

Conversion rate and rate date​

Conversion rate is the multiplier in target = source × rate; it is not retrieved or inferred. Supply the rate used by the relevant reporting policy and record its applicable ISO-8601 date in Rate date so it is retained in the provenance entry. A rate that cannot be interpreted as a finite number causes a warning and leaves all answers unchanged rather than failing the run.

Amount and currency fields​

Amount field and Currency field name the keys to read from each fact. The amount may be an integer, float, decimal-compatible string, or Decimal; booleans and non-finite values are not monetary amounts and are left unchanged. A missing field, non-string currency, or non-matching source currency also leaves that fact untouched.

Rounding decimals​

Rounding decimals controls the fractional digits in converted.amount and defaults to 2. Results use decimal arithmetic and round half-up, which avoids binary floating-point conversion effects before the final JSON number is written. Use 0 for whole-unit results or increase it, up to 10 in the configuration schema, when the downstream fact contract needs more precision.

Notes​

Output and provenance​

The original amount and currency are never modified. The node creates a new top-level converted object and adds a provenance object whose op is currency_convert_explicit. An existing provenance list is copied and appended to; a non-list existing value is preserved as the first item of a new list. A later conversion therefore replaces the converted block but retains earlier provenance entries.

Answer forwarding​

The node suppresses the engine's default immediate forward, collects converted payloads for the input object, then writes each one at closing. This prevents duplicates while preserving the distinction between a JSON answer and plain text that merely looks like JSON. The node is experimental.

Schema​

FieldTypeDescriptionDefault
currency_convert_explicit.amount_fieldstringAmount field
The fact field holding the numeric amount to convert.
"amount"
currency_convert_explicit.currency_fieldstringCurrency field
The fact field holding the currency code.
"currency"
currency_convert_explicit.decimalsintegerRounding decimals
Number of fractional digits for the converted amount (rounded half-up).
2
currency_convert_explicit.profilestringConversion
Explicit currency conversion configuration
"default"
currency_convert_explicit.ratenumberConversion rate
The stated multiplier applied to the source amount (target = source × rate). Supply the rate deliberately; nothing is fetched.
1
currency_convert_explicit.rate_datestringRate date
The date the rate applies to (ISO 8601, e.g. 2026-06-30). Recorded in the conversion provenance.
""
currency_convert_explicit.source_currencystringSource currency
Currency code to convert FROM (e.g. EUR). Only facts tagged with this currency are converted; case-insensitive.
"EUR"
currency_convert_explicit.target_currencystringTarget currency
Currency code to convert TO (e.g. USD).
"USD"