Scope

Capabilities

This report is an inventory: inventoried, neither exported nor replayed.

LevelThis reportCanot on Snowflake
Inventorydone by this scan (level 3)full, levels 1 to 3
Exportnot done by this scaniceberg, with canot drill
Evidencenot done by this scanP1 data parity; P2 query replay, with canot drill

Snowflake connector: tested; recorded test: canot drill, 2026-10-17: Snowflake trial account, TPC-H SF10 (docs/banc-essai.md).

What Canot cannot prove here: the declared forms (P1, P2) cover tables and queries; objects to rebuild besides tables are counted, not proven.

Observed costs

Window: 365 days. Credits measured; in dollars, only with the price provided or a dated list-price range.

ItemValueNature and basis
Credits consumed43.50 creditscomputed · S05
sum of credits per service over 365 days
In dollars$113.10 to $226.20
  • Snowflake list price as of 17/10/2026, AWS Paris/Frankfurt: $2.60 (Standard edition) to $5.20 (highest edition), https://www.snowflake.com/pricing/pricing-guide/
  • your contract price not read; your region may differ
estimated, low confidence · S05
credits × list price of the credit, from lowest to highest

Per service

ServiceCredits
WAREHOUSE_METERING41.50 credits
SERVERLESS_TASK1.20 credits
AUTO_CLUSTERING0.80 credits

Per warehouse

WarehouseCredits
CANOT_WH40.00 credits
COMPUTE_WH1.50 credits

Storage

ItemValueNature and basis
Average billed storage24 GBmeasured · S04
Storage in dollarsNot estimated: your contract price not read.not estimated

Movements

3 frozen, 7 live, 1 recreated, 1 not determined.

recreated: DDL less than 7 days old with no later write; live: write less than 30 days old; frozen: older last write; not determined: writes not read. Based on: S01, S08, S25.

TableTypeVolumeMovementEvidence
CANOT_LAB.RAW.ARCHIVE_1TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ARCHIVE_2TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ARCHIVE_3TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ORDERSTABLE2 GBlivelast write on 2026-10-16
CANOT_LAB.MART.FCT_ORDERSTABLE1.5 GBrecreatedlast DDL on 2026-10-17, no later write
CANOT_LAB.RAW.CUSTOMERSTABLE800 MBlivelast write on 2026-10-15
CANOT_LAB.RAW.ORDERS_CLONECLONE100 MBlivelast write on 2026-10-15
CANOT_LAB.MART.DIM_LEGACYTABLE10 MBnot determinedwrites not read
CANOT_LAB.OPS.EVENTS_LOGTABLE10 MBlivelast write on 2026-10-17
CANOT_LAB.SANDBOX.OLD_EXPORT_2023TABLE10 MBlivelast write on 2026-10-15
CANOT_LAB.SANDBOX.TEAM_WORKTABLE10 MBlivelast write on 2026-10-15
CANOT_LAB.EXT.US_STATESEXTERNALnot readlivelast write on 2026-10-15

What does not leave with the copy

Objects to rebuild or describe

TypeCountExamples
imported database2SNOWFLAKE, SNOWFLAKE_SAMPLE_DATA
tag1CANOT_LAB.OPS.PII
stream1CANOT_LAB.OPS.ORDERS_STREAM
function3CANOT_LAB.MART.CLEAN_NAME, CANOT_LAB.MART.FX_TO_CENTS, CANOT_LAB.MART.SLUG
share2S_CLIENTS, S_PARTNER
pipe1CANOT_LAB.OPS.P_EVENTS
row access policy1CANOT_LAB.OPS.RAP_COUNTRY
masking policy1CANOT_LAB.OPS.MP_EMAIL
procedure3CANOT_LAB.MART.SP_DYNAMIC_JS, CANOT_LAB.MART.SP_DYNAMIC_PY, CANOT_LAB.MART.SP_REFRESH_MART
stage2CANOT_LAB.EXT.S3_PUBLIC, CANOT_LAB.RAW.INT_STAGE
dynamic table1CANOT_LAB.MART.DT_COUNTRY_REVENUE
task4CANOT_LAB.OPS.T_DAILY, CANOT_LAB.OPS.T_EXPORT_NIGHTLY, CANOT_LAB.OPS.T_REFRESH, CANOT_LAB.OPS.T_SERVERLESS
view3CANOT_LAB.MART.V_KPI, CANOT_LAB.STAGING.STG_ORDERS, CANOT_LAB.STG.V_STATES

Routines per language: JAVASCRIPT 2, PYTHON 2, SQL 2.

Columns with a platform-specific type (2)

TableColumnType
CANOT_LAB.RAW.CUSTOMERSprofileVARIANT
CANOT_LAB.RAW.CUSTOMERSgeoGEOGRAPHY

Billed history

ItemValueNature and basis
Time Travel and Fail-safe (2 tables)6.3 GBcomputed · S03
Time Travel + Fail-safe of present tables, + bytes still billed for dropped tables

Dependencies

External dependencies (F01)

ObjectTypeLocation
CANOT_LAB.EXT.S3_PUBLICstages3://canot-lab-public
SNOWFLAKE_SAMPLE_DATAimported databasenot read
CANOT_LAB.EXT.US_STATEStables3://canot-lab-public

Hidden external dependencies (F02)

ObjectPathLocation
CANOT_LAB.MART.V_KPICANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public
CANOT_LAB.STG.V_STATESCANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public

Writes outside the platform (F03)

SourceModeDestination
family 5cf082fb4538observeds3://canot-lab-public
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYdeclareds3://canot-lab-export

External consumers (F09)

ShareAccounts
S_CLIENTS2

Tools seen in queries

ToolFamiliesExecutions
dbt140
unidentified421
tableau12

Connected clients (sessions)

ClientSessions
dbt-snowflake2,190
looker310

Query replayability

CategoryMeaningFamiliesExecutionsWeight
C0translated and accepted by DuckDB000.00 credits
C1not parseable000.00 credits
C2command, not analyzed110.00 credits
C3translation impossible000.00 credits
C4DuckDB parse error15not read
C5binding error (platform-specific object or function)3543.00 credits
C6variable000.00 credits
C7DDL, COPY, MERGE, metadata queries: counted separately130.20 credits
ItemValueNature and basis
C0 rate, by families0.0%computed · S24
translated and accepted by DuckDB (C0) / C0 to C6; C7 counted separately
C0 rate, by executions0.0%computed · S24
translated and accepted by DuckDB (C0) / C0 to C6; C7 counted separately
C0 rate, weighted0.0%
  • weight read for 4/5 families
computed · S24
translated and accepted by DuckDB (C0) / C0 to C6; C7 counted separately

Based on: 0/5 families, window not read, sqlglot X, duckdb X.

accepted ≠ identical result. Translated to DuckDB, not compared.

1 family containing a secret, counted then set aside.

Platform-specific functions

FunctionFamilies
moteur:LAST_QUERY_ID1
moteur:MY_UDF1
moteur:RESULT_SCAN1
stage1
tablefromrows1

Most executed families (normalized forms)

CategoryExecutionsToolNormalized form
C540dbtSELECT o.id, o.amount FROM CANOT_LAB.RAW.ORDERS AS o WHERE o.id > ?
C512SELECT COUNT(*) FROM CANOT_LAB.RAW.ORDERS WHERE id = ?
C45SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
C73COPY INTO @CANOT_LAB.EXT.S3_PUBLIC/out/ FROM (SELECT * FROM CANOT_LAB.RAW.ORDERS)
C52tableauSELECT MY_UDF(id) FROM CANOT_LAB.RAW.ARCHIVE_1
C21EXECUTE

Ranges

Planning estimates: each range carries its assumptions. A canot drill replaces the assumed throughput with a measurement.

ItemValueNature and basis
Volume to copy19.4 GB
  • active bytes of present tables, excluding external and temporary tables
  • compressed stored volume; the volume read by the copy may be higher
  • clones: only their own bytes are counted
computed · S03
sum of active bytes
Copy read time4 min to 16 min
  • assumed throughput of 20 to 80 MB/s, replaced by the measurement of a canot drill
estimated, low confidence · S03
volume ÷ assumed throughput
Copy read credits0.07 credits to 0.27 credits
  • assumed throughput of 20 to 80 MB/s, replaced by the measurement of a canot drill
  • XS warehouse, 1 credit per hour
estimated, low confidence · S03
time × credits per hour
Copy read cost$0.18 to $1.40
  • Snowflake list price as of 17/10/2026, AWS Paris/Frankfurt: $2.60 (Standard edition) to $5.20 (highest edition), https://www.snowflake.com/pricing/pricing-guide/
  • your contract price not read; your region may differ
estimated, low confidence · S03
credits × list price of the credit, from lowest to highest
Rework5.2 d to 31.0 d
  • 20 objects to rebuild and 2 columns with a platform-specific type
  • q4o assumptions: 0.25 to 1.5 day per object, 0.1 to 0.5 per column, open to discussion
estimated, low confidence · S02, S11, S12, S13, S14, S17
objects × days per object + columns × days per column

Findings

Each finding is labeled "To review", with no severity level. It states what is observed and what is not.

F01 · External dependencyTo review

3 findings

TargetObserved
object CANOT_LAB.EXT.S3_PUBLICExternal stage (s3://canot-lab-public).
object SNOWFLAKE_SAMPLE_DATADatabase imported from an inbound share.
table CANOT_LAB.EXT.US_STATESExternal table: data outside the platform (s3://canot-lab-public).

F02 · Hidden external dependencyTo review

2 findings

TargetObserved
object CANOT_LAB.MART.V_KPIDepends on CANOT_LAB.EXT.US_STATES, outside the platform, through 2 levels: CANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).
object CANOT_LAB.STG.V_STATESDepends on CANOT_LAB.EXT.US_STATES, outside the platform, through 1 level: CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).

F03 · Write outside the platformTo review

2 findings

TargetObserved
family 5cf082fb4538Write outside the platform observed: 3 executions; destination: s3://canot-lab-public.
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYTask that writes outside the platform (declared in its definition); destination: s3://canot-lab-export.

F04 · Owner role with no holderTo review

1 finding

TargetObserved
role LAB_ORPHANRole LAB_ORPHAN owns 1 object and is granted to no user, neither directly nor through another role.

F05 · Storage with no observed readTo review

3 findings

TargetObserved
table CANOT_LAB.RAW.ARCHIVE_15 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN. Shared with 2 external consumers: their reads are not seen.
table CANOT_LAB.RAW.ARCHIVE_25 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN.
table CANOT_LAB.RAW.ARCHIVE_35 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN.

F06 · Billed history that does not transferTo review

1 finding

TargetObserved
table CANOT_LAB.RAW.ORDERS6 GB of billed history (Time Travel and Fail-safe), retention 30 days, for 2 GB active; this history does not leave with the copy.

F07 · Dropped table still billedTo review

1 finding

TargetObserved
table CANOT_LAB.RAW.TMP_DROPPEDDropped on 2026-10-10; 300 MB still billed (Time Travel and Fail-safe).

F08 · Dynamic SQLTo review

2 findings

TargetObserved
object CANOT_LAB.MART.SP_DYNAMIC_JSProcedure (JAVASCRIPT): builds SQL at run time; the objects it touches cannot be read from the code.
object CANOT_LAB.MART.SP_DYNAMIC_PYProcedure (PYTHON): builds SQL at run time; the objects it touches cannot be read from the code.

F09 · External consumersTo review

1 finding

TargetObserved
object S_CLIENTSShare to 2 target accounts; 2 shared objects. Consumer reads are not seen by this scan.

F10 · Security to rebuildTo review

5 findings

TargetObserved
object CANOT_LAB.OPS.MP_EMAILMasking policy applied to 1 object; it does not leave with the copy; the copy requires an unfiltered principal.
object CANOT_LAB.OPS.PIITag applied to 1 object; it does not leave with the copy.
object CANOT_LAB.OPS.RAP_COUNTRYRow access policy applied to 1 object; it does not leave with the copy; the copy requires an unfiltered principal.
table CANOT_LAB.MART.FCT_ORDERSPolicies: OPS.RAP_COUNTRY. They do not leave with the copy; the copy requires a principal not filtered by these policies.
table CANOT_LAB.RAW.CUSTOMERSPolicies: OPS.MP_EMAIL; 1 tag. They do not leave with the copy; the copy requires a principal not filtered by these policies.

F11 · Scheduled chain and its failuresTo review

7 findings

TargetObserved
object CANOT_LAB.MART.DT_COUNTRY_REVENUEDynamic table, schedule 1 day; runs not read.
object CANOT_LAB.OPS.ORDERS_STREAMStream; on CANOT_LAB.RAW.ORDERS.
object CANOT_LAB.OPS.P_EVENTSPipe, state RUNNING; runs not read.
object CANOT_LAB.OPS.T_DAILYTask, schedule USING CRON 0 3 * * * Europe/Paris, state started; 365 runs, 2 failures, last on 2026-10-17.
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYTask, schedule USING CRON 0 2 * * * UTC, state started; 30 runs, 30 failures, last on 2026-10-17.
object CANOT_LAB.OPS.T_REFRESHTask, state started; 365 runs, 0 failures, last on 2026-10-17; chain: CANOT_LAB.OPS.T_DAILY → CANOT_LAB.OPS.T_REFRESH.
object CANOT_LAB.OPS.T_SERVERLESSTask, schedule 60 MINUTE, state suspended; 0 runs, 0 failures.

F12 · Incomplete readTo review

3 findings

TargetObserved
read S33STREAMS not read (missing privilege); limits: streams (F11).
read S34TASK_VERSIONS not read (missing privilege); limits: task versions (F11).
read lectures_par_tableReads not determined for 1 table; limits: storage with no observed read (F05).

What this report does not quantify

Using this report for your regulatory work (GDPR, DORA, NIS2, Data Act, SecNumCloud, EBA)

These elements can support your own work on GDPR, DORA, NIS2, the Data Act, SecNumCloud or the EBA outsourcing guidelines. They are evidence, not a finding: this report is not a certification, it is not legal advice, and it does not say whether your contracts or your organization meet any regulation.

FrameworkWhat it asks, in shortWhat this report gives youWhat it does not cover
DORA (Regulation (EU) 2022/2554)Art. 28(8) and 30(3)(f): a realistic transition, with an adequate period.Measured throughput and a recovery time range from the exercise; a copy duration range (estimated) in the scan.Excludes human validation and the cutover of your applications.
DORA (Regulation (EU) 2022/2554)Art. 28: knowing what depends on the ICT provider.What does not move as is: views, routines, tasks, policies, external dependencies, with the evidence behind each finding.An inventory of the platform, not of your contracts or of the applications connected to it.
Data Act (Regulation (EU) 2023/2854)Art. 29: switching charges are withdrawn from 12 January 2027.The effort that remains yours: read cost, copy duration and rework estimates, each marked measured, computed or estimated.Says nothing about charges your provider may still apply before that date. Prices are dated catalogue figures, not your contract.
GDPR (Regulation (EU) 2016/679)Chapter V (transfers) and Art. 32 (security of processing).Where the copy is hosted, and which security objects do not move with it (masking and row policies, tags).The hosting location is the destination you chose. The legal assessment of a transfer is yours.
GDPR (Regulation (EU) 2016/679)Art. 5(1)(c): data minimisation.The scan reads metadata and execution history, not table contents. SQL text is masked and identities are pseudonymised.Applies to the scan only: an exit exercise (drill) reads the data it copies.
NIS2 (Directive (EU) 2022/2555)Art. 21(2)(d): security of the supply chain, including your relationship with each direct service provider.What ties you to this provider: external dependencies and objects that do not move as is, with the evidence behind each finding.Does not assess the provider's security measures.
EBA Guidelines on outsourcing arrangements (EBA/GL/2019/02)Exit strategies: documented, realistic, sufficiently tested and reviewed periodically for the outsourcing the guidelines target.The exit exercise (drill) and the inventory of what does not move (scan), as test evidence in your exit file.One exercise. Alternative providers, the business side and the periodic review are yours. Check which text applies to you alongside DORA.

References as of 2026-10-19. Check the current texts: they evolve, and their application depends on your situation.

Method

33 reads done out of 35. Each read is recorded with its status and its reason; a value that was not read stays empty, never 0.

IdViewStatusReasonRowsWindowLatency
S33STREAMSnot readmissing privilege; limits: streams (F11)not read
S34TASK_VERSIONSnot readmissing privilege; limits: task versions (F11)not read
S01TABLESread101.5 h
S02COLUMNSread10
S03TABLE_STORAGE_METRICSread102 h
S04STORAGE_USAGEread10from 2025-10-18 to 2026-10-17
S05METERING_DAILY_HISTORYread10from 2025-10-18 to 2026-10-173 h
S06WAREHOUSE_METERING_HISTORYread10from 2025-10-18 to 2026-10-173 h
S07QUERY_ATTRIBUTION_HISTORYread10
S08TABLE_DML_HISTORYread10from 2025-10-18 to 2026-10-176 h
S09TABLE_QUERY_PRUNING_HISTORYread10from 2025-10-18 to 2026-10-174 h
S10OBJECT_DEPENDENCIESread10
S11VIEWSread10
S12FUNCTIONSread10
S13PROCEDURESread10
S14TASKSread10
S15TASK_HISTORYread10from 2025-10-18 to 2026-10-17
S16SERVERLESS_TASK_HISTORYread10
S17PIPESread10
S18COPY_HISTORYread10

… and 15 more in reads.csv.

Privileges used

Level 3: SNOWFLAKE.OBJECT_VIEWER, SNOWFLAKE.USAGE_VIEWER, SNOWFLAKE.GOVERNANCE_VIEWER, SNOWFLAKE.SECURITY_VIEWER. Never requested: IMPORTED PRIVILEGES, MANAGE GRANTS, IMPORT SHARE, USAGE on functions, READ on stages.

Cost of the scan

ItemValueNature and basis
Queries sent35 queriesmeasured
Read time412 smeasured

Safeguards

Rules

Next steps

This report describes your platform; it recommends neither leaving nor staying.

To measure an exit on a chosen scope: canot drill copies to Apache Iceberg, compares source and copy, and signs an evidence report.

To go further, the q4o assessment, from €22,000 excl. VAT: your contract rate, actual execution, scenarios, the steps to follow. canot.io