Follow the Money (FtM) Documentation

website·Indexed 33 days ago

https://followthemoney.tech

Documentation for the Follow the Money (FtM) data model, featuring a comprehensive set of schemata for entities like LegalEntity, BankAccount, and Territory, and a Python API for handling types such as EmailType, AddressType, and IdentifierType. It includes specifications for graph and timeline implementations, as well as the Statement data model using the followthemoney.statement.statement.Statement class.

Tokens
91.9K
Snippets
322
Records
620
Agent score
66%

What's inside Follow the Money

  1. Overview of FollowTheMoney (FtM) data model

    FollowTheMoney (FtM) is a specialized data model designed for financial crime investigations and document forensics. It provides standardized definitions for entities (such as people and companies) and documents used as evidence, allowing these entities to reference each other to create a relationship graph. Beyond the ontology, FtM provides tools for generating, validating, and exporting this structured data.
  2. Overview of default FollowTheMoney entity schemata

    FollowTheMoney ships with a default data model containing 71 schemata tailored for financial crime, corruption investigations, and document forensics. These schemata define the types of entities that can be represented in the system, ranging from people and organizations to financial instruments and legal documents.

    Commonly used entity schemata include:

    • Person, Organization, LegalEntity, PublicBody
    • BankAccount, CryptoWallet, Payment, Asset
    • Address, Territory
    • Document, Page, Article, Email, Message
    • Contract, ContractAward, Directorship, Employment
    • Passport, Identification
    • Vehicle, Vessel, Airplane
  3. Overview of FollowTheMoney Mappings

    Mappings are YAML files used to project structured data from tabular sources (CSV files using UTF-8 encoding) or SQL databases into FollowTheMoney entities. To execute a mapping, the ftm command-line utility is required. When using SQL as a source, users can perform JOINs within the database during the mapping process.
  4. Overview of the Email property type

    The email property type is used for internet mail addresses (e.g., user@example.com). It is designed to be matchable and can serve as a pivot point for connecting different entities. In search indexing, all properties of this type are grouped under the emails group.
  5. Understand the Table schema in FollowTheMoney

    The Table schema represents documents structured into rows and cells, such as CSV files, spreadsheet sheets, or database relations. It inherits properties from the Document schema. Note that Table is a generated schema and should not be created directly by users.
  6. Use DateType for ISO 8601 date handling

    The DateType class handles date and time stamps based on ISO 8601. It supports varying degrees of precision, allowing values such as years (2021), year-month (2021-02), full dates (2021-02-16), and timestamps with varying precision (2021-02-16T21, 2021-02-16T21:48, 2021-02-16T21:48:52).

    Constraints:

    • Timezones must always be UTC.
    • Calendar weeks (e.g., 2021-W7) are not supported.
    • Date ranges (e.g., 2021-2024) are not supported.
    from followthemoney.types import DateType
    
    # Example valid values:
    # '2021'
    # '2021-02'
    # '2021-02-16'
    # '2021-02-16T21:48:52'
  7. Define a Risk designation for an entity

    The Risk schema is used to attach a risk designation to an entity by an authority. Unlike a Sanction, which represents a legally binding restriction, a Risk designation flags heightened exposure or scrutiny. It inherits properties from the Interval schema, allowing it to be tracked over time.
  8. Understand the Page schema constraints

    The Page schema is a generated and hidden schema. It is designed to be managed by the system and should not be created directly by users, nor should it be displayed in user interfaces.
  9. Understand the Occupancy schema

    The Occupancy schema represents the occupation of a position by a person for a specific period of time. It is used to model the relationship between a person and a role/position over a duration. In graph representations, Occupancy should be implemented as an edge.
  10. Use the Identifier property type for entity registration codes

    The identifier property type is used for registration numbers and codes assigned by an authority to identify an entity, such as tax identifiers or statistical codes. Identifiers are considered 'matchable' (suitable for entity matching) and 'pivot' (suitable for connecting entities).

    Note: Only model numbers as identifiers if they are long enough to be meaningful; short industry classifiers (e.g., 4-5 digits) are discouraged as they create too much noise.

  11. Understand the Person schema for natural persons

    The Person schema represents a natural person (as opposed to a corporation). It is designated as a matchable schema, meaning it is specifically designed to be used for entity matching and cross-referencing across datasets.