Table of Contents

Class Form4Filing

Namespace
MassiveDotNet.Rest.Models
Assembly
MassiveDotNet.Rest.dll

One statement of changes in beneficial ownership, form 4: the issuer, the reporting owner, the security, and the transaction reported.

public sealed record Form4Filing : IEquatable<Form4Filing>
Inheritance
Form4Filing
Implements
Inherited Members

Remarks

Reference data, so a class (decision D4). A trailing form number keeps its digits (D-R8). The description marks nothing required, so every property is nullable; a holding row rather than a transaction row leaves the transaction fields null. The seven flags take an Is prefix; IsRule10b51Plan is the wire's aff_10b5_one.

Properties

AccessionNumber

Unique SEC accession number for the filing (e.g., '0001209191-25-012345').

[JsonPropertyName("accession_number")]
public string? AccessionNumber { get; init; }

Property Value

string

DateOfOriginalSubmission

Date of the original filing submission for amendment filings (4/A). Null for standard filings (formatted as YYYY-MM-DD).

[JsonPropertyName("date_of_original_submission")]
public LocalDate? DateOfOriginalSubmission { get; init; }

Property Value

LocalDate?

DeemedExecutionDate

Deemed execution date if different from transaction date (formatted as YYYY-MM-DD).

[JsonPropertyName("deemed_execution_date")]
public LocalDate? DeemedExecutionDate { get; init; }

Property Value

LocalDate?

DirectOrIndirect

Whether ownership is direct ('D') or indirect ('I').

[JsonPropertyName("direct_or_indirect")]
public string? DirectOrIndirect { get; init; }

Property Value

string

ExerciseDate

Date exercisable for derivative securities (formatted as YYYY-MM-DD).

[JsonPropertyName("exercise_date")]
public LocalDate? ExerciseDate { get; init; }

Property Value

LocalDate?

ExercisePrice

Exercise or conversion price of derivative securities in USD.

[JsonPropertyName("exercise_price")]
public double? ExercisePrice { get; init; }

Property Value

double?

ExpirationDate

Expiration date for derivative securities (formatted as YYYY-MM-DD).

[JsonPropertyName("expiration_date")]
public LocalDate? ExpirationDate { get; init; }

Property Value

LocalDate?

FilingDate

Date when the filing was submitted to the SEC (formatted as YYYY-MM-DD).

[JsonPropertyName("filing_date")]
public LocalDate? FilingDate { get; init; }

Property Value

LocalDate?

FilingUrl

Direct URL to the filing on the SEC EDGAR website.

[JsonPropertyName("filing_url")]
public string? FilingUrl { get; init; }

Property Value

string

Footnotes

List of footnotes from the filing that are relevant to this row, each with an id and description.

[JsonPropertyName("footnotes")]
[JsonConverter(typeof(PooledArrayConverter<FilingFootnote>))]
public FilingFootnote[]? Footnotes { get; init; }

Property Value

FilingFootnote[]

FormType

SEC form type ('4' for standard filing, '4/A' for amendments).

[JsonPropertyName("form_type")]
public string? FormType { get; init; }

Property Value

string

IsDirector

Whether the reporting owner is a director of the issuer.

[JsonPropertyName("is_director")]
public bool? IsDirector { get; init; }

Property Value

bool?

IsEquitySwapInvolved

Whether an equity swap was involved in the transaction.

[JsonPropertyName("equity_swap_involved")]
public bool? IsEquitySwapInvolved { get; init; }

Property Value

bool?

IsNotSubjectToSection16

Whether the reporting owner is not subject to Section 16 of the Securities Exchange Act.

[JsonPropertyName("not_subject_to_section_16")]
public bool? IsNotSubjectToSection16 { get; init; }

Property Value

bool?

IsOfficer

Whether the reporting owner is an officer of the issuer.

[JsonPropertyName("is_officer")]
public bool? IsOfficer { get; init; }

Property Value

bool?

IsOther

Whether the reporting owner has another relationship with the issuer.

[JsonPropertyName("is_other")]
public bool? IsOther { get; init; }

Property Value

bool?

IsRule10b51Plan

Whether the transaction was made under a Rule 10b5-1 trading plan; the wire's aff_10b5_one.

[JsonPropertyName("aff_10b5_one")]
public bool? IsRule10b51Plan { get; init; }

Property Value

bool?

IsTenPercentOwner

Whether the reporting owner holds 10% or more of a class of equity securities.

[JsonPropertyName("is_ten_percent_owner")]
public bool? IsTenPercentOwner { get; init; }

Property Value

bool?

IssuerCik

SEC Central Index Key of the issuer company (10 digits, zero-padded).

[JsonPropertyName("issuer_cik")]
public string? IssuerCik { get; init; }

Property Value

string

IssuerName

Name of the issuer company as reported in the filing.

[JsonPropertyName("issuer_name")]
public string? IssuerName { get; init; }

Property Value

string

NatureOfOwnership

Nature of indirect ownership (e.g., 'By Trust', 'By Spouse').

[JsonPropertyName("nature_of_ownership")]
public string? NatureOfOwnership { get; init; }

Property Value

string

OfficerTitle

Title of the officer, if the reporting owner is an officer.

[JsonPropertyName("officer_title")]
public string? OfficerTitle { get; init; }

Property Value

string

OwnerCik

SEC Central Index Key of the reporting owner (10 digits, zero-padded).

[JsonPropertyName("owner_cik")]
public string? OwnerCik { get; init; }

Property Value

string

OwnerName

Name of the reporting owner (individual or entity).

[JsonPropertyName("owner_name")]
public string? OwnerName { get; init; }

Property Value

string

PeriodOfReport

Date of the event triggering the filing (formatted as YYYY-MM-DD).

[JsonPropertyName("period_of_report")]
public LocalDate? PeriodOfReport { get; init; }

Property Value

LocalDate?

RecordType

Type of record in the filing (e.g., 'transaction', 'holding').

[JsonPropertyName("record_type")]
public string? RecordType { get; init; }

Property Value

string

Remarks

Additional remarks included in the filing.

[JsonPropertyName("remarks")]
public string? Remarks { get; init; }

Property Value

string

SecurityTitle

Title or description of the security (e.g., 'Common Stock', 'Stock Option').

[JsonPropertyName("security_title")]
public string? SecurityTitle { get; init; }

Property Value

string

SecurityType

Type of security ('non-derivative' or 'derivative').

[JsonPropertyName("security_type")]
public string? SecurityType { get; init; }

Property Value

string

SharesOwnedFollowingTransaction

Total shares beneficially owned after the transaction.

[JsonPropertyName("shares_owned_following_transaction")]
public double? SharesOwnedFollowingTransaction { get; init; }

Property Value

double?

Tickers

A list of ticker symbols for the issuer company. Multiple symbols may indicate different share classes.

[JsonPropertyName("tickers")]
[JsonConverter(typeof(PooledArrayConverter<string>))]
public string[]? Tickers { get; init; }

Property Value

string[]

TransactionAcquiredDisposed

Whether shares were acquired ('A') or disposed of ('D').

[JsonPropertyName("transaction_acquired_disposed")]
public string? TransactionAcquiredDisposed { get; init; }

Property Value

string

TransactionCode

SEC transaction code indicating the type of transaction (e.g., 'P' for purchase, 'S' for sale, 'A' for grant/award, 'M' for exercise/conversion).

[JsonPropertyName("transaction_code")]
public string? TransactionCode { get; init; }

Property Value

string

TransactionDate

Date of the transaction (formatted as YYYY-MM-DD).

[JsonPropertyName("transaction_date")]
public LocalDate? TransactionDate { get; init; }

Property Value

LocalDate?

TransactionPricePerShare

Price per share of the transaction in USD.

[JsonPropertyName("transaction_price_per_share")]
public double? TransactionPricePerShare { get; init; }

Property Value

double?

TransactionShares

Number of shares involved in the transaction.

[JsonPropertyName("transaction_shares")]
public double? TransactionShares { get; init; }

Property Value

double?

TransactionTimeliness

Timeliness of the filing: 'O' (on time) or 'L' (late).

[JsonPropertyName("transaction_timeliness")]
public string? TransactionTimeliness { get; init; }

Property Value

string

TransactionValue

Total value of the transaction in USD (transaction_shares x transaction_price_per_share). Null when shares or price is not reported.

[JsonPropertyName("transaction_value")]
public double? TransactionValue { get; init; }

Property Value

double?

UnderlyingSecurityShares

Number of underlying shares for derivative transactions.

[JsonPropertyName("underlying_security_shares")]
public double? UnderlyingSecurityShares { get; init; }

Property Value

double?

UnderlyingSecurityTitle

Title of the underlying security for derivative transactions.

[JsonPropertyName("underlying_security_title")]
public string? UnderlyingSecurityTitle { get; init; }

Property Value

string