Browser-local historical interval analysis

Crypto signal concurrent exposure analyzer

Find when supplied crypto signal intervals overlap within the same stated risk basis. The analyzer reports the earliest highest planned-risk window, active signal IDs, overlap pairs, rows involved, and the share of the basis span spent with two or more active rows. Different risk basis IDs are never added together.

Go to the analyzer
Input unitOne bounded CSV row per supplied signal interval, with one planned-risk percentage and one exact risk basis ID.
Interval ruleIntervals are half-open: open is included and close is excluded. At the same instant, closes are applied before opens.
Output scopeDescriptive schedule arithmetic for supplied fields. It does not establish what happened in a trading account.

Direct answer

Concurrent exposure is a same-basis interval question

For this analyzer, concurrent planned exposure means the sum of supplied planned_risk_pct values whose time intervals are active at the same instant and whose risk_basis_id values match exactly. The page does not add a percentage based on one account, model, allocation, or notional basis to a percentage based on another. A global selected peak chooses one basis summary; it is not a cross-basis portfolio total.

Each included row must represent a resolved executed interval. The interval rule is [open, close), with close before open at an equal timestamp. User-supplied planned risk values are never summed across different risk bases.

The reported fields are maximum simultaneous signal count, peak summed planned risk, earliest peak window, overlap pair count, rows that overlapped, and share of the observed basis span with at least two rows open. Processing is browser-local and makes zero analyzer network requests.

These diagnostics are not position sizing, not correlation, not actual loss, and not advice. The synthetic example exists only to make the arithmetic reproducible.

Each row uses a half-open interval written as [opened_at_utc, closed_at_utc). The open instant belongs to the row and the close instant does not. When one row closes at exactly 13:00:00Z and another opens at exactly 13:00:00Z, those two rows have no positive-duration overlap. The event sweep applies every close before every open at that timestamp so the rule is reproducible.

Within each basis, the analyzer selects the highest active planned-risk sum. If that same sum appears in more than one event window, it retains the earliest one. The global selection compares those basis peaks by planned-risk percentage, then by earliest timestamp, then by ASCII basis ID. These tie-breaks make repeated runs produce the same result without choosing a more dramatic window.

What a valid result saysThe supplied rows create the reported overlap pattern under their own timestamps, percentages, and basis labels. It does not say that the rows are authentic, that an order was placed, or that the planned percentage became a realized outcome.

Browser-local calculation

Analyze a concurrent exposure CSV

The five required columns are visible before the input. Additional columns are accepted as a bounded superset and reported as ignored; they do not enter interval or percentage arithmetic. File bytes are decoded with a fatal UTF-8 decoder. Pasted text and selected files remain in this browser session. The analyzer has no upload endpoint, browser storage, or network request path.

signal_idUnique without case distinctions; bounded ASCII token.
opened_at_utcReal RFC 3339 UTC timestamp ending in uppercase Z.
closed_at_utcSame format and strictly later than the open.
planned_risk_pctGreater than 0 and at most 100, with at most six decimals.
risk_basis_idBounded ASCII token. Different exact IDs stay separate.
Published boundsMaximum 256,000 UTF-8 bytes, 2,000 nonblank rows, 40 columns, and 12,000 characters per cell unless the frozen ledger sets a tighter bound.
active in window = opened_at_utc <= window start < closed_at_utc
same-basis planned-risk sum = sum(active planned_risk_pct)
concurrent-span share = duration(active count >= 2) / basis span * 100

Concurrent interval inputs

Analysis runs locally. Changing the CSV hides the prior result until you analyze again.

The selected file is decoded and analyzed by this page only.

Copy summary writes the selected basis ID, peak percentage, and timestamps to the system clipboard. Download JSON writes risk basis IDs plus peak and overlapping signal IDs to a local file. Neither action happens automatically. A derived JSON report above 512,000 bytes is blocked before any file or object URL is created.

No interval set loaded

Metrics remain suppressed until a valid interval set is analyzed.

Selected same-basis peak

Risk basis-
Planned-risk sum-
Peak window-
Signals at peak-

Selected basis overlap footprint

Peak simultaneous count-
Overlap pairs-
Rows that overlap-
Concurrent-span share-

Basis summaries

Concurrent exposure metrics by exact risk basis ID
BasisRowsPeak riskPeak windowMaximum countPairsRows overlappingConcurrent sharePeak IDs

Validation notes

Validation errors, warnings, and method notices
SeverityCodeRowMeaningRepair

Exact method

Formulas and deterministic event order

The parser first validates the CSV shape. Header names are used exactly as supplied: they are not trimmed, repaired, or case-folded. All five required lowercase names must appear once. Unknown nonblank names can remain in the file while the published column and cell limits keep the input bounded. Every data row must match the header width. A signal ID must be unique after ASCII lowercase folding across the whole file, including rows assigned to different bases.

Timestamps accept only a real calendar date and time in the form YYYY-MM-DDTHH:MM:SSZ, with an optional one-to-nine-digit fractional second. Numeric UTC offsets, local times, leap-second values, impossible dates, and a close that is equal to or earlier than its open are rejected. Parsed instants become exact epoch-nanosecond integers. No duration ratio uses binary floating-point arithmetic.

Planned-risk percentages accept a plain base-10 decimal greater than zero and no greater than 100. A sign, exponent, thousands separator, or more than six decimal places is rejected. The accepted text becomes an integer at a scale of 1,000,000. For example, 0.125 becomes 125000 and 2.25 becomes 2250000. Active-risk sums and comparisons use those integers.

basis peak = max over event windows(sum of active same-basis risk integers))
overlap pair = max(open A, open B) < min(close A, close B)
rows that overlap = distinct rows belonging to at least one overlap pair

The event list sorts by integer timestamp. At each timestamp, every close is removed before any open is added. Open events are ordered by case-folded signal ID only to make pair accounting deterministic; rows opening together still overlap each other during the following positive-duration window. For each open, the current active-set size is the number of new unordered overlap pairs created by that row.

The basis span begins at its earliest open and ends at its latest close. Concurrent duration is the sum of event-window durations where at least two rows are active. The percentage multiplies the duration numerator by 100 and a fixed ratio scale of 1,000,000, divides by the span duration, and rounds half up using integers. The published decimal string is authoritative.

The reported peak window is the earliest individual event window carrying the maximum planned-risk sum. If an equal-risk close and open change the active IDs without changing the sum, the earlier window remains selected. Peak signal IDs are sorted without case distinctions and then by their original ASCII spelling. The separate peak simultaneous count is the largest active-row count observed anywhere in that basis.

Worked synthetic example

ACC-A reaches 2.25% across three signals

The synthetic starter contains four ACC-A rows and one isolated ACC-B row. ACC-A-01 runs from 08:00 to 14:00 UTC at 0.75%, ACC-A-02 runs from 10:00 to 13:00 at 0.50%, ACC-A-03 runs from 12:00 to 16:00 at 1.00%, and ACC-A-04 runs from 14:00 to 15:00 at 0.25%. The first three rows are active together from 2026-01-15T12:00:00Z to 2026-01-15T13:00:00Z, producing the selected 2.25% sum.

ACC-A has 4 unordered overlap pairs: ACC-A-01 with ACC-A-02, ACC-A-01 with ACC-A-03, ACC-A-02 with ACC-A-03, and ACC-A-03 with ACC-A-04. All 4 ACC-A rows belong to at least one pair. ACC-A-01 closes exactly when ACC-A-04 opens, so that pair is excluded by the half-open rule.

The ACC-A span is eight hours, from 08:00 to 16:00. At least two rows are active for five hours. Five divided by eight is the reported 62.5% concurrent-span share. ACC-B contains 1 isolated row, 0 overlap pairs, and a 0% concurrent-span share. Its percentage is not added to ACC-A.

Four synthetic ACC-A intervals with the three-signal 12:00 to 13:00 UTC peak outlined.

Download the synthetic starter CSV or inspect the machine-readable calculation fixtures. Every row is invented for method testing and represents no provider, account, exchange, or recommendation.

Basis discipline

Why risk basis IDs must remain separate

A percentage is meaningful only against its stated denominator. Two rows can both say 1% while referring to different accounts, allocations, model sleeves, capital snapshots, or internal definitions. Adding those values would create a number that neither row supplied. The analyzer therefore treats ACC-A and ACC-B as separate groups and exposes a summary for each.

Risk basis matching uses the exact supplied token. Surrounding whitespace is not removed, and whitespace makes the token invalid under the published grammar. Case is not silently folded for basis IDs because the file owner may use case as part of an identifier. Reviewers should correct accidental spelling or case variation in their source record before analysis, document the chosen basis, and rerun the calculation. The tool will not guess that two basis strings mean the same thing.

The global selected peak is a navigation aid across summaries, not an instruction to combine them. A higher percentage in one basis appears before a lower percentage in another. Equal percentages use the earlier peak. If risk and time also match, the ASCII basis ID breaks the tie. The full basis table remains visible so the selected row cannot hide other supplied groups.

Different questions

Pairs, rows, counts, and duration are not interchangeable

Overlap-pair count describes relationships. With three mutually overlapping rows, there are three unordered pairs. Adding a fourth row that overlaps only one of those rows increases the pair count by one. The number can grow faster than row count, so it should not be read as the number of signals or time windows.

Unique rows that overlap answers a different question: how many supplied rows participate in at least one positive-duration same-basis pair? An isolated row adds one to basis row count but adds nothing to this measure. Peak simultaneous count is different again. It is the largest active-set size in one event window, regardless of whether that window carries the highest planned-risk sum.

Concurrent-span share adds time. It measures how much of the full basis span has at least two active rows. The denominator runs from the earliest open to the latest close, so inactive gaps remain in the observed basis span while adding zero concurrent duration. It does not weight that duration by planned-risk percentage. A long overlap with two small percentages can produce a larger time share than a short overlap with three larger percentages. The peak and duration fields should be read together, not substituted for each other.

A zero-overlap result is explicit. It means no same-basis pair in the supplied valid rows intersects for positive duration under the half-open rule. It does not establish that the file covers every signal, that timestamps are original, or that no exposure existed elsewhere.

Distinct job

This analyzer does one job that adjacent tools do not

The result-sheet validator owns structural repair for a wider result record: required fields, chronology, outcomes, and compatible row conventions. This page accepts bounded extra columns but uses only five fields needed for interval overlap. A file can pass this narrow analyzer while still needing the wider validator for other claims.

A point risk-reward calculator evaluates explicit payoff and probability assumptions for one setup. It does not inspect a schedule of open and close times. A sequence tool evaluates ordered resolved values. It does not find simultaneous active intervals. A coverage test compares supplied rows with a declared population. It does not add same-basis planned percentages over time.

The distinct decision here is: given these supplied interval rows and exact basis labels, when is each basis most heavily populated by planned-risk percentages, which rows create that earliest peak, and how broad is the overlap footprint? Passing that calculation does not imply that any adjacent evidence question has passed.

Reproducibility

Deterministic fixtures cover boundaries and failures

The generator executes every source-ledger fixture before writing output. The fixture family covers the exact starter result, equal-time close/open behavior, cross-day, cross-month, cross-year, leap-year and leap-century arithmetic, nanosecond rounding in both directions, one versus two UTF-8 byte-order marks, multiple bases, global peak tie-breaks, quoted superset cells, malformed quoting, missing columns, duplicate identifiers without case distinctions, invalid UTC text, non-positive intervals, risk precision and range, input limits, and a valid no-overlap set. Invalid fixtures produce no metrics.

Open the 41-fixture result table
FixtureExpectedCalculated stateRowsBasesKey notes
starter-five-rows
The required ACC-A peak, four overlap pairs, four overlapping rows, 62.5 percent concurrent span, and isolated ACC-B baseline.
Calculableanalyzed52CONCURRENT_ROWS_PRESENT
HALF_OPEN_BOUNDARY_APPLIED
same-timestamp-half-open-handoff
A close at exactly the next row's open is not overlap.
Calculableanalyzed21HALF_OPEN_BOUNDARY_APPLIED
NO_OVERLAP_PAIRS
multiple-bases-never-summed
Two simultaneous intervals under different exact bases remain two independent results and never become 130 percent.
Calculableanalyzed22NO_OVERLAP_PAIRS
equal-risk-peaks-choose-earliest
Equal two-percent peak segments choose the earliest half-open window; the boundary-only A-C pair is excluded.
Calculableanalyzed31CONCURRENT_ROWS_PRESENT
HALF_OPEN_BOUNDARY_APPLIED
maximum-count-differs-from-risk-peak
Three low-risk rows produce the maximum count, while a later two-row segment produces the maximum planned-risk sum.
Calculableanalyzed41CONCURRENT_ROWS_PRESENT
MAX_COUNT_AND_RISK_PEAK_DIVERGE
nanosecond-precision
One nanosecond of overlap inside a three-nanosecond observed span is preserved without millisecond rounding.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
cross-day-duration
A fixed three-second span crossing midnight preserves one exact second of overlap.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
cross-month-duration
A fixed three-minute span crossing a month boundary preserves one exact minute of overlap.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
cross-year-duration
A fixed three-minute span crossing a year boundary preserves one exact minute of overlap.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
leap-year-february-29
The ordinary leap year 2024 admits February 29 and preserves exact cross-day duration.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
leap-century-2000
The Gregorian leap century 2000 admits February 29 and preserves exact cross-month duration.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
non-leap-century-2100
The Gregorian non-leap century 2100 rejects February 29.
Rejectedinvalid10OPENED_AT_INVALID
round-half-up-two-thirds
Two concurrent nanoseconds inside a three-nanosecond span round half up to 66.666667 percent.
Calculableanalyzed21CONCURRENT_ROWS_PRESENT
single-utf8-bom
Exactly one UTF-8 byte-order mark at byte zero is accepted and removed before header validation.
Calculableanalyzed11NO_OVERLAP_PAIRS
double-utf8-bom
A second UTF-8 byte-order mark is preserved as data and rejected rather than silently stripped.
Rejectedinvalid10HEADER_INVALID
REQUIRED_COLUMN_MISSING
SIGNAL_ID_EMPTY
malformed-utf8
A lone 0xFF byte is rejected before CSV parsing and never replaced.
Rejectedmalformed00UTF8_INVALID
quoted-unknown-column
A bounded ignored field accepts a comma, escaped quotes, and an embedded line break under the CSV grammar.
Calculableanalyzed11NO_OVERLAP_PAIRS
UNKNOWN_COLUMN_IGNORED
malformed-unclosed-quote
An unclosed quoted field produces no partial metrics.
Rejectedmalformed00CSV_MALFORMED
duplicate-signal-id-case-insensitive
Signal IDs are unique globally after ASCII lowercase folding, even across bases.
Rejectedinvalid21SIGNAL_ID_DUPLICATE
ascii-signal-id-order
Accepted punctuation is ordered by ASCII after case folding rather than locale collation.
Calculableanalyzed41CONCURRENT_ROWS_PRESENT
timestamp-offset-rejected
A numeric +00:00 offset is rejected by the strict UTC Z profile.
Rejectedinvalid10OPENED_AT_INVALID
timestamp-calendar-and-fraction-errors
An impossible date and a ten-digit fractional second are both rejected without ordering arithmetic.
Rejectedinvalid10OPENED_AT_INVALID
CLOSED_AT_INVALID
zero-duration-interval
Equal open and close timestamps are invalid rather than zero-duration overlap.
Rejectedinvalid10INTERVAL_NOT_POSITIVE
close-before-open
A reverse interval is invalid.
Rejectedinvalid10INTERVAL_NOT_POSITIVE
fixed-scale-extremes
The minimum representable positive value and exact 100 percent value sum to 100.000001 without float drift.
Calculableanalyzed_with_warnings21PEAK_PLANNED_RISK_OVER_100
CONCURRENT_ROWS_PRESENT
planned-risk-overprecision
A seventh fractional digit is rejected instead of rounded.
Rejectedinvalid10PLANNED_RISK_PRECISION
planned-risk-zero-range
A zero planned-risk percentage is rejected independently.
Rejectedinvalid10PLANNED_RISK_RANGE
planned-risk-upper-range
A planned-risk percentage above 100 is rejected independently.
Rejectedinvalid10PLANNED_RISK_RANGE
empty-input
Empty input remains an explicit non-exportable state.
Rejectedempty00EMPTY_INPUT
header-only
A valid header without data rows cannot produce metrics.
Rejectedinvalid00NO_DATA_ROWS
no-overlap-with-gap
Two separated same-basis rows produce zero concurrent duration across a span that includes the gap.
Calculableanalyzed21NO_OVERLAP_PAIRS
risk-basis-case-collision
Case-colliding basis labels remain separate and create a warning rather than a merged sum.
Calculableanalyzed_with_warnings22RISK_BASIS_CASE_COLLISION
NO_OVERLAP_PAIRS
non-ascii-identifiers
Non-ASCII signal and basis identifiers are rejected under the bounded identifier grammar.
Rejectedinvalid10SIGNAL_ID_INVALID
RISK_BASIS_ID_INVALID
duplicate-header
An exact duplicate required header is rejected before row mapping.
Rejectedinvalid11HEADER_DUPLICATE
file-byte-limit
The byte limit is checked before decoding or CSV parsing.
Rejectedinvalid00FILE_TOO_LARGE
column-limit
A deterministic 41-column CSV exceeds the 40-column cap.
Rejectedinvalid11TOO_MANY_COLUMNS
UNKNOWN_COLUMN_IGNORED
row-limit
Two thousand and one otherwise valid rows exceed the data-row cap.
Rejectedinvalid20011TOO_MANY_ROWS
blank-logical-record-overflow
Two thousand and one blank logical records followed by a valid header and row remain invalid rather than being misclassified as empty.
Rejectedinvalid00TOO_MANY_ROWS
BLANK_ROWS_IGNORED
logical-record-overflow-followed-by-malformed
A logical-record overflow followed by an unclosed quoted field resolves to the malformed state and exposes only the grammar failure.
Rejectedmalformed00CSV_MALFORMED
cell-code-point-limit
A 12,001-code-point ignored cell exceeds the per-cell cap even though the column is not calculated.
Rejectedinvalid11CELL_TOO_LONG
UNKNOWN_COLUMN_IGNORED
issue-cap
Validation stops deterministically at the 200-issue cap and emits the cap error without metrics.
Rejectedinvalid2010ISSUE_LIMIT_REACHED
SIGNAL_ID_EMPTY
OPENED_AT_EMPTY
CLOSED_AT_EMPTY
PLANNED_RISK_INVALID
RISK_BASIS_ID_EMPTY

Limitations

What this output cannot establish

The analyzer cannot authenticate a source message, recover a deleted post, detect an edited timestamp, confirm that an entry was reachable, determine whether an order was submitted, or show whether a stated stop defined the supplied percentage. It does not contact a provider, messaging platform, exchange, wallet, archive, or blockchain. It makes no provider status or quality decision.

The planned-risk sum is not account risk, account return, drawdown, actual loss, position size, leverage, margin use, liquidation distance, or capital at risk. Those concepts require additional fields and assumptions that are not present in this five-column contract. The analyzer also does not estimate dependence or common market drivers between simultaneous rows.

Planned percentages can be internally inconsistent even when parsing succeeds. A provider might change its denominator over time, reuse a basis label, publish percentages after the fact, or define risk differently across instruments. The exact basis partition prevents one kind of invalid addition; it cannot prove that the label itself is stable or truthful.

Overlap does not establish financial performance, provider verification, suitability, endorsement, or misconduct. No-overlap does not establish safety. Neither state predicts a future outcome. The page does not issue a rating, rank providers, assess legal compliance, prove search indexing, or promise retrieval or citation by an automated system.

Use the output as a review map. Preserve the original file separately, record its hash and capture time, document the meaning of each basis ID, and reconcile important rows with primary evidence. Corrections should change the source ledger and regenerate all bound artifacts instead of editing a displayed number by hand.

Privacy and local processing

The analyzer keeps supplied rows in current browser memory

Pasted text and selected file bytes are parsed by the analyzer in the current page. Its runtime contract permits no fetch, XMLHttpRequest, beacon, WebSocket, EventSource, cookie, localStorage, sessionStorage, or IndexedDB path. The page Content Security Policy also sets connect-src none. These controls govern the analyzer; the browser still requests the public page and its same-site presentation assets when the page first loads.

Issue messages expose only a stable code, severity, row number, and required-column label. They do not repeat cell values, filenames, signal IDs, risk basis IDs, unknown-column values, or raw CSV. Changing the input suppresses the previous result until the new input is analyzed.

Nothing persists automatically. Copy summary and Download JSON are explicit user actions. Copy summary writes the selected risk basis ID, peak percentage, and timestamps to the system clipboard, which the operating system or a configured sync service may retain. The JSON export writes risk basis IDs plus peak and overlapping signal IDs with the method identity, boundaries, issues, input counts, and calculated basis summaries; it excludes raw CSV and ignored-column values. Clear removes the current input and result references from the page.

Source boundary

Method and risk sources

The canonical shows only official sources that directly support CSV interpretation, timestamp grammar, or bounded trading-risk context. Operational SEO, crawler, sitemap, notification, and platform-reporting sources remain in the frozen research ledger and release handoff; they are not calculation sources. None of the links below validates a user CSV.

PublisherOfficial sourceRecordedSource stateBounded useDoes not establish
U.S. Commodity Futures Trading CommissionCustomer Advisory: Understand the Risks of Virtual Currency Trading2026-07-14official advisory reviewed live on 2026-07-14 for bounded risk context; no local archive or domain-formula authority is claimedSupports keeping leverage-amplified loss risk visible when explaining why planned-risk percentages are not actual account outcomes.Does not define the interval formulas, a universally acceptable exposure threshold, or advice.
National Futures AssociationInvestor Best Practices2026-07-14official investor guidance reviewed live on 2026-07-14 for bounded due-diligence context; no local archive, verification, or advice claim is madeSupports plain risk disclosure, independent due diligence, and avoiding claims that a calculator replaces qualified account-specific review.Does not verify a provider, prescribe a risk percent, rate an opportunity, or validate the formulas.
RFC EditorCommon Format and MIME Type for Comma-Separated Values Files2026-07-14stable official standards document reviewed live on 2026-07-14; no local archive or claim beyond the cited syntax boundary is madeSupports quoted-field, escaped-quote, record-width, and optional-final-line-ending behavior.Does not define domain calculations.
RFC EditorDate and Time on the Internet: Timestamps2026-07-14stable official standards document reviewed live on 2026-07-14; no local archive or claim beyond the cited timestamp boundary is madeSupports explicit Internet timestamp syntax and ordering context.Does not define overlap, risk, or advice.

Dataset ID csr-crypto-signal-concurrent-exposure-analyzer-2026-07-14. Source commit b00a5584e4eadd5b308b10b5db182375eda1f0b0. The immutable source location is recorded in the machine-readable manifest without adding an unreviewed public content link.

Repair reference

Stable issue codes keep invalid inputs explicit

Errors suppress every metric because continuing would require a guess about CSV structure, identity, time, risk, or basis. Warnings and notices preserve valid arithmetic while keeping ignored columns, multiple bases, and overlap state visible. Issue order follows the frozen ledger rather than incidental browser traversal.

Open the 37-code reference
CodeSeverityMeaning
EMPTY_INPUTnoticeNo nonblank input is available for analysis.
FILE_READ_FAILEDerrorThe selected local file could not be read completely.
UTF8_INVALIDerrorInput bytes are not strict UTF-8 and cannot be decoded without replacement.
FILE_TOO_LARGEerrorInput exceeds maximumBytes before decoding or parsing.
CSV_MALFORMEDerrorCSV quoting, delimiter placement, or logical-record structure cannot be parsed without guessing.
TOO_MANY_ROWSerrorInput exceeds maximumLogicalRecords or maximumNonblankDataRows.
TOO_MANY_COLUMNSerrorThe header exceeds maximumColumns.
CELL_TOO_LONGerrorA decoded field exceeds maximumCellCodePoints.
ISSUE_LIMIT_REACHEDerrorThe deterministic issue cap was reached; validation stopped and metrics remain suppressed.
HEADER_EMPTYerrorA header field is empty.
HEADER_INVALIDerrorA header does not match the exact lowercase ASCII snake-case grammar.
HEADER_DUPLICATEerrorAn exact header name appears more than once.
REQUIRED_COLUMN_MISSINGerrorOne or more of the five required columns is absent.
UNKNOWN_COLUMN_IGNOREDnoticeA bounded extra column was parsed for structural limits but excluded from calculations and export.
ROW_WIDTH_MISMATCHerrorA data record does not contain exactly the header field count.
NO_DATA_ROWSerrorThe parsed CSV contains a header but no nonblank data row.
BLANK_ROWS_IGNOREDnoticeOne or more fully empty logical data records were ignored.
SIGNAL_ID_EMPTYerrorsignal_id is empty.
SIGNAL_ID_INVALIDerrorsignal_id violates the ASCII grammar or 80-code-point limit.
SIGNAL_ID_DUPLICATEerrorsignal_id duplicates another row after ASCII lowercase folding.
OPENED_AT_EMPTYerroropened_at_utc is empty.
OPENED_AT_INVALIDerroropened_at_utc violates the strict validated RFC3339 UTC Z profile.
CLOSED_AT_EMPTYerrorclosed_at_utc is empty.
CLOSED_AT_INVALIDerrorclosed_at_utc violates the strict validated RFC3339 UTC Z profile.
INTERVAL_NOT_POSITIVEerrorclosed_at_utc is equal to or earlier than opened_at_utc.
PLANNED_RISK_EMPTYerrorplanned_risk_pct is empty.
PLANNED_RISK_INVALIDerrorplanned_risk_pct is not an unsigned plain base-10 decimal in the accepted grammar.
PLANNED_RISK_PRECISIONerrorplanned_risk_pct has more than six fractional digits.
PLANNED_RISK_RANGEerrorplanned_risk_pct is not in the interval (0, 100].
RISK_BASIS_ID_EMPTYerrorrisk_basis_id is empty.
RISK_BASIS_ID_INVALIDerrorrisk_basis_id violates the ASCII grammar or 80-code-point limit.
RISK_BASIS_CASE_COLLISIONwarningTwo exact risk basis IDs differ only by ASCII letter case. They remain separate and are never summed.
HALF_OPEN_BOUNDARY_APPLIEDnoticeAt least one same-basis close and open share a timestamp; close-before-open half-open handling prevented boundary-only overlap.
NO_OVERLAP_PAIRSnoticeNo same-basis unordered row pair overlaps under the half-open rule.
CONCURRENT_ROWS_PRESENTnoticeAt least one basis has a positive-duration segment with two or more rows open.
MAX_COUNT_AND_RISK_PEAK_DIVERGEnoticeThe maximum row-count segment and maximum planned-risk segment differ; both metrics remain separately labelled.
PEAK_PLANNED_RISK_OVER_100warningA same-basis active sum exceeds 100 percent. The value remains descriptive user-supplied arithmetic, not actual loss, leverage, or advice.

FAQ

Questions about concurrent exposure arithmetic

Does concurrent planned risk equal my account risk?

No. The analyzer adds user-supplied planned-risk percentages only when rows share the exact same risk_basis_id and overlap in time. It does not verify the denominator, fills, stop execution, leverage, fees, slippage, liquidity, correlation, or loss.

Why does a close at the next signal's open not count as overlap?

Intervals are half-open: [open, close). The closing row is inactive at its close timestamp, and same-time closes are processed before opens. Boundary contact therefore has zero overlapping duration.

Why can maximum signal count and peak planned risk differ?

Three small planned-risk rows can overlap while a later pair has a larger sum. The analyzer reports the maximum count independently and attaches the peak window and IDs to the greatest planned-risk sum.

Does an overlap pair prove correlation?

No. It proves only that two supplied intervals under one exact basis label were open during a positive-duration common window. It does not examine assets, direction, strategy, market regime, returns, or statistical dependence.

Why are different risk basis IDs never added together?

A percentage is meaningful only relative to its stated denominator. The tool cannot know whether two basis IDs describe the same account, equity snapshot, subaccount, or method, so exact different labels remain separate.

Does 62.5 percent concurrent-span share mean 62.5 percent of account time was risky?

No. It means that, within one supplied basis, segments with at least two rows open total five hours inside the eight-hour span from earliest open to latest close. It is historical row-timing arithmetic, not a risk judgment.

Can the analyzer calculate position size or tell me what to do?

No. Position size needs account, stop, instrument, contract, fee, slippage, leverage, liquidity, and personal constraints that this tool neither requests nor calculates. The output is not advice.

Does the analyzer upload my CSV?

No. The analyzer contract permits zero analyzer network requests, uploads, cookies, or browser-storage writes. Parsing and integer arithmetic run in current browser memory. Only explicit Copy summary and Download JSON actions can persist the disclosed derived values or shown identifiers outside that memory.

Corrections

Corrections cannot buy a conclusion

Method or route corrections can be submitted through Submit a Group. Paid production, sponsorship, profile work, or visibility services cannot buy a favorable conclusion, a verified label, a ranking position, or removal of a missing-proof note.