portal-synthetic-data

Generate reproducible synthetic financial silo datasets with Polars, Faker, and injected anomalies.

Updated Jul 27, 2026
One-click install
npx skills add https://github.com/ArthurZizumbo/karisma-data --skill portal-synthetic-data-arthurzizumbo
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: portal-synthetic-data
Source: https://github.com/ArthurZizumbo/karisma-data/tree/main/.claude/skills/portal-synthetic-data
Command: npx skills add https://github.com/ArthurZizumbo/karisma-data --skill portal-synthetic-data-arthurzizumbo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires polars, faker, numpy.

What problem does it solve? Building a semantic layer or data catalog demo requires realistic financial data, but real banking data is unavailable and ad-hoc fake data lacks the shared keys, cryptic schemas, and documented anomalies needed to make joins and cataloging meaningful. ## Core Features & Use Cases - Deterministic Silo Generation: Produces creditos, liquidez, and derivados Parquet datasets with a fixed seed (SEED = 20260720) so every make data run yields byte-identical output. - Deliberately Heterogeneous Schemas: Each silo names the same client concept differently (cli_ref, id_cliente, ctpty_cd) while sharing a common client ID pool to enable counterparty joins. - Documented Anomaly Injection: Injects ~0.1% anomalies (negative amounts, impossible dates, exact duplicates) with exact counts logged to data/README.md. - Catalog and User Seeding: Generates 200-400 catalog entries from physical schemas plus ~30 curated tribal notes and 7 Argon2-hashed users via dbmate migrations. - Use Case: Run make data to populate data/silos/*.parquet with millions of reproducible rows, then build and test the semantic layer and data catalog against known, documented data quality issues. ## Quick Start Ask the assistant to write ml/data/generators.py following this skill's rules and run the make data target to produce the seeded Parquet silos.

Frequently Asked Questions about portal-synthetic-data

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate reproducible synthetic data with Polars and Faker?▼

Set a fixed seed in Faker, NumPy's default_rng, and any Polars sampling calls, such as SEED = 20260720. With all generators sharing that seed, each run produces byte-identical Parquet output, which is essential for stable reference queries.

How to inject anomalies into synthetic test data?▼

Select about 0.1% of rows by index and split them into thirds: negate amount columns, replace dates with impossible values, and append exact duplicate rows. Log the exact counts per anomaly type and silo so the data README documents them precisely.

Why use different column names for the same concept across datasets?▼

Deliberately heterogeneous schemas, such as cli_ref versus id_cliente versus ctpty_cd for the same client, simulate real data silos. This gives a semantic layer and data catalog a genuine mapping problem to solve while shared ID pools still allow joins.

Can Faker and NumPy produce identical output across runs?▼

Yes, when both are seeded explicitly with Faker.seed() and numpy.random.default_rng(seed), and Polars sampling also receives the seed. Any unseeded randomness or nondeterministic operation will break byte-identical reproducibility.

What are the limitations of synthetic financial data for demos?▼

Synthetic data lacks real-world correlations and edge cases found in production systems, so derived forecasts must be labeled as simulated projections. It suits demos and semantic layer testing but cannot validate real model performance.