S-1XX — Active Status Indicators
Draft Portrayal Guide — Edition 0.1.0
DRAFT FOR DISCUSSION — 2026-08-07. No product code allocated; S-1XX is a placeholder. Drafted from ASI-portrayal-table.md; on any conflict, the design record prevails.
1 General
1.1 This guide specifies the portrayal of Active Status Indicator (ASI) features on ECDIS, Inland ECDIS and PPU. It describes what the mariner sees. How a producer populates the values that drive it is the province of the Encoding Guide and is not repeated here.
1.2 Portrayal is driven by two inputs only: the attribute operationalStatus as received, and the reading system's own trust determination (clause 6). No portrayal rule shall depend on categoryOfAsset except where this guide states so explicitly (chevron applicability, clause 5; exception-only categories, clause 7; fill precedence, clause 8).
1.3 Principles. The portrayal states conditions; it never issues an instruction. It shall not impede the master's authority over the vessel (SOLAS V/34-1). Symbols are as few as possible (SOLAS V/15.3, V/15.6). The absence of trusted data is portrayed as exactly that — absence of data, never a state. Better no data than wrong data.
2 The symbol set
2.1 The complete vocabulary is three symbols. No conforming portrayal catalogue shall introduce a fourth (auditable — R36c).
| Symbol | File | Carries |
|---|---|---|
| Circle | ASI_CIRC01 | the asset's state, by fill colour |
| Chevron | ASI_CHEV01 | direction of a movement in progress, by presence and rotation |
| Flag | ASI_FLAG01 | a signal-book operation in progress, by flag identity |
2.2 All three carry the information-class outline (magenta family; token to be confirmed against the S-52 colour tables — S-101 colour 12 Magenta intended, not 10 Violet). On a Day palette a white fill has almost no contrast against the chart background: legibility rests on the outline, and outline weight shall not be reduced below the symbol definitions.
2.2.1 The concentric ring — hierarchy is portrayed, not merely encoded. An indicator that carries no AssetAggregation reference to a parent shall be drawn with a second, concentric magenta ring outside the circle. An indicator that carries one shall not.
| Drawn | Means |
|---|---|
| circle with ring | a collection head or a standalone asset — this symbol is the whole answer for that asset |
| circle without ring | a component — the mariner should look up for the bigger picture |
2.2.2 The ring is structural, not stateful: it is always the magenta of 2.2 and never takes a state colour, so the fill of clause 3.1 remains a pure function of operationalStatus. It is drawn beneath the chevron, which paints over it where the two cross.
2.2.3 The ring does not introduce a fourth symbol under 2.1: it is a modifier of ASI_CIRC01, in the same sense that the fill colour is. (Design note: a distinct shape was considered and rejected — see 2.2.4.)
2.2.4 Rationale for a ring rather than a distinct shape. The obvious encoding is a second outline shape for collection heads. It is not available. S-101's topmarkDaymarkShape enumeration alone assigns meaning to 33 shapes — including rhombus, square, rectangle, triangle, trapezium, cross, X and T — and beyond it the magenta light star of S-4 and the DIAMOND1 safety-contour fill claim two more. The shapes that remain unclaimed (hexagon, octagon, ellipse) are unclaimed because at chart-symbol size they are not reliably distinguishable from a circle, which is precisely the distinction they would be asked to carry. A concentric ring reads at symbol size, is claimed nowhere in S-101 or S-4, and costs no shape.
2.3 Portrayal on the feature's own geometry. Where an indicator's geometry is a curve, the state is portrayed by colouring that curve rather than by placing a circle on it (clause 3.4). This does not introduce a fourth symbol and does not weaken 2.1: no new graphic is defined, the fill function of clause 3.1 is unchanged, and what is coloured is geometry the product already carries. The line takes the same magenta casing as the symbols carry an outline, for the same reason — it marks the ink as an information overlay rather than as charted topography.
A symbol placed on a fairway can only say "something applies somewhere along here". The mariner's question is which water, and only the geometry can answer it.
3 The fill — one function, no exceptions
3.1 The fill of the circle is a pure function of operationalStatus. The mariner learns the colours once, for every asset:
| Fill | operationalStatus values | Reading |
|---|---|---|
| white | clear (1) · operational (10) · vesselManagement (13) · open (20) · flowing (24) | available · open · in service |
| black | taken (2) · atCapacity (4) · idle (11) · notInOperation (12) · closed (21) · notFlowing (25) | closed · occupied · not operating — a fact about the asset, not a prohibition |
| orange | reserved (3) · restricted (5) · partsOverWater (30) | conditional — use or passage is subject to a condition |
| blue | waterManagement (14) · moving (22) · levelling (23) | in transition — the displayed state will not hold |
| red | obstructed (90) | nothing may pass — the only prohibitive fill |
| grey | (none — not a status) | no trusted data (clause 6) |
3.2 Green and yellow are reserved: permitted by the colour enumeration, assigned no meaning, and shall not be assigned by any producer or national extension. (Design note: every prohibition in this product is asserted by a named human operator, and the product assigns no colour that could be interpreted as granting permission to proceed.)
3.3 Closed and taken are conditions of the asset. Whether they block a particular vessel depends on that vessel and on charted clearances, which the reading system and master resolve — a closed span is passable to any vessel of sufficiently low air draught. Only the red fill is prohibitive.
3.4 The fill on a curve. For an indicator portrayed on its own geometry (2.3), the fill colour of clause 3.1 is applied as the line colour over the affected stretch, with a magenta casing beneath it. The table of 3.1 is used unchanged: no colour means anything different on a line than it means in a circle. Grey (clause 6) colours the line in the same way.
3.5 Where a curve indicator's state is one that portrays nothing (clause 7.3), no line is drawn and no substitute symbol is placed.
3.6 An indicator portrayed on its own geometry takes no ring (2.2.1): there is no circle to modify, and no substitute marking shall be invented for it. Hierarchy among curve indicators is therefore not currently portrayed — recorded as a known limit rather than resolved.
4 The flag
4.1 operationalSubStatus values 1 (diving operations) and 2 (transshipment of dangerous cargo) portray flag Alpha and flag Bravo respectively, beside the circle, in signal-book colours. Flag colours are identity, not state; state fills are never applied to flags.
4.2 Flags are essential information: portrayed at every service level, on any fill including grey, and exempt from decluttering (clause 9).
4.2.1 The flag is drawn at three times the linear scale of the circle. This is deliberate and shall not be normalised: the flag is the only element of the overlay that must be noticed before it is looked for, and a flag proportioned to the circle is only found once the circle has been found. The circle and chevron are unaffected — the symbol's internal proportions are broken on purpose, in favour of the element that carries the warning.
4.3 Values 3, 4, 5 and 6 draw nothing. depthRestricted, speedRestricted and surveyOrDredgingOperations qualify a restricted status already portrayed as an orange fill; lockSession states which session is in progress. All four are reported on selection (clause 10) and add no symbol.
4.3.1 surveyOrDredgingOperations names an operation in the water rather than a dimension or a rule of behaviour, which makes it the odd one of the three restriction kinds — and it still draws nothing, because the orange fill has already said conditional and a second symbol would spend the vocabulary on something the fill has said. What it adds on selection is a different question from the other two: not how deep or how fast, but that a craft is working here — possibly restricted in its ability to manoeuvre, possibly with gear well clear of its own hull.
A session identifier is text, and a queue is not a symbol. The lock keeps its state fill; which lockage is running appears when the mariner asks for it.
The asymmetry within one attribute is deliberate. Values 1 and 2 warn of an operation in progress now, beside the vessel's track, and must reach the mariner unprompted. Values 3 and 4 name the kind of a restriction the mariner can already see, and belong to the second tier of the information ladder. Adding a symbol for them would spend the symbol budget on something the fill has already said.
4.4 operationalSubStatus is repeatable: more than one value may be asserted on a feature, and each portrays independently. A fairway section that is both depth and speed restricted draws one orange fill and reports both kinds on selection.
4.5 The flag is placed in the direction of impact. On an indicator that does not move, the flag shall be drawn on the bearing given by orientationValue, measured from the centre of the circle. Where no orientation is declared the flag is placed to the upper right by default.
4.5.2 The flag is centred on that bearing and offset clear of the circle by its own size, so that it lies wholly outside the symbol at every bearing. At the scale of 4.2.1 an edge-anchored flag would cross the circle for any westward direction of impact, obscuring the fill it sits beside.
4.5.3 The flag flies ALONG the bearing. It shall be drawn tilted to orientationValue, its long axis on the direction of impact, hoist at the inner end and fly pointing outward — set out from the symbol as a flag flies from a staff.
A flag lying flat beside the circle marks a direction; a flag flying along it points. The mariner reads which way to keep clear from the shape of the symbol, without having to compare the flag's position against the circle to infer a bearing.
4.5.4 It shall never be drawn upside down. Where tilting would invert it, the flag is mirrored about its own long axis: the fly still points outward, and the flag stays legible. Alpha is white hoist then blue fly, and inverted it reads as a different flag — which is the reason this is a requirement and not a nicety. This is the ordinary rule for rotated chart labels, applied to a flag.
4.5.5 Where no orientationValue is declared, the flag is placed to the upper right and drawn level. No orientation, no tilt — a tilt would assert a direction the product does not carry.
The direction of impact is where the operation reaches — the water a diver is under, the side a transfer is worked from. Placing the flag there makes the symbol say which way to keep clear, which a fixed offset cannot. For a berth on a quay it puts the flag over the water rather than over the land, and a mariner reads the side to avoid without reading anything.
4.5.1 This is why orientationValue is meaningful on a berth, an anchor berth or an anchorage, none of which flow and none of which draw a chevron. The attribute means the direction that matters for that indicator: for a basin or a sluice, where the water goes; for a berth, where the operation reaches. One attribute, one question — which way does this indicator point? — answered by the kind of indicator it is.
5 The chevron
5.1 A chevron is drawn only while something is physically moving, and it points where that movement is going. It is always white. When nothing is moving, no chevron is drawn.
5.2 Applicability and direction:
| Category | Chevron drawn while | Points |
|---|---|---|
| lockBasin | levelling or flowing | toward the level being made · in the direction of flow |
| sluice | flowing | in the direction of flow |
| mobileTerminalInfrastructure | under way — derived from position, clause 5.5, whatever the fill | along the course made good |
5.2.2 A lock basin draws the chevron in both of its moving states, and the chevron means the same thing in each: water is moving this way. Only the fill differs.
| Basin is | Fill | Reading |
|---|---|---|
operational | white, no chevron | nothing is moving |
flowing (24) | white + chevron | sluicing — the lock is passing water for water management |
levelling (23) | blue + chevron | equalising for a lockage — a transition a vessel may be inside |
Water moving through a structure portrays identically wherever it happens — a sluice and a lock chamber doing the same job wear the same colour. That is clause 3.1's promise: the mariner learns the colours once, for every asset. Blue is not spent on "the lock is in water-management mode", which is a fact about the operator's intent; it is kept for the case where the mariner may be sitting inside the transition, which is what the blue scope was defined for.
5.2.3 notFlowing (25) is deliberately not permitted on a basin: a basin passing no water is operational, and two ways to say one thing would be worse than none.
5.2.1 A moving barrier draws no chevron. A lock gate reports moving, which portrays blue — in transition — and nothing more. No direction is declared for it and none is portrayed.
The direction of a gate leaf cannot be stated in the horizontal plane for most gate types. A rolling gate translates along the lock axis and could be described; a lift gate moves vertically, and a mitre gate swings two leaves apart in opposing arcs. Neither has a direction in two dimensions, so a chevron would either be absent for most of the world's locks or invented for them.
The chevron's subject is not mechanism. Where it is drawn it shows a direction that means something to a mariner: which way the water is going (basin, sluice) or where an object is travelling (mobile infrastructure). Which way a gate leaf swings is a fact about the machinery, and the mariner's question — can I pass yet? — is answered by the fill alone.
No other category draws a chevron. A sluice draws none while not flowing or obstructed; its gate transit carries no blue and no chevron because a vessel positioned to observe it cannot benefit from any indicator (design note: a state whose only audience can no longer benefit from it is not portrayed). The sluice fill reports flow, not aperture — a gate standing open with no flow portrays black.
5.3 One chevron. There is no count and no magnitude class.
5.4 The rotation is supplied to the portrayal engine as a resolved bearing. Its derivation (declared orientation and sense, or the position-derived course of clause 5.5) is invisible at this level by design.
5.5 Movement of mobile terminal infrastructure shall be derived from reported position. No movement state or bearing is transmitted; the reading system determines both from consecutive positions. Because this is derived portrayal, every value below is normative: reading systems that derive differently would draw different chevrons from identical data.
5.5.1 The product declares one movement buffer in its dataset header, applying to every mobile terminal infrastructure feature it contains. The default is 5 m. The declared buffer shall exceed the positional uncertainty of the least precise mobile source in the product (clause S1/S5 of the Service Level Description); a buffer inside the noise of its own positioning system would portray a stationary object as moving.
It is a product-level reading parameter, not a property of any asset, which is why it is declared in the header and does not appear in the Feature Catalogue.
5.5.2 The reading system shall maintain, per feature, a reference position: the position from which displacement is measured. It is set from the first reported position and reset only when movement ends (5.5.4). It shall not be advanced to each newly reported position while the feature is assessed as still.
This is not an implementation detail. A reference that follows every fix lets positioning scatter walk the anchor, so two successive noise samples on opposite sides of the true position can exceed the buffer between them and assert movement that never occurred — a stationary object portrayed as moving, which is the failure this clause exists to prevent. Anchoring the reference also keeps genuine slow movement detectable: an object creeping below the buffer per update still accumulates displacement against a fixed point, and is correctly reported once it has actually moved.
5.5.3 Movement begins on the first reported position lying outside the movement buffer of the reference position. The chevron is drawn from that update onward.
5.5.4 Movement ends after five consecutive reported positions lying inside the movement buffer of the reference position. The chevron is then suppressed and the reference position is reset to the latest reported position.
5.5.5 The asymmetry in 5.5.3 and 5.5.4 is deliberate: movement is portrayed on first evidence and withdrawn only once stillness is established. A symmetric threshold would produce a symbol alternating at the buffer edge, which reads as instrument malfunction rather than as information.
5.5.6 The chevron bearing shall be computed from the last position outside the buffer to the current position, not from the immediately preceding report. A bearing taken across a single buffer-width step is dominated by positioning noise.
5.5.7 With no previous position — first fix after startup — no movement is asserted and no chevron is drawn. A greyed feature (clause 6) draws no chevron irrespective of this clause.
5.5.9 Position is suspended while the feature reports idle, and only then. The reading system shall hold the drawn position at the last position received before idle was reported, shall not apply subsequent position reports, and shall not derive movement, for as long as idle persists. On transition out of idle the reference position (5.5.2) shall be reset from the first position received, so that the resumption is not assessed as travel.
An idle machine's position is not information, and assessing it invites the failure this clause set exists to prevent: a parked asset whose positioning scatter exceeds the buffer would otherwise be portrayed as permanently moving. Suspension removes the assessment rather than tuning its threshold.
5.5.9.1 Suspension shall not be applied to partsOverWater. A feature overhanging navigable water shall continue to be assessed for movement even where its positioning scatter exceeds the movement buffer, and a chevron so raised shall be drawn.
Suspension is a comfort measure: it removes a symbol that carries no information. Where the asset overhangs the water the two possible errors are not equivalent. Portraying a stationary crane as moving costs the mariner a needless glance; portraying a moving crane as stationary costs them the warning. The states are therefore treated differently because their consequences differ — idle overhangs nothing, so a false "stationary" is harmless there and suspension is safe to apply.
5.5.11 Where movement cannot be reliably determined, movement shall be portrayed. This is the governing rule when 5.5.1 cannot be satisfied — that is, when the declared movement buffer cannot be set above the positioning uncertainty of the source.
Stated as a principle so it is not re-decided case by case: for a physical object near a vessel's track, the tolerable error is the one that over-warns.
5.5.11.1 This does not licence a poorly declared buffer. A buffer far below the positioning uncertainty produces chevrons continuously on assets that never move, and an indicator that is always on is one a mariner learns to disregard — which removes the warning by a slower route than suppressing it would. 5.5.1 remains the requirement; 5.5.11 governs only what to do when it cannot be met.
5.5.10 A suspended position is not "no trusted data". The feature continues to portray its operationalStatus normally — black for idle — at the held position. Clause 6 is not engaged: the feed is sound, and the position is being held deliberately because it is known not to change. Grey would state something untrue.
5.5.8 The declared updateInterval for mobile terminal infrastructure shall be short enough that five intervals is an acceptable lag before the chevron is withdrawn. (10 s is the indicative figure; at 60 s the rule of 5.5.4 would leave a stationary object portrayed as moving for five minutes.)
6 No trusted data — grey
6.1 The reading system shall portray an indicator's circle grey when any of the following holds:
- (a) the measured arrival rate falls materially outside the declared
updateInterval; - (b) the received
operationalStatusis not a value this catalogue defines, or not a value permitted for the feature'scategoryOfAsset; - (c) the indicator's state is left unknown by its parent (clause 8.1.4) — note that a parent declared
obstructedproduces red, not grey (8.1.1); - (d) (MTI only) no trusted position exists (clause 8.2).
6.1.1 A DECLARED value does not decay, and 6.1(a) does not apply to it. Where a value carries assertedBy — a named person asserted it — it shall continue to be portrayed in its own colour for as long as it stands, however long that is, and shall not grey because reports stopped arriving.
Clause 6.1(a) is about observations. A sensor that stops reporting has stopped telling us anything, and grey says so. A declaration is not an observation: a person said nothing may pass this lock, and silence afterwards is not that person changing their mind. An obstructed that faded to "unknown" because a network link failed would have removed a prohibition by accident — the exact mirror of the rule that stops a broken sensor imposing one.
6.1.2 In this edition, attribution is required for obstructed (R37) and for the Alpha and Bravo sub-statuses, and it is required for nothing else. So 6.1.1 covers exactly the prohibitive fill and the two flags, which is the intended reach: the elements that exist to stop someone being killed are the elements that do not quietly go away. A value that no person stood behind has nothing to keep standing.
6.1.3 A declared value ends in one way only: a person changes or withdraws it (R37, and the override release of the service specification). No timeout, no arrival-rate rule and no loss of connection ends it.
6.2a Loss of the service is not per-indicator greying. Where the reading system loses the service altogether, it shall show that on the service-level connection indicator (6.4), and shall not treat it as a fact about each indicator separately:
| on total loss of service | portrayal |
|---|---|
| the service-level indicator | grey — the overlay is not live |
observed values (no assertedBy) | grey — their observations genuinely have stopped, 6.1(a) |
declared values (assertedBy present) | unchanged — nobody withdrew them (6.1.1) |
These are two different facts and belong in two different places. "This indicator's reports have stopped" is about an indicator; "the overlay is not live" is about the overlay, and painting it onto forty symbols tells the mariner something is wrong with forty assets when what is wrong is the connection. It also cannot be allowed to erase the declarations, which is what greying everything would do.
6.2b Where the loss is long enough that the overlay should no longer be shown at all, that is the overlay-off case of clause 9 and R1 — a decision about the whole overlay, taken once, with the chart beneath unaffected. It is not reached by greying symbols one at a time.
6.2 Grey portrayal is automatic in both directions: it engages when the condition arises and clears when it lapses, with no operator action. Only human-asserted states latch.
6.3 Rule 6.1(b) is a forward-compatibility guarantee: equipment reading a future edition's values portrays unknown, never a wrong state.
6.4 Grey applies only to state-affirming indicators. Exception-only categories (clause 7.1) have no grey condition — the absence of their symbol is unambiguous, and their integrity is carried by the service-level connection indicator, which is essential for them and shall be implemented as specified in the Product Specification, not as an optional element.
7 Exception-only categories
7.1 spanFixed is drawn only when obstructed — by its own report, or by inheriting its parent's declaration (8.1.7). No symbol is drawn in any other condition: absence means nothing to report. It is never grey (6.4).
7.2 mtiArea is never portrayed. It is a control feature; its effects appear on its components.
7.3 Silent when clear — fairwaySection. A fairway section is portrayed on its own geometry (2.3) and draws as follows:
operationalStatus | Portrayed |
|---|---|
| clear (1) | nothing |
| restricted (5) | the section's line, orange |
| obstructed (90) | the section's line, red |
| no trusted data | the section's line, grey (clause 6) |
Clear water is the normal condition of the whole navigable network. Drawing it would lay continuous ink along every charted fairway in the service and bury the two states that require an action by the mariner. The overlay speaks only where the water is not simply open.
7.4 Clause 7.3 is not an exception-only category in the sense of 7.1, and the difference is the reason grey survives here. A fixed span asserts nothing and so has nothing to lose; a fairway section does assert clear, and an assertion that stops arriving is a fact the mariner needs. Four conditions therefore remain distinguishable on the display: no line (clear), orange (restricted), red (obstructed), grey (not known). Silence is a portrayal of clear, and never of unknown.
7.5 A flag (clause 4) asserted on a fairway section is portrayed notwithstanding 7.3, without a circle. Essential information is not withheld because the water it applies to is otherwise clear.
8 Behaviour rules
8.1 Propagation (parent → component). A parent's state reaches its components in two different ways, and they portray differently:
| Parent | Components portray |
|---|---|
obstructed — lock, bridge or mtiArea | RED, for as long as the declaration stands (8.1.1) |
notInOperation — lock | grey (8.1.4) |
notInOperation, or reporting nothing — mtiArea | grey (8.1.4) |
notInOperation — bridge | nothing — spans keep their own states; a closed span may still be passed under |
8.1.1 An obstructed parent makes its components red. Where a lock, bridge or mtiArea carries obstructed, the reading system shall portray every component of it red, and shall continue to do so until the declaration is lifted.
A named human has just said that nothing may pass this complex. That is a statement about its gates and its spans as much as about the lock itself. Portraying the components grey — as earlier editions of this guide required — answered "we do not know" to a question that had just been answered, and it understated a prohibition as an absence of information. Red is what was meant.
8.1.2 This is a portrayal override, not a change of state. The component's own operationalStatus is untouched and is still reported unchanged on selection. The conditional domain of clause 3 therefore continues to hold in full: an mtiArea's components portray red without obstructed ever becoming a value their feed may assert, which it is not.
8.1.3 Attribution follows the declaration. A component portrayed red under 8.1.1 shall carry the parent's assertedBy on selection, together with an indication that the obstruction was declared on the parent and that this component is covered by it. R37 is preserved and not circumvented: no automation asserted this red — one human did, once — and a component's red shall never be presentable as an independent finding.
8.1.4 Grey remains correct where the parent's state genuinely leaves the component unknown: a lock notInOperation, an mtiArea notInOperation or silent. These say nothing about where a gate stands, so nothing is what the reading system must claim to know.
8.1.5 Red under 8.1.1 outranks the component's own fill and outranks grey: a component whose own feed has failed inside an obstructed complex is still covered by the declaration. It does not outrank a total loss of the service connection, however — where the reading system holds no trusted feed at all it cannot vouch for the declaration either, and everything greys (clause 6, R1).
8.1.6 No chevron is drawn on a component portrayed red under 8.1.1. Which way a gate leaf happens to be travelling is noise laid over a prohibition.
8.1.7 An exception-only component (clause 7.1) whose parent is obstructed is drawn, red. This closes a gap: a fixed span under a bridge or lock declared obstructed previously drew nothing at all, so the chart showed empty water where a passage had been shut.
8.2 MTI position. Three cases, and they do not portray alike:
| Condition | Portrayed |
|---|---|
| Live and inside its area | at the reported position, in its state fill |
| Never reported, or its MTI Area invalidated | at its product geometry — the declared parking position — grey |
| Left its area (a position was received, outside the area) | nothing is drawn — clause 8.4 |
The reading system may indicate that a live position lies outside its area; it shall not treat it as a fault.
8.4 An indicator with no honest position shall not be drawn. Where a mobile terminal infrastructure feature has reported a position outside its MTI Area, the reading system shall draw no symbol for it until a trusted position is received again. It shall not fall back to the product geometry.
The distinction is evidential, not cosmetic. The product geometry is used where it remains a plausible estimate: an asset that has never reported is almost certainly parked, and an asset whose area has been switched off has not been observed to go anywhere. An asset that has left its area is the one case where the product holds positive evidence that it is not there, so drawing it there would state something known to be false.
Absence is a portrayal state in this guide, used deliberately elsewhere — the chevron is suppressed when nothing moves (5.1), and an exception-only indicator draws nothing until something is wrong (clause 7). Applying it here is therefore uniform with the rest of the vocabulary rather than an exception to it.
8.4.1 The MTI Area shall encompass the full operating envelope of its components. An area drawn tighter than the assets actually work will cause them to disappear during normal operation. This is an encoding obligation and a commissioning check, not a portrayal parameter.
8.4.2 A vessel adrift from its moorings, or infrastructure genuinely gone astray, is the subject of a navigational warning (S-124) and not of this product. Silence here is the correct behaviour of a status product that has lost track of an asset, not a suppression of a hazard.
8.3 MTI fill precedence. partsOverWater (orange) takes precedence over every other fill, including moving (blue). Movement is never lost: the chevron is an independent channel, so infrastructure travelling with parts over the water draws orange with a chevron.
8.4 Red. Red is asserted and cleared by a named human operator only, never by automation. A failed feed degrades to grey (unknown), never to red (prohibited).
9 Display and decluttering
9.1 ASI is a switchable overlay. Within the overlay:
| Class | Members | Decluttering |
|---|---|---|
| Essential | obstructed (red), flags Alpha/Bravo | exempt — portrayed whenever the overlay is on, at any display scale |
| Standard | every other state | subject to scaleMinimum |
(Decided in this draft, flagged for review: essential-exempt-from-SCAMIN is the portrayal-side completion of R30. The alternative — essential also declutters — recreates the grey-cross tension resolved in the design record.)
9.2 Line and area placement: a curve indicator (fairway section) places its symbol by LineSymbolPlacement; a surface indicator (anchorage, mtiArea excepted) by AreaSymbolPlacement (S-100 Part 9). Placement modes are fixed by the Portrayal Catalogue, not producer-variable.
9.3 Interoperability: the overlay operates at S-98 Level 0 (overlay). Level 2 (type-level suppression and replacement) is not supported by any reading system today; when that support arrives, Level 2 operation can be considered, and the suppression sets defined in the Product Specification are written so as to preserve that option.
10 Interrogation (pick report)
10.1 Selection of any ASI symbol shall return: the feature name, category, current operationalStatus by label, every asserted operationalSubStatus by label — including the kinds that draw no symbol, and the identifier carried by any that has one — the named person behind any human-asserted state, the timestamp of the last accepted update, and — from the service metadata — where the authority publishes specifics (S-124, NAVTEX, operator URL, VHF). The product itself never carries the specific values.
11 Rule engine
11.1 (Decided in this draft, flagged for review.) The Portrayal Catalogue is expressed as XSLT rules per S-100 Part 9, not Lua per Part 9a. Grounds: every rule in this guide is a declarative lookup (fill = f(status), plus fixed precedence tables); XSLT processors are available on every mainstream client platform, whereas a Lua VM is an additional dependency — the same argument for minimising barriers to adoption as the licence and the GML encoding. No rule in this guide requires procedural logic; should a future edition require it, Part 9a remains available.
Annex A (symbol drawings): symbols/ASI_CIRC01.svg, ASI_CHEV01.svg, ASI_FLAG01.svg — S-100 Part 9 Appendix 9-B SVG profile. Annex B (state → fill table per category): generated from ASI-enumeration.md §3 — the same table that is issued as validation rules; portrayal and validation cannot diverge.
© 2026 W.D. de Pooter · Independent marine consultant and developer · fabian@maraton.consulting Licensed under Creative Commons Attribution 4.0 International. SPDX-License-Identifier: CC-BY-4.0