Insights

Many-to-Many Bridges Without an Owner Are How Margins Drift

Undocumented Power BI bridge tables look clever until allocations double-count. Name the owner, the grain, and the test before the margin meeting.

Someone needs products to map to many customers, or plants to share a cost pool, or aliases to resolve duplicate item numbers. A bridge table appears. The visual lights up. The ticket closes.

Nobody writes who owns the bridge, what grain it represents, or how to test it when margin looks rich.

Undocumented bridges look like modeling cleverness. They are how margins drift into the meeting.

Black-and-white construction crew above a dense conduit grid foundation

Bridges need owners the way measures do

Many-to-many is sometimes the honest shape of the business. Shared components. Multi-plant fulfillment. Customer hierarchies that do not star-schema cleanly. The failure mode is not the bridge itself. It is a bridge without a contract.

When allocations fan out, revenue or cost can double-count at the cut leadership actually uses. Grand totals may still look plausible. Mid-level margin lies. That pattern sits next to customer margin disappears in the rollup and bi-directional relationships that throw wrong margins—filter paths and bridge grains rewriting the number without an error message.

If the semantic model is the product, a bridge is a product feature. Features get an owner, a spec, and a test. Clever diagrams without those three are liabilities.

How undocumented bridges go wrong

Bridge rows duplicate because the source mapping was pasted twice. Totals inflate where the bridge participates.

Cardinality set to many-to-many with bi-directional filters “so the slicer works.” Context bleeds. Margins move. See the Both-direction failure mode in bi-directional relationships.

Allocation weights that do not sum to one. Finance assumes full distribution. The model silently drops remainder—or over-allocates.

No effective dating. Mappings change mid-month. History restates without a business announcement.

The author leaves. The bridge stays. Who can change a measure is answered for DAX and unanswered for the table that feeds it.

Role-playing confused with bridging. Ship-to and bill-to get mashed into one many-to-many “customer bridge” instead of clear roles. The diagram looks advanced. The grain is mush.

Sandbox bridges promoted with the report because demos needed a matrix. Production inherits experimental mappings. Certification never asked for the contract.

The costs of ownerless bridges

  1. Margins drift without a red tile. Double-counting through a bridge can lift contribution in a plant or customer cut that still looks believable. The room debates price. The model is multiplying.

  2. Reconciliations become a second close. Controllers rebuild the allocation in Excel to prove the dashboard. Adoption dies. Trust follows.

  3. Ops and finance stop sharing a page. Plant totals and customer margins refuse to tie. Both teams are “in Power BI.” Both are right to be suspicious.

  4. Certification papers over structure. A certified badge on a model with an unexplained bridge is endorsement of unknown grain. The badge survives the first miss. Belief does not.

  5. Fixes land in DAX while the bridge stays guilty. Teams thicken CALCULATE to compensate. Spaghetti grows. Root cause remains in the relationship view.

  6. Change requests become archaeology. “Add one mapping” requires reverse-engineering fan-out. People fork personal bridges. Five mappings later, nobody knows which is official.

  7. Refresh stays green while meaning drifts. Refresh failures shout. Bad bridge grain whispers through successful loads.

  8. Meetings become definition theater. Time goes to “what does margin mean” when the real question is “which bridge rows are in play for this cut.”

How to fix it: name owner, grain, and test

  1. Write the bridge contract before you ship. What entities does it connect? At what grain? One row means what? Weights sum to what? Effective dates? If you cannot answer, do not promote.

  2. Name a steward in the dataset description. Who updates mappings? Who approves fan-out risk? A SharePoint list without an owner is not governance.

  3. Default to single-direction filters. Treat bi-directional edges on bridges as exceptions with a design note—not a slicer convenience.

  4. Test margin at the grain leadership argues about. Customer, plant, product family, period. Compare to a known extract. Bridges hide in mid-level cuts.

  5. Assert weight integrity. Where allocations exist, test that weights sum to one (or to the documented rule) per group. Automate the check if you can. Fail loud.

  6. Version mappings. Keep history or effective dating when the business changes relationships mid-period. Silent restatement is a close lie.

  7. Prefer explicit allocation measures when possible. Sometimes a controlled measure is clearer than a permanent many-to-many edge. Choose the pattern you can explain in the room.

  8. Add bridge review to promotion. Before certification, a second person draws the filter path on a whiteboard. No drawing, no badge.

  9. Monitor row-count drift. Unexpected growth in the bridge table is a quality signal. Treat it like a refresh anomaly.

  10. Demote when the contract breaks. Missing steward, failed weight test, or repeated Excel overrides should remove endorsement until fixed.

What good looks like

A margin question lands. The steward opens the bridge contract, shows the grain, and walks a test cut that matches finance’s extract. Allocations are boring. Arguments return to the business.

Bridges still exist where the business is many-to-many. They stop being anonymous cleverness.

Keep a one-page register of bridges in close-critical models: name, owner, grain sentence, last test date, and whether bi-directional filters are allowed. Review it with model health before month-end. If a bridge is missing from the register, it does not belong in the executive app.

Start with the bridge behind last quarter’s margin fight

Find the table that connects the entities you argued about. Write the contract. Name the owner. Build three test cuts. Fix weights or cardinality until they tie.

Document the pattern. Apply it before the next bridge someone proposes in a sprint. Breadth without contracts multiplies drift.

If the fight was really a filter-direction problem, fix that explicitly and say so. Do not leave a “temporary” Both on the bridge because the matrix looked right once. Temporary edges become permanent debt.

Leaders should ask: “Who owns this bridge, what grain does it represent, and what test proves margin at the cut we argue?” If those answers are missing, you are one mapping change away from another meeting that does not trust the model.

Executive takeaway

Many-to-many bridges without an owner are how margins drift.

Undocumented bridges look like modeling skill until allocations double-count. Name the owner, the grain, and the test before the margin meeting. Then the semantic model can carry shared reality instead of shared suspicion.

Need a bridge and relationship risk pass on the models behind margin and plant reviews? Contact Alluvium. We will map ownerless bridges, fan-out risk, and the contracts that keep allocations from rewriting the close.

Next step

Book a Session

Need a clearer finance or executive reporting stack? Book a Session.

Book a Session