Meridianmeridian

Financial Yield / Return

finance.rate.yield

Financial return or yield notation with explicit sign and percentage. Common in Bloomberg, Yahoo Finance, investment return reports. Distinct from percentage by requiring explicit +/- sign prefix.

Domain
finance
Category
rate
Casts to
VARCHAR
Scope
Universal

Try it

CLI
$ finetype infer -i "+2.5%"
→ finance.rate.yield

DuckDB

Detect
SELECT finetype('+2.5%');
-- → 'finance.rate.yield'
Cast expression
CAST(REGEXP_REPLACE({col}, '%$', '') AS DECIMAL(10,4)) / 100
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'finance.rate.yield';

Struct Expansion

Expression
decimal_rate: CAST(REGEXP_REPLACE({col}, '%$', '') AS DECIMAL(10,4)) / 100
raw_pct: CAST(REGEXP_REPLACE({col}, '%$', '') AS DECIMAL(10,4))

JSON Schema

finetype schema finance.rate.yield
{
  "$id": "https://meridian.online/schemas/finance.rate.yield",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Financial return or yield notation with explicit sign and percentage. Common in Bloomberg, Yahoo Finance, investment return reports. Distinct from percentage by requiring explicit +/- sign prefix.",
  "examples": [
    "+2.5%",
    "-1.2%",
    "+0.75%",
    "-3.25%",
    "+10.0%"
  ],
  "pattern": "^[+-][0-9]+(\\.[0-9]+)?%$",
  "title": "Financial Yield / Return",
  "type": "string",
  "x-finetype-broad-type": "VARCHAR",
  "x-finetype-transform": "CAST(REGEXP_REPLACE({col}, '%$', '') AS DECIMAL(10,4)) / 100"
}

Examples

+2.5%-1.2%+0.75%-3.25%+10.0%

Aliases

return_pct