LICENSE
README.md
pyproject.toml
src/quicksight_gen/__init__.py
src/quicksight_gen/__main__.py
src/quicksight_gen/cli.py
src/quicksight_gen/schema.py
src/quicksight_gen/schema.sql
src/quicksight_gen.egg-info/PKG-INFO
src/quicksight_gen.egg-info/SOURCES.txt
src/quicksight_gen.egg-info/dependency_links.txt
src/quicksight_gen.egg-info/entry_points.txt
src/quicksight_gen.egg-info/requires.txt
src/quicksight_gen.egg-info/top_level.txt
src/quicksight_gen/apps/__init__.py
src/quicksight_gen/apps/executives/__init__.py
src/quicksight_gen/apps/executives/app.py
src/quicksight_gen/apps/executives/datasets.py
src/quicksight_gen/apps/investigation/__init__.py
src/quicksight_gen/apps/investigation/app.py
src/quicksight_gen/apps/investigation/constants.py
src/quicksight_gen/apps/investigation/datasets.py
src/quicksight_gen/apps/investigation/demo_data.py
src/quicksight_gen/apps/investigation/etl_examples.py
src/quicksight_gen/apps/l1_dashboard/__init__.py
src/quicksight_gen/apps/l1_dashboard/_default_l2.yaml
src/quicksight_gen/apps/l1_dashboard/_l2.py
src/quicksight_gen/apps/l1_dashboard/app.py
src/quicksight_gen/apps/l1_dashboard/datasets.py
src/quicksight_gen/apps/l2_flow_tracing/__init__.py
src/quicksight_gen/apps/l2_flow_tracing/app.py
src/quicksight_gen/apps/l2_flow_tracing/datasets.py
src/quicksight_gen/common/__init__.py
src/quicksight_gen/common/aging.py
src/quicksight_gen/common/cleanup.py
src/quicksight_gen/common/clickability.py
src/quicksight_gen/common/config.py
src/quicksight_gen/common/dataset_contract.py
src/quicksight_gen/common/datasource.py
src/quicksight_gen/common/deploy.py
src/quicksight_gen/common/drill.py
src/quicksight_gen/common/ids.py
src/quicksight_gen/common/models.py
src/quicksight_gen/common/persona.py
src/quicksight_gen/common/rich_text.py
src/quicksight_gen/common/theme.py
src/quicksight_gen/common/browser/__init__.py
src/quicksight_gen/common/browser/helpers.py
src/quicksight_gen/common/browser/screenshot.py
src/quicksight_gen/common/l2/__init__.py
src/quicksight_gen/common/l2/auto_scenario.py
src/quicksight_gen/common/l2/derived.py
src/quicksight_gen/common/l2/loader.py
src/quicksight_gen/common/l2/primitives.py
src/quicksight_gen/common/l2/schema.py
src/quicksight_gen/common/l2/seed.py
src/quicksight_gen/common/l2/topology.py
src/quicksight_gen/common/l2/validate.py
src/quicksight_gen/common/sheets/__init__.py
src/quicksight_gen/common/sheets/app_info.py
src/quicksight_gen/common/tree/__init__.py
src/quicksight_gen/common/tree/_helpers.py
src/quicksight_gen/common/tree/actions.py
src/quicksight_gen/common/tree/calc_fields.py
src/quicksight_gen/common/tree/controls.py
src/quicksight_gen/common/tree/datasets.py
src/quicksight_gen/common/tree/fields.py
src/quicksight_gen/common/tree/filters.py
src/quicksight_gen/common/tree/formatting.py
src/quicksight_gen/common/tree/parameters.py
src/quicksight_gen/common/tree/structure.py
src/quicksight_gen/common/tree/text_boxes.py
src/quicksight_gen/common/tree/visuals.py
src/quicksight_gen/docs/L1_Invariants.md
src/quicksight_gen/docs/Schema_v6.md
src/quicksight_gen/docs/Training_Story.md
src/quicksight_gen/docs/index.md
src/quicksight_gen/docs/api/common-foundations.md
src/quicksight_gen/docs/api/index.md
src/quicksight_gen/docs/api/tree-actions.md
src/quicksight_gen/docs/api/tree-data.md
src/quicksight_gen/docs/api/tree-filters-controls.md
src/quicksight_gen/docs/api/tree-structure.md
src/quicksight_gen/docs/api/tree-visuals.md
src/quicksight_gen/docs/handbook/customization.md
src/quicksight_gen/docs/handbook/etl.md
src/quicksight_gen/docs/handbook/investigation.md
src/quicksight_gen/docs/handbook/l1.md
src/quicksight_gen/docs/handbook/l2_flow_tracing.md
src/quicksight_gen/docs/img/favicon.svg
src/quicksight_gen/docs/img/snb-mark.svg
src/quicksight_gen/docs/img/snb-wordmark.svg
src/quicksight_gen/docs/stylesheets/sasquatch.css
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-add-a-metadata-key.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-author-a-new-app-on-the-tree.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-configure-the-deploy.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-extend-canonical-values.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-map-my-database.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-reskin-the-dashboards.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-run-my-first-deploy.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-swap-dataset-sql.md
src/quicksight_gen/docs/walkthroughs/customization/how-do-i-test-my-customization.md
src/quicksight_gen/docs/walkthroughs/etl/how-do-i-add-a-metadata-key.md
src/quicksight_gen/docs/walkthroughs/etl/how-do-i-populate-transactions.md
src/quicksight_gen/docs/walkthroughs/etl/how-do-i-prove-my-etl-is-working.md
src/quicksight_gen/docs/walkthroughs/etl/how-do-i-tag-a-force-posted-transfer.md
src/quicksight_gen/docs/walkthroughs/etl/how-do-i-validate-a-single-account-day.md
src/quicksight_gen/docs/walkthroughs/etl/what-do-i-do-when-demo-passes-but-prod-fails.md
src/quicksight_gen/docs/walkthroughs/investigation/what-does-this-accounts-money-network-look-like.md
src/quicksight_gen/docs/walkthroughs/investigation/where-did-this-transfer-originate.md
src/quicksight_gen/docs/walkthroughs/investigation/which-pair-just-spiked.md
src/quicksight_gen/docs/walkthroughs/investigation/who-is-getting-money-from-too-many-senders.md
src/quicksight_gen/docs/walkthroughs/l1/daily-statement.md
src/quicksight_gen/docs/walkthroughs/l1/drift-timelines.md
src/quicksight_gen/docs/walkthroughs/l1/drift.md
src/quicksight_gen/docs/walkthroughs/l1/getting-started.md
src/quicksight_gen/docs/walkthroughs/l1/limit-breach.md
src/quicksight_gen/docs/walkthroughs/l1/overdraft.md
src/quicksight_gen/docs/walkthroughs/l1/pending-aging.md
src/quicksight_gen/docs/walkthroughs/l1/supersession-audit.md
src/quicksight_gen/docs/walkthroughs/l1/todays-exceptions.md
src/quicksight_gen/docs/walkthroughs/l1/transactions.md
src/quicksight_gen/docs/walkthroughs/l1/unbundled-aging.md
src/quicksight_gen/docs/walkthroughs/screenshots/ar/daily-statement-01-clean.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/daily-statement-02-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/daily-statement-03-overdraft.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-breakdown.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-ach-origination-non-zero.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-ach-sweep-no-fed-confirmation.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-concentration-master-sweep-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-fed-card-no-internal-catchup.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-gl-vs-fed-master-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-internal-reversal-uncredited.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-internal-transfer-suspense-non-zero.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-ledger-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-non-zero-transfers.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-stuck-in-internal-transfer-suspense.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-sub-ledger-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-sub-ledger-limit-breach.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-sub-ledger-overdraft.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-filtered-sweep-target-non-zero.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-overview.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/todays-exceptions-table.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/trends-aging-by-check.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/trends-drift-timelines.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/trends-expected-zero-rollup.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/trends-per-check-by-day.png
src/quicksight_gen/docs/walkthroughs/screenshots/ar/trends-two-sided-rollup.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-daily-statement.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-drift-timelines.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-drift.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-getting-started.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-limit-breach.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-overdraft.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-pending-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-supersession-audit.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-todays-exceptions.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-transactions.png
src/quicksight_gen/docs/walkthroughs/screenshots/l1/l1-sheet-unbundled-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/did-all-merchants-get-paid-01-kpis.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/did-all-merchants-get-paid-02-settlements.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/how-much-did-we-return-01-kpi.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/how-much-did-we-return-02-table.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/how-much-did-we-return-03-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/wheres-my-money-for-merchant-01-sales.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/wheres-my-money-for-merchant-02-settlements.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/wheres-my-money-for-merchant-03-payments.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/which-sales-never-made-it-to-settlement-01-kpi.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/which-sales-never-made-it-to-settlement-02-table.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/which-sales-never-made-it-to-settlement-03-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-does-this-settlement-look-short-01-kpi.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-does-this-settlement-look-short-02-table.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-does-this-settlement-look-short-03-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-doesnt-this-payment-match-the-settlement-01-kpi.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-doesnt-this-payment-match-the-settlement-02-table.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-doesnt-this-payment-match-the-settlement-03-aging.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-is-this-external-transaction-unmatched-01-kpis.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-is-this-external-transaction-unmatched-02-orphan.png
src/quicksight_gen/docs/walkthroughs/screenshots/pr/why-is-this-external-transaction-unmatched-03-drift.png
src/quicksight_gen/l2_spike/__init__.py
src/quicksight_gen/l2_spike/__main__.py
src/quicksight_gen/l2_spike/cli.py
src/quicksight_gen/l2_spike/emit.py
src/quicksight_gen/l2_spike/loader.py
src/quicksight_gen/training/QUICKSTART.md
src/quicksight_gen/training/mapping.yaml.example
src/quicksight_gen/training/handbook/README.md
src/quicksight_gen/training/handbook/concepts/double-entry.md
src/quicksight_gen/training/handbook/concepts/escrow-with-reversal.md
src/quicksight_gen/training/handbook/concepts/eventual-consistency.md
src/quicksight_gen/training/handbook/concepts/open-vs-closed-loop.md
src/quicksight_gen/training/handbook/concepts/sweep-net-settle.md
src/quicksight_gen/training/handbook/concepts/vouchering.md
src/quicksight_gen/training/handbook/for-accounting/00-why-this-exists.md
src/quicksight_gen/training/handbook/for-accounting/01-dashboard-literacy.md
src/quicksight_gen/training/handbook/for-customer-service/00-why-this-exists.md
src/quicksight_gen/training/handbook/for-developers/00-why-this-exists.md
src/quicksight_gen/training/handbook/for-developers/extending.md
src/quicksight_gen/training/handbook/for-product-owner/00-how-to-present-this.md
src/quicksight_gen/training/handbook/scenarios/01-dollars-in-the-pool.md
src/quicksight_gen/training/handbook/scenarios/02-what-happened-to-this-money.md
src/quicksight_gen/training/handbook/scenarios/03-vouchers-dont-match-sales.md
src/quicksight_gen/training/handbook/scenarios/extending-template.md
tests/test_app_info.py
tests/test_auto_scenario.py
tests/test_auto_scenario_broad.py
tests/test_cleanup.py
tests/test_cli_seed_l2.py
tests/test_dataset_contract.py
tests/test_dataset_parameters.py
tests/test_demo_data.py
tests/test_deploy.py
tests/test_drill.py
tests/test_executives.py
tests/test_export.py
tests/test_harness_browser.py
tests/test_harness_cleanup.py
tests/test_harness_deploy.py
tests/test_harness_failure_dump.py
tests/test_harness_l1_assertions.py
tests/test_harness_l2ft_assertions.py
tests/test_harness_seed.py
tests/test_investigation.py
tests/test_kitchen_app.py
tests/test_l1_dashboard.py
tests/test_l2_derived.py
tests/test_l2_descriptions.py
tests/test_l2_flow_tracing.py
tests/test_l2_flow_tracing_matrix.py
tests/test_l2_fuzz.py
tests/test_l2_loader.py
tests/test_l2_pipeline.py
tests/test_l2_pr_primitives.py
tests/test_l2_primitives.py
tests/test_l2_sasquatch_pr.py
tests/test_l2_schema.py
tests/test_l2_seed_contract.py
tests/test_l2_topology.py
tests/test_l2_validate.py
tests/test_l2_yaml_naming.py
tests/test_models.py
tests/test_persona.py
tests/test_screenshot_harness.py
tests/test_seed_persona_clean.py
tests/test_theme_presets.py
tests/test_tree.py
tests/test_tree_validator.py