Event types
The event types Evinor emits today, and the roles each one extracts. These
are the payload.eventCodeName values you gate on and the
details.roles[].code values you read — see Receiving webhooks
for the envelope these roles arrive in.
We intend event type codeNames to be stable, and treat renaming one as a
breaking change. Role codeNames may still change before 1.0 — read them
defensively and skip codes you do not recognize.
roles is a list, not a mapThe same code may appear more than once: a round backed by three investors
arrives as three INVESTING_COMPANY_NAME entries. Roles that can repeat are
tagged repeatable in the tables below. Do not key by code —
Object.fromEntries(roles.map(r => [r.code, r.textValue])) keeps the last
entry and silently discards the others. Group by code instead.
Each role table below has a Type column — the role's value type, and which parsed companion it carries on the wire:
| Type | Meaning |
|---|---|
NAMED_ENTITY | An organization or person named in the event. Carries namedEntityId when the text resolved to a known entity. |
CURRENCY | A monetary amount. Carries a parsed parsedAmount; a role that does not parse is dropped rather than delivered unparsed. |
NUMBER | A plain count or percentage. Carries a parsed parsedAmount, the same guarantee as CURRENCY. |
DURATION | A span of time, validated as text. May carry parsedAmount, but only sometimes. |
CATEGORICAL | One value from a fixed vocabulary, delivered as an uppercase token in textValue. No parsed companion. |
NONE | Free text with no parsing — the value is in textValue only. |
01. Acquisition
ACQUISITION · Established
A company acquires another company.
| Role code | Name | Type | Description |
|---|---|---|---|
ACQUIRING_COMPANY_NAME | Acquiring Company Name | NAMED_ENTITY | The company taking ownership in the deal. |
COMPANY_BEING_ACQUIRED | Company Being Acquired | NAMED_ENTITY | The company that is being taken over. |
VALUE_OF_ACQUISITION | Value of the Acquisition | CURRENCY | The reported price paid for the deal. |
{
"eventCodeName": "ACQUISITION",
"details": {
"roles": [
{
"code": "ACQUIRING_COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "COMPANY_BEING_ACQUIRED",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "VALUE_OF_ACQUISITION",
"textValue": "…",
"parsedAmount": 1000000
}
]
}
}
02. Investment
FUND_RAISING · Established
A company completes a fundraising round.
| Role code | Name | Type | Description |
|---|---|---|---|
INVESTING_COMPANY_NAME (repeatable) | Investing Company Name | NAMED_ENTITY | An investor backing the round. A round with several investors yields one entry per investor. |
COMPANY_RAISING_FUNDS | Company Raising Funds | NAMED_ENTITY | The startup that raised the capital. |
AMOUNT_RAISED | Amount Raised | CURRENCY | Total capital secured in this round. |
FUNDING_ROUND_TYPE | Funding Round Type | NONE | The round's stage label, such as Seed or Series A. |
{
"eventCodeName": "FUND_RAISING",
"details": {
"roles": [
{
"code": "INVESTING_COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "INVESTING_COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "COMPANY_RAISING_FUNDS",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "AMOUNT_RAISED",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "FUNDING_ROUND_TYPE",
"textValue": "…"
}
]
}
}
03. Layoff
LAYOFF · Established
A company lays off employees.
| Role code | Name | Type | Description |
|---|---|---|---|
COMPANY_NAME | Company Name | NAMED_ENTITY | The employer reducing its headcount. |
AFFECTED_EMPLOYEES_COUNT | Number of Employees Affected | NUMBER | How many roles were eliminated. |
PERCENTAGE_OF_WORKFORCE_AFFECTED | Percentage of Workforce Affected | NUMBER | Share of total staff let go, as a percentage. |
ANNOUNCED_REASON | Reason for Layoff | NONE | The publicly stated rationale for the cuts. |
CATEGORY_OF_EMPLOYEES_AFFECTED | Category of Employees Affected | NONE | Which team or function bore the cuts, such as sales. |
{
"eventCodeName": "LAYOFF",
"details": {
"roles": [
{
"code": "COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "AFFECTED_EMPLOYEES_COUNT",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "PERCENTAGE_OF_WORKFORCE_AFFECTED",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "ANNOUNCED_REASON",
"textValue": "…"
},
{
"code": "CATEGORY_OF_EMPLOYEES_AFFECTED",
"textValue": "…"
}
]
}
}
04. Leadership Change
LEADERSHIP_CHANGE · Established
A company's senior leadership changes through an appointment, a departure, or a succession.
| Role code | Name | Type | Description |
|---|---|---|---|
COMPANY_NAME | Company Name | NAMED_ENTITY | The organization whose leadership shifted. |
ROLE_TITLE | Role Title | NONE | The executive position that changed hands. |
INCOMING_PERSON | Incoming Person | NAMED_ENTITY | The individual stepping into the role. |
OUTGOING_PERSON | Outgoing Person | NAMED_ENTITY | The individual departing the role. |
REASON | Reason | NONE | The publicly stated rationale for the move. |
{
"eventCodeName": "LEADERSHIP_CHANGE",
"details": {
"roles": [
{
"code": "COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "ROLE_TITLE",
"textValue": "…"
},
{
"code": "INCOMING_PERSON",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "OUTGOING_PERSON",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "REASON",
"textValue": "…"
}
]
}
}
05. IPO
IPO · Established
A company makes a concrete move toward going public: an exchange filing, a priced offering, or a first day of trading. A filing alone counts, so this Event can arrive long before any share changes hands.
| Role code | Name | Type | Description |
|---|---|---|---|
COMPANY_NAME | Company Name | NAMED_ENTITY | The business seeking or completing a public listing. |
VALUATION | Valuation | CURRENCY | What the company is valued at for the offering. On a filing this is a target or an expectation, not a settled market price. |
AMOUNT_RAISED | Amount Raised | CURRENCY | How much capital the share sale brings in. Sought or projected until the offering actually prices. |
STOCK_EXCHANGE | Stock Exchange | NONE | The exchange named for the listing, such as NYSE. It can be announced before anything trades there. |
{
"eventCodeName": "IPO",
"details": {
"roles": [
{
"code": "COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "VALUATION",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "AMOUNT_RAISED",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "STOCK_EXCHANGE",
"textValue": "…"
}
]
}
}
06. Partnership Announcement
PARTNERSHIP_ANNOUNCEMENT · Emerging
Two companies form a strategic partnership or alliance.
Emerging — noisier to detect; we recommend gating on confidence.band = HIGH.
| Role code | Name | Type | Description |
|---|---|---|---|
FIRST_PARTNER_COMPANY | First Partner Company | NAMED_ENTITY | One of the two collaborating organizations. |
SECOND_PARTNER_COMPANY | Second Partner Company | NAMED_ENTITY | The other collaborating organization. |
VALUE_OF_PARTNERSHIP | Value of the Partnership | CURRENCY | The reported financial size of the deal. |
DURATION_OF_PARTNERSHIP | Duration of the Partnership | DURATION | How long the arrangement is set to run. |
{
"eventCodeName": "PARTNERSHIP_ANNOUNCEMENT",
"details": {
"roles": [
{
"code": "FIRST_PARTNER_COMPANY",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "SECOND_PARTNER_COMPANY",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "VALUE_OF_PARTNERSHIP",
"textValue": "…",
"parsedAmount": 1000000
},
{
"code": "DURATION_OF_PARTNERSHIP",
"textValue": "…"
}
]
}
}
07. Product Launch
PRODUCT_LAUNCH · Emerging
A company introduces a product, adds a major new feature, ships a new version, expands what an existing product can do, debuts creative work, or opens a product to a wider audience.
Emerging — noisier to detect; we recommend gating on confidence.band = HIGH.
| Role code | Name | Type | Description |
|---|---|---|---|
COMPANY_NAME | Company Name | NAMED_ENTITY | The organization behind the launch. |
PRODUCT_OR_SERVICE_NAME | Product or Service Name | NAMED_ENTITY | The product or service being introduced. |
LAUNCH_TYPE | Launch Type | CATEGORICAL | Which kind of launch this was, delivered as an uppercase token drawn from a fixed vocabulary rather than free text. |
HOST_PRODUCT | Host Product | NAMED_ENTITY | The existing product that a newly added feature or capability plugs into. Absent when the launch stands on its own. |
COMPANY_SHORT_DESCRIPTION | Company Short Description | NONE | A brief phrase describing what the company does. |
PRODUCT_DESCRIPTION | Product Description | NONE | A brief phrase describing what the product does. |
{
"eventCodeName": "PRODUCT_LAUNCH",
"details": {
"roles": [
{
"code": "COMPANY_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "PRODUCT_OR_SERVICE_NAME",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "LAUNCH_TYPE",
"textValue": "…"
},
{
"code": "HOST_PRODUCT",
"textValue": "…",
"namedEntityId": "…"
},
{
"code": "COMPANY_SHORT_DESCRIPTION",
"textValue": "…"
},
{
"code": "PRODUCT_DESCRIPTION",
"textValue": "…"
}
]
}
}
In the samples above, … marks an elided value and any number is
illustrative, not real data. namedEntityId, parsedAmount and
parsedDate are all optional companions to textValue — present only
when entity resolution or value parsing succeeded. A role that was not
extracted is absent from roles entirely, never present with a null value.
See also
- Receiving webhooks — the envelope these roles are delivered in, and how to verify a delivery's signature.
- Searching events — query the historical corpus by event type and role filters.