All Collections
Documents
Templating
Which variables can I use for my document templates (grant letters, exercising letters, etc)?
Which variables can I use for my document templates (grant letters, exercising letters, etc)?

Document templates can be created and uploaded to Ledgy to be filled in with the information from the corresponding transactions.

Support Team avatar
Written by Support Team
Updated over a week ago

Here is a list of the supported variables that can be used in your document templates.


General variables

Variable

Example

Description

{today}

18 Mar 2020

Date of today

{currency}

EUR

Transaction's currency


Stakeholder variables

Variable

Example

Description

{stakeholder.name}

Elon Must

Stakeholder's name as inserted on Ledgy

{stakeholder.email}

{stakeholder.nationality}

US

{stakeholder.birthdate}

28 Jun 1971

{stakeholder.notes}

Stakeholder's Internal Notes

{stakeholder.address.line1}

Rocket Road 1

{stakeholder.address.line2}

c/o SpaceX Corp.

{stakeholder.address.postcode}

9808

{stakeholder.address.city}

Hawthorne

{stakeholder.address.country}

India

{stakeholder.identifier}

EM-1234

{stakeholder.personalEmail}

Usage

Stakeholder variables can be used wherever a stakeholder is involved.

The base prefix is "stakeholder". When adding variables to your template document, you may reference any of the sub-fields of the stakeholder, e.g. {stakeholder.name}, {stakeholder.email}, etc., as shown in the example below.

On Transfer templates, the transfer prefix is "fromStakeholder". E.g. {fromStakeholder.name} is the variable to denote the stakeholder from which the transfer originates.

One quick way to view and edit stakeholder properties is using Bulk Import and Edit (Stakeholders > "Bulk" button at the top bar). The easy-edit spreadsheet is designed to make adding, updating and checking stakeholder information effortlessly.

In the event that a template variable is used, but the stakeholder information is missing, we have also added a template validation feature that checks for misspelled variables or missing inputs in transactions before the document is created.


Stakeholder beneficiary variables

A beneficiary refers to the economic beneficiary of a transaction and first needs to be added to Ledgy as a stakeholder. At each individual transaction level, a stakeholder beneficiary can then be designated. This will then also reflect in the Usage column on the Stakeholder page.

The stakeholder beneficiary's personal details can also be retrieved during the templating workflow.

The base prefix is ''beneficiary". Similarly to the stakeholder variables, combine the prefix with any of the beneficiary's sub-fields e.g. {beneficiary.name}, {beneficiary.identifier} and {beneficiary.address.postcode}, and custom fields.

See the guidance on Custom stakeholder variables for more details.

Variable

Example

Description

{beneficiary.name}

Elon Must

Stakeholder's name as inserted on Ledgy

{beneficiary.email}

{beneficiary.nationality}

US

{beneficiary.birthdate}

28 Jun 1971

{beneficiary.notes}

Stakeholder's Internal Notes

{beneficiary.address.line1}

Rocket Road 1

{beneficiary.address.line2}

c/o SpaceX Corp.

{beneficiary.address.postcode}

9808

{beneficiary.address.city}

Hawthorne

{beneficiary.address.country}

India

{beneficiary.identifier}

EM-1234


Option, warrant, and phantom grant variables

Variable

Example

Description

Follow the link to see the available stakeholder variables that can be used

Follow the link to see the available vesting variables that can be used

{amount} or {granted}

10,000

The number of grants being granted

{sharePrice}

2.00

Grant's purchase price (price to pay per each of the grants to receive them - usually applicable for Warrants)

{totalSharePrice}

20'000

The amount to be paid by the stakeholder to receive all their grants
= {amount} * {sharePrice}

{strikePrice}

3.1415926535

Grant's strike/exercise price (price to pay per each of the grants to exercise them - usually applicable for Options and Warrants

{totalStrikePrice}

31,415.926535

The amount to be paid by the stakeholder to exercise all their grants in the future
= {amount} * {strikePrice}

{date}

12 Jul 2020

Date of the grant

{expiryDate}

12 Jul 2025

{notes}

Grant transaction's internal note

{investment}

20,000.00

The amount payable by the stakeholder to receive the grants
= purchase price * granted amount

{dilutedShareCapital}

100.00

= number of grants issued * nominal value per grant

{dilutedGranted}

100

The number of diluted grants being granted


Vesting variables

Variable

Applicable Vesting Type

Example

Description

{vesting.startDate}

simple + custom

1 Jul 2020

{vesting.duration}

simple

48

Vesting duration in months

{vesting.interval}

simple

1

Vesting interval in months

{vesting.cliff}

simple

12

Vesting cliff in months

{vesting.type}

All

  1. Simple

  2. Custom

  3. Performance conditions

  4. Multi-trigger

Type of trigger(s) that vesting is contingent on.

{vesting.accelerateVestingDate}

simple + custom

31 Dec 2028

Accelerated vesting date when all grants or shares fully vest.

{vesting.schedule}

custom

12 months/3 steps

X months / Y steps

{vesting.vestingOn}

simple

31 Mar 2027

Possible values: Start date, grant date, first day of the month, last day of the month

{vesting.rounding}

All

  1. Down

  2. Up

  3. Nearest

Adjusts partial vesting to the nearest whole share.

{vesting.lastDayOfVesting}

All

1 July 2024

The last day of a vesting schedule marks the end of the predetermined vesting timeline.

Usage

Vesting variables can be used wherever vesting or reverse vesting can be added. You may reference any of the sub-fields of the vesting, e.g. {vesting.duration}, {vesting.cliff}, etc., as shown in the example below. Currently, templating only supports simple vesting schedules.


Vesting variables (Performance conditions specific)

Variable

Applicable Vesting Type

Example

Meaning

{#vesting.performanceCondition}{name}

Performance condition(s)

MRR 10M

Shows the name(s) of performance condition(s) defined

{weight}{/vesting.performanceCondition}

Performance condition(s)

50

Percentage of grant to be vested if corresponding performance condition is achieved.

Sample use of above in template:

Performance Conditions

% of grant

{#vesting.performanceCondition}{name}

{weight}{/vesting.performanceCondition}

Sample output of above in template:

If a single performance condition exists, the output looks like the one below.

Performance Conditions

% of grant

MRR 10M

100

If more performance conditions exist, then the output can look like the following.

Performance Conditions

% of grant

MRR 10M

75

MRR 12M

25


Vesting variables (Custom schedule vesting periods)

Variable

Applicable Vesting Type

Example

Description

{#vesting.period}{number}

Custom

1

Vesting period number

{duration}

Custom

12

Duration of vesting period

{interval}

Custom

1

Vesting period interval

{weight}{/vesting.period}

Custom

50

Percentage of grant to be vested during corresponding vesting period.

Sample use of above in template:

Vesting Period

Vesting Duration

Vesting Interval (in months)

% of grant

{#vesting.period}{number}

{duration}

{interval}

{weight}{/vesting.period}

Sample output of above in template:

Vesting Period

Vesting Duration

Vesting Interval (in months)

% of grant

1

12

12

5

2

12

12

15

3

12

6

40

4

12

6

40


Vesting variables (Milestones + Multi-trigger)

Variable

Applicable Vesting Type

Example

Meaning

{#vesting.performanceCondition}{name}

Milestones with multi-tigger

Performance condition(s)

MRR 10M

Shows the name(s) of performance condition(s) defined

{weight}{/vesting.performanceCondition}

Milestones with multi-tigger

Performance condition(s)

50

Percentage of grant to be vested if corresponding performance condition is achieved.

{#vesting.triggers}{name}{/vesting.triggers}

Milestones with multi-tigger

Exit event

Shows the name(s) of performance condition(s) defined as additional trigger(s)

{vesting.trigger}

Short cut for a single trigger

Sample use of above in template:

Performance Conditions

% of grant

{#vesting.performanceCondition}{name}

{weight}{/vesting.performanceCondition}

Additional triggers

{#vesting.triggers}{name}{/vesting.triggers}

Sample output of above in template:

Performance Conditions

% of grant

MRR 10M

75

MRR 12M

25

Additional triggers

Exit event


Vesting variables (Simple Time + Multi-trigger)

Variable

Applicable Vesting Type

Example

Meaning

{vesting.startDate}

Time with multi-trigger

1 Jul 2020

{vesting.duration}

Time with multi-trigger

48

Vesting duration in months

{vesting.interval}

Time with multi-trigger

1

Vesting interval in months

{vesting.cliff}

Time with multi-trigger

12

Vesting cliff in months

{vesting.trigger}

Time with multi-trigger

Exit event

Shows the name of the single performance condition defined as an additional trigger

Sample use of above in template:

Vesting Start Date

Vesting Duration

Vesting Interval

Vesting Cliff

{vesting.startDate}

{vesting.duration}

{vesting.interval}

{vesting.cliff}

Additional triggers

{#vesting.triggers}{name}{/vesting.triggers}

Sample output of above in template:

Vesting Start Date

Vesting Duration

Vesting Interval

Vesting Cliff

Jan 1, 2023

48

1

12

Additional triggers

Exit event


Vesting variables (Custom + Multi-trigger)

Variable

Applicable Vesting Type

Example

Meaning

{#vesting.period}{number}

Time with multi-trigger

1

Vesting period number

{duration}

Time with multi-trigger

48

Duration of vesting period

{interval}

Time with multi-trigger

1

Vesting period interval

{weight}{/vesting.period}

Time with multi-trigger

20%

Percentage of grant to be vested during vesting period.

Sample use of above in template:

Vesting Period

Vesting Duration

Vesting Interval (in months)

% of grant

{#vesting.period}{number}

{duration}

{interval}

{weight}{/vesting.period}

Additional triggers

{#vesting.triggers}{name}{/vesting.triggers}


Vesting variables (Supporting tranches)

Variable

Applicable Vesting Type

Example

Meaning

{#vesting.tranche}{number}

Simple + custom

1

Vesting tranche number

{date}

Simple + custom

1 Jan 2023

Vesting date when the tranche ends.

{amount}{/vesting.tranche}

Simple + custom

100

Amount to be vested during the tranche.

Sample use of above in template:

Vesting Tranche

Date

To be vested amount

{#vesting.tranche}{number}

{date}

{amount}{/vesting.tranche}

Sample output of above in template:

Vesting Tranche

Date

To be vested amount

1

31/03/2024

50

2

31/12/2024

50


Dynamic transaction variables

Variable

Description

{automation:updateGrantDateFromSignature}

The grant date is automatically updated in the app when fully signed by all associated parties

{automation:finalSignedDate}

The variable will update to show the final signatory date when fully signed by all associated parties.

Example: 12 Nov 2023

N.b. this variable only applies for Ledgy signatures (where signatory provider is Ledgy).

**Final Signatory Date:

The variable will be appended with the final signatory date when fully signed by all associated parties.

Example: **Final Signatory Date: 10.19.23

(Tip: use a light colour for the variable text as this will also appear on the document. To prevent the text from showing on the document, use the same colour as the document background.)

N.b. this variable only applies for DocuSign signatures (where signatory provider is DocuSign). Learn more about DocuSign signatures here.


Exercise variables

1. General exercise variables

Variable

Example

Description

For reverse vesting

{amount} or {exercised}

10,000

Amount of grants being exercised

{date}

1 Oct 2022

Date of the exercise

{sharePrice}

3.1415926535

Strike/exercise price

{investment}

17'671.46

Amount payable by the stakeholder to exercise the grants = strike price * exercised amount

{class}

Common

Share class issued from the exercising transaction

{notes}

Exercise transaction's internal note

{shareCapital}

56.25

= number of shares issued * nominal value per share

{dilutedExercised}

100

The number of diluted grants being exercised

2. Variables relating to the original grant, that is being exercised

Variable

Example

Description

{grant.amount} or {grant.granted}

10,000

Total original grant amount

{grant.strikePrice}

3.1415926535

Grant's strike/exercise price

{grant.investment}

20,000.00

Original grant investment amount (= purchase price * granted amount)

{grant.date}

12 Jul 2020

Original grant date

{grant.expiryDate}

12 Jul 2025

{grant.notes}

Original grant transaction's internal notes

{grant.dilutedShareCapital}

100.00

Original grant's diluted share capital (= number of grants granted * nominal value per grant)

{grant.vesting.startDate}

1 Jul 2020

{grant.vesting.duration}

48

{grant.vesting.interval}

1

{grant.vesting.cliff}

12



Share issuance variables

Variable

Example

Description

For reverse vesting

{amount} or {issued}

1,500

Amount of shares being issued

{sharePrice}

1.55

Shares' issue price

{investment}

2,325.00

= sharePrice * amount

{class}

Common

Share class issued

{date}

3 Feb 2021

Date of the share issuance

{notes}

Share issuance transaction's internal note

{shareCapital}

15

= number of shares issued * nominal value per share

{stakeholderCertificateId}

PA-123

Certificate Id for increase transactions (e.g. increase shares, exercise and a stock grant from authorized capital)

{fromStakeholderCertificateId}

PA-456

Certificate Id for transfer transactions (e.g. transfer, exercise and a stock grant from reserved shares)


Employment-related stakeholder fields that can be used as variables

Variable

{stakeholder.employment.employmentStatus}

{stakeholder.employment.employmentType}

{stakeholder.employment.jobTitle}

{stakeholder.employment.manager}

{stakeholder.employment.payCurrency}

{stakeholder.employment.payPeriod}

{stakeholder.employment.payRate}

{stakeholder.employment.startDate}

{stakeholder.employment.team}

{stakeholder.employment.terminationDate}

{stakeholder.employment.workCity}

{stakeholder.employment.workCountry}


Custom variables

Would you like to have other customizable information in the document, and the variable is unavailable for replacement on Ledgy in the list above? Below you may find two alternatives to insert further custom information in your templates.

Transaction's notes

Ledgy has all the usual variables needed for document templates, but sometimes there could be a small difference between some companies to others. For such cases, there is a workaround:

An existing variable is {notes}, and it retrieves the information present in the Internal note section of the transaction on Ledgy. If you have a variable that you would like to use on the document template, but that variable is not available within Ledgy's standard variables, you can input the value of the variable in the transaction's Internal Notes, and use the variable {notes} to retrieve it in the document. For example, if you would like to input the amount of money paid when exercising a particular transaction, you can write that number in the transaction's Internal Note and use the variable {notes} in the document where you would like the variable to be replaced.


Custom stakeholder variables

Additionally, it is also possible to use the Stakeholder custom fields as variables in document templates.

Follow the structure below to enter the information in your template accurately:

General structure: {stakeholder.X}

(where X is the name of the custom stakeholder field)

Example of custom stakeholder fields:

  • Custom stakeholder variables can be used as variables e.g

    • {stakeholder.Number of grants}


Custom transaction variables

You can also use Transaction custom fields as variables in your document templates.

Follow the structure below to enter the information in your template accurately:

General structure: {customField.X}

(where X is the name of the custom transaction field)

Example for the Board Approval Status: {customField.Board Approval Status} ⇒ Result: Pending


Pro-tips

Is your variable not working? Ledgy will automatically fill in with “undefined” if the variable cannot be found.

  • Ensure that the information to replace the variable is on Ledgy: if you use the variable {stakeholder.address.city} but you have not input the stakeholder’s city information on Ledgy, it will show up as “undefined”

  • Ensure the variable is written exactly as stated above: if you have written {stakeholder.adress.city} (with a missing d), it will show up as “undefined”

  • At the transaction level (any issuance, transfer, or convertible loan), we have added an automatic validation to help you along when a template document is uploaded. For example, if {vesting.cliff} is in use within the document but is not yet defined, Ledgy will identify this and prompt you to input the information.

Note: The document size should not exceed 32 MB.


Example

Let’s put the following text in a Word document for an option grant template:

Berlin, {today}

Dear {stakeholder.name},

We hereby grant you the following number of Virtual Options according to the terms and conditions contained in the Agreement and in this Grant:

Number of Options: {amount}
Grant Date: {date}
Exercise Price: {currency} {strikePrice}
Vesting: {vesting.duration} years, {vesting.cliff} months cliff, vests every {vesting.interval} months

Sincerely yours,

Gwynne Sheetwell, Tom Baker

The resulting PDF will contain the following:

Berlin, 18 Mar 2020

Dear Elon Must,

We hereby grant you the following number of Virtual Options according to the terms and conditions contained in the Agreement and in this Grant:

Number of Options: 10,000
Grant Date: 14 Mar 2020
Exercise Price: EUR 3.1415926535
Vesting: 4 years, 6 months cliff, vests every 6 months

Sincerely yours,

Gwynne Sheetwell, Tom Baker

Did this answer your question?