Cable 3G2.5 or 3x2,5: two notations for a single cross-section
An electrician orders “3G2.5”. A colleague writes “3x2,5”. The design office notes “2,5 mm²”. All three name the same cable, and all three coexist in a distributor's catalogue, because they come from different suppliers' imports piled up over a decade. We ran all three through our engine's electrical pack. Only one produces a cross-section annotation — and it is not the one a buyer types.
What the pack reads on a cable, and what it does not
The electrical pack recognises the family from the word in the label — “cable”, “câble”, “conducteur” and their German and Italian equivalents, a distributor's catalogue usually aggregating European imports. It recognises the harmonised conductor designation, CABLE_h05vv-f for a flexible one, CABLE_h07v-u for a rigid one. It recognises the industrial designation, CABLE_r2v. And it recognises the cross-section — but only when the millimetre is written out.
That is the whole subject. “3G2.5” and “3x2,5” are the ordering notations: a conductor count, a separator, a cross-section. Neither carries the unit, because an electrician does not say it out loud. The cross-section rule, meanwhile, requires a literal “mm”. So neither ordering notation produces a cross-section annotation, and the quote that writes “2,5 mm²” is the only one of the three that does.
The measurement
In-house measurement. The labels below were run through the annotation cascade of the electricite pack on 20 October 2026, against the engine at commit d25011d. Each label was run twice: through the Python cascade and through the Rust core that serves indexing and search in production. Both return the same set on all seven labels — an equivalence that is not assumed here, it is re-read on every pass, because only the second path runs at a merchant's.
| Product label | Annotations returned |
|---|---|
| Cable rigide R2V 2,5 mm2 couronne 100m | CABLE_SECT_2,5 · CABLE_r2v · FAM_CABLE · SECTION_2,5 |
| Cable rigide R2V 3G2.5 couronne 100m | CABLE_r2v · FAM_CABLE |
| Cable rigide R2V 3x2,5 couronne 100m | CABLE_r2v · FAM_CABLE |
| Cable souple H05VV-F 3G1.5 blanc | CABLE_h05vv-f · FAM_CABLE |
| Cable souple H05Z1-K 3G1.5 | FAM_CABLE |
| Goulotte PVC 40 mm | SECTION_40 |
The first row carries the cross-section, the next two do not. The two ordering notations return exactly the same set of annotations — and it is an agreement from below: they look alike because neither was read, not because the engine worked out that they say the same thing.
What it does to ranking
Same protocol, same day: four cables indexed, one per notation, and a buyer's queries. The scores are the ones the engine returns; they do not depend on the process's iteration order.
A Cable rigide R2V 3G2.5 couronne 100m
B Cable rigide R2V 3x2,5 couronne 100m
C Cable rigide R2V 2,5 mm2 couronne 100m
D Cable souple H05VV-F 3G1.5 blanc
query “cable 3g2.5” -> A 22.0 B 12.0 C 12.0 D 12.0
query “cable 3x2,5” -> B 22.0 A 12.0 C 12.0 D 12.0
query “cable 2,5 mm2” -> C 38.0 A 12.0 B 12.0 D 12.0
query “cable 3G2,5” -> A 19.6 B 19.6 C 12.0 D 12.0
All four products come back on all four queries: FAM_CABLE is enough to make every one of them a candidate. What separates them is the literal term. “3G2.5” puts A first and leaves B tied with a cable of a different cross-section; “3x2,5” does the opposite. A buyer who types either notation gets the right cable first — and the other spelling of that same cable at the same rank as an unrelated product.
The fourth row is the instructive one. “cable 3G2,5” — the ordering notation with the quote's comma — ties A and B exactly, 19.6 each. No rule brought them together: fault tolerance did. That query is one substitution away from “3g2.5” and from “3x2,5” alike, and the engine says so itself in its result explanation — terme '3g2.5' (depuis '3g2,5', x0.60) on one side, terme '3x2,5' (depuis '3g2,5', x0.60) on the other. The tie is an accident of edit distance, and it only happens for a query sitting one character from both. It is not equivalence: “cable 3g2.5” and “cable 3x2,5” do not meet.
Three limits we accept
For the engine, the cross-section only exists if the unit is written. No wider rule fixes that without deciding what “3G2.5” means, and the decision is not readable from the text: an electrician reads “3G2.5” as “3 conductors of 2.5”, and “5G6” as “5 conductors of 6”. A rule taking the number after the G for a cross-section would be right on those two by convention, not by reading. The pack does not carry it, and saying so is more useful than adding it and hoping.
A decimal cross-section can produce a second annotation. On a short label, “Cable R2V 2,5 mm2” returns SECTION_2,5 and SECTION_5: the comma is a non-word character, it opens a boundary, and the pattern matches a second time on “5 mm2”. The spurious value is plausible — 5 mm² is a common cross-section — so it does not stand out. It makes the product show up in a facet where it has no business; it costs no recall.
Two digits followed by “mm” are enough. “Goulotte PVC 40 mm” — a cable trunking — returns SECTION_40, and trunking has no conductor cross-section. The pattern does not bound its context. The two-digit ceiling rules out an enclosure's 500 mm by accident, not by intent.
To which one plain absence is added: the halogen-free series carries a digit in the middle of its designation, and the harmonised-designation pattern does not accept it. “Cable souple H05Z1-K 3G1.5” returns the family and nothing else. The spellings that actually exist in that series have not been surveyed, so the rule was not widened on a guess.
What to do about it
The fix does not require waiting for an engine release. It requires the cross-section to appear once, in an indexed field — description, attribute, whichever. Measured the same day, on the same commit, with the same label twice and the cross-section carried in the description of the second one:
A Cable rigide R2V 3G2.5 couronne 100m
A2 Cable rigide R2V 3G2.5 couronne 100m
description: “Section 2,5 mm2, 3 conducteurs”
query “cable 2,5 mm2” -> A2 30.0 A 12.0
query “cable 3g2.5” -> A 22.0 A2 22.0
A2 is found by both notations, level with A on the ordering one and well ahead of it on the quote's. The cross-section is then read as an annotation, not merely as text: that is what makes it filterable as a facet, and not only searchable.
If your electrical catalogue is already structured by rating, curve, sensitivity and ingress protection, the pack reads them with no configuration — that is the rest of what our Electrical & installation page covers, with the families and attributes it reads. If it carries the cross-section only in ordering notation, one indexed field makes it readable from the first import.