Fog
Why some numbers appear as 'hidden' and how to clear them.
Fog is not an error
When MarginEngine doesn't know something, it shows Fog instead of guessing. Fog means "we can't see this yet" — not "something is broken."
This is intentional. Other tools would show $0 or skip the number entirely. MarginEngine shows Fog because:
- A wrong number is worse than an honest unknown
- You should know exactly what's missing
- The path to clearing Fog is always shown
Reading Fog
Every Fog line follows a strict formula:
[what's hidden] — [what clears it] → [what you unlock]
Examples:
- "Gross margin hidden — set Product Costs for your top SKUs → see real margin"
- "Ad spend hidden — connect Meta → see Reported vs Real"
- "Partial Product Costs — complete top revenue SKUs → sharpen margin accuracy"
Common Fog sources
| Fog | What's missing | How to clear it |
|---|---|---|
| Gross margin Fog | Product Costs not set | Set up Product Costs |
| Ad spend Fog | No ad platform connected | Connect Meta Ads |
| Shipping cost Fog | Shipping zones not configured | Set shipping costs in Settings |
| Partial Product Costs | Some variants have costs, others don't | Set costs for remaining top-revenue variants |
Fog in receipts
When a number is affected by Fog, the receipt line shows exactly what's unknown:
- "Receipts: 142 orders, 30 days, net revenue clear, gross margin fog (14 variants without Product Costs)"
This means: the revenue number is solid, but margin calculations are incomplete because 14 product variants don't have costs yet.
Fog never becomes zero
MarginEngine will never silently fill in a zero for something it doesn't know. If Product Costs are missing, gross margin shows as Fog — not as 100%. If ad spend is missing, it's unknown — not free.
This is a core design principle. Unknown stays unknown until you provide the data.