DerivedField
Table Name: derived_fields
Columns
| Name | Type | Nullable | Primary Key | Default |
|---|---|---|---|---|
id |
UUID |
False | Yes | CallableColumnDefault(<function uuid4 at 0x74c88d47a340>) |
field_name |
VARCHAR(255) |
False | No | None |
source_table |
VARCHAR(255) |
False | No | None |
version |
INTEGER |
False | No | ScalarElementColumnDefault(1) |
description |
TEXT |
True | No | None |
expression |
TEXT |
False | No | None |
expression_type |
VARCHAR(50) |
False | No | None |
output_type |
VARCHAR(50) |
False | No | None |
depends_on |
JSONB |
True | No | None |
depends_on_type |
JSONB |
True | No | None |
joins |
JSONB |
True | No | None |
used_in_summary |
BOOLEAN |
True | No | ScalarElementColumnDefault(False) |
used_in_template |
BOOLEAN |
True | No | ScalarElementColumnDefault(False) |
active |
BOOLEAN |
True | No | ScalarElementColumnDefault(True) |
created_at |
DATETIME |
True | No | CallableColumnDefault(<function datetime.utcnow at 0x74c88d47a840>) |
updated_at |
DATETIME |
True | No | CallableColumnDefault(<function datetime.utcnow at 0x74c88d47a8e0>) |
created_by |
VARCHAR(255) |
True | No | None |
metadata |
JSONB |
True | No | None |
Data Filters
Active Filters:
Data Records
| id | field_name | source_table | version | description | expression | expression_type | output_type | depends_on | depends_on_type | joins | used_in_summary | used_in_template | active | created_at | updated_at | created_by | metadata |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8686a585-bbb3-48d9-904f-0984baada264 | coll_total_due | evolved_records | 1 | None | {% set principal = raw_data.principal_amount|default(0) %} {% set interest = raw_data.interest_amount|default(0) %} {% set fees = raw_data.fees_amount|default(0) %} {% set penalty = raw_data.penalty_amount|default(0) %} {% if raw_data.total_outstanding is defined %} {{ raw_data.total_outstanding }} {% else %} {{ principal + interest + fees + penalty }} {% endif %} | jinja | FLOAT | [] | [] | None | True | False | True | 2025-10-16 04:31:29 | 2025-10-16 04:31:29 | None | MetaData() |
| 3fd94cf0-0573-4ebf-8f54-923016cfc155 | coll_days_overdue | evolved_records | 1 | None | {% if raw_data.due_date %} {% set due_date = raw_data.due_date|to_date %} {% set today = today() %} {% if today > due_date %} {{ (today - due_date).days }} {% else %} 0 {% endif %} {% elif raw_data.aging_days is defined %} {{ raw_data.aging_days }} {% else %} 0 {% endif %} | jinja | INTEGER | [] | [] | None | True | False | True | 2025-10-16 04:31:29 | 2025-10-16 04:31:29 | None | MetaData() |
| 75d7b129-3d92-4feb-a4a2-a8604ec22618 | coll_aging_bucket | evolved_records | 1 | None | {% if raw_data.aging_bucket is defined %} "{{ raw_data.aging_bucket }}" {% elif coll_days_overdue is defined %} {% if coll_days_overdue == 0 %} "Current" {% elif coll_days_overdue <= 30 %} "0-30 days" {% elif coll_days_overdue <= 60 %} "31-60 days" {% elif coll_days_overdue <= 90 %} "61-90 days" {% else %} "90+ days" {% endif %} {% else %} "Unknown" {% endif %} | jinja | TEXT | ['coll_days_overdue'] | ['derived'] | None | True | False | True | 2025-10-16 04:31:29 | 2025-10-16 04:31:29 | None | MetaData() |
| a5c5b5b9-6015-488b-a528-e4cbe482802e | coll_recovery_rate | evolved_records | 1 | None | {% set total_due = coll_total_due|default(0) %} {% set collected = raw_data.collected_amount|default(0) %} {% if total_due > 0 %} {{ (collected / total_due * 100)|round(2) }} {% else %} 0 {% endif %} | jinja | FLOAT | ['coll_total_due'] | ['derived'] | None | True | False | True | 2025-10-16 04:31:29 | 2025-10-16 04:31:29 | None | MetaData() |
| 566ad366-700f-4261-8023-ab6e547ee013 | coll_risk_score | evolved_records | 1 | None | {% set base_score = 50 %} {% if coll_days_overdue is defined %} {% if coll_days_overdue > 90 %} {% set base_score = base_score + 40 %} {% elif coll_days_overdue > 60 %} {% set base_score = base_score + 30 %} {% elif coll_days_overdue > 30 %} {% set base_score = base_score + 20 %} {% elif coll_days_overdue > 0 %} {% set base_score = base_score + 10 %} {% endif %} {% endif %} {% if raw_data.payment_status == "DEFAULTED" %} {% set base_score = base_score + 30 %} {% elif raw_data.payment_status == "OVERDUE" %} {% set base_score = base_score + 20 %} {% elif raw_data.payment_status == "PARTIAL" %} {% set base_score = base_score + 10 %} {% endif %} {% if raw_data.area_type == "RURAL" %} {% set base_score = base_score + 5 %} {% endif %} {% if coll_total_due is defined and coll_total_due > 10000 %} {% set base_score = base_score + 10 %} {% endif %} {{ min(base_score, 100) }} | jinja | INTEGER | ['coll_days_overdue', 'coll_total_due'] | ['derived', 'derived'] | None | True | False | True | 2025-10-16 04:31:29 | 2025-10-16 04:31:29 | None | MetaData() |
Showing 1-5 of 5
Relationships
| Relationship Name | Target Model | Direction |
|---|---|---|
versions |
derived_field_versions | ONETOMANY |
SimPay