Skip to content
Get started

Attributes

Attributes are the columns of a table. They define what kind of data each field holds and what counts as a valid value. You can create any number of them.

Every table has built-in identifier and display name attributes. Standard (AUTO) tables receive them as Code and Name; reference tables can choose their names when created. You do not create or reassign these roles from the attribute editor. See Identifiers.

Field Description Required
Name The attribute name. This is the column header users see in Excel and Google Sheets. Yes
Datatype One of the supported datatypes below Yes (unless a domain table is chosen)
Required Makes the field mandatory on new records No
Unique No two records may share the same value No
Max length Maximum characters, string only No
Precision / Scale Total digits and decimal digits, decimal only No
Domain table Reference records in another table No
Cascade parent Narrow the domain values based on another attribute No
Validation rules JSON Schema rules for the attribute No
Excel formula A spreadsheet expression calculated from other attributes No
Datatype Stores Extra settings
string Text Max length
integer Whole numbers —
decimal Fixed-point numbers Precision (total digits), Scale (digits after the point)
boolean True / false —
date A calendar date (yyyy-MM-dd) —
datetime A date and time (yyyy-MM-dd HH:mm) —

An attribute can point at another table instead of holding a raw value. The referenced table becomes a controlled list of allowed values.

  1. In the attribute editor, choose the domain table model.
  2. Choose the domain table. Only MANUAL tables appear in the list.
  3. The datatype becomes read-only — it is determined by the referenced table.

When a user fills in the field they get a searchable picker showing Code - Name from the target table. Grunddata stores the target record’s source_id, and resolves the readable label on the fly.

Full details in Domain tables.

A domain attribute can be made to depend on another domain attribute on the same table. Tick Cascade domain values from another domain attribute and choose the cascade parent attribute.

The effect: when a user picks a value in the child attribute, the candidate list is filtered by whatever they selected in the parent.

The order of attributes controls the column order everywhere: the records grid, the Excel download and the Google Sheets download.

Use the up and down arrows on the attributes page to rearrange, then save the order.

  1. Open the table and click Attributes.
  2. Click Add attribute.
  3. Fill in the name, datatype and constraints — or select a domain table.
  4. Optionally add validation rules.
  5. Save.

On the attributes page, click the pencil icon next to the attribute.

An attribute can hold an Excel formula as well as the calculated values that are saved in its records. This is useful when a worksheet calculates a value, for example:

={{Balances.Closing}}-{{Balances.Opening}}

Grunddata stores stable references to the source table and attributes behind that readable expression. Renaming Closing later does not break the relationship: the stored identifiers stay the same, and the displayed formula follows the new names.

On the attributes page, click the trash icon next to the attribute.

An accounts table:

account_number account_name account_type
1200 Nominal amount NOM
1300 Market value adjustment MTM
1400 Interest rate INT

An instrument hierarchy:

Instrument type level 1 Instrument type level 2 Instrument type level 3
Derivative Interest rate swap Interest rate swap
Derivative Options Equity option
Derivative Foreign exchange swap Foreign exchange swap
Security Bond Covered bond
Security Bond Zero coupon
Loan Open ended Open ended
Deposit Deposit Deposit