Icarus Synthetic Data

Realistic synthetic data at any scale.

why

what

how

It’s just Python code

Icarus Synthetic Data is just Python code, making it easy to fork and customize.

import os
import ibis
import ibis.selectors as s

from rich import print

ibis.options.interactive = True

Steps

  1. Seed data
    • metadata: sufficient metadata to generate interesting synthetic data
  2. Synthetic data generation
    • batch: generate historical data for backfilling
    • streaming: generate realtime data for streaming

seed data

Stored as a Python dictionary.

from icarus.synthetic_data.seed import data

print(data)
{
    'tickers': [
        {
            'ticker': 'AAI',
            'type': 'tech',
            'name': "Athena's AI",
            'shares_total': 10000000,
            'base_price': 100.0,
            'trend': 'down'
        },
        {
            'ticker': 'SUBS',
            'type': 'tech',
            'name': 'SubWay Cloud',
            'shares_total': 100000000,
            'base_price': 150.0,
            'trend': 'up'
        },
        {
            'ticker': 'II',
            'type': 'tech',
            'name': 'Icarus Investments',
            'shares_total': 500000,
            'base_price': 3000.0,
            'trend': 'flat'
        },
        {
            'ticker': 'IBIS',
            'type': 'service',
            'name': 'Interior Basics In Season',
            'shares_total': 1000000,
            'base_price': 1000.0,
            'trend': 'down'
        },
        {
            'ticker': 'VODA',
            'type': 'service',
            'name': "Voyage's Offices, Doors, and Accessories",
            'shares_total': 1000000,
            'base_price': 2500.0,
            'trend': 'up'
        }
    ]
}

Note this could come from any Ibis backend. Of course, to use your own data swap out the seed and synthetic data with your own tables.