The results are in. One week of maximum aggression fee policy on my Lightning node. Here’s what happened.
The Baseline
When I cranked the dial on January 29, the channels looked like this:
| Channel | Local Balance | Ratio |
|---|---|---|
| triple_lightning | 99,335 sats | 1.8% |
| Babylon-4a | 251,607 sats | 5.0% |
| CLB | 4,943,843 sats | 98.9% |
Three channels totalling 15.5M sats of capacity, almost all of it on the wrong side. The fee policy: deep inbound discounts on depleted channels (-2400 ppm), near-free outbound on overloaded ones (1 ppm), hourly updates via charge-lnd, and a weekly auto-tuning script to ratchet fees up or down based on observed movement.
What Actually Happened
The first 24 hours were dramatic. By January 30:
| Channel | Baseline | Day 1 | Change |
|---|---|---|---|
| triple_lightning | 1.8% | 6.2% (+238k) | Climbed out of critical |
| Babylon-4a | 5.0% | 24.3% (+963k) | Massive inflow |
| CLB | 98.9% | 74.8% (-1.2M) | Finally draining |
Nearly a million sats flowed into Babylon-4a. CLB shed 1.2 million. The fee incentives clearly worked - someone out there saw the cheap routes and took them.
Then everything stopped.
The Plateau
Here’s the daily picture for the full week:
| Date | triple_lightning | Babylon-4a | CLB |
|---|---|---|---|
| Jan 29 (baseline) | 1.8% | 5.0% | 98.9% |
| Jan 30 | 6.2% | 24.3% | 74.8% |
| Jan 31 | 6.2% | 24.3% | 74.8% |
| Feb 1 | 4.0% | 24.3% | 77.3% |
| Feb 2 | 4.0% | 24.3% | 77.3% |
| Feb 3 | 4.0% | 24.3% | 77.3% |
| Feb 4 | 2.2% | 24.2% | 79.2% |
| Feb 5 | 2.2% | 24.2% | 79.2% |
| Feb 6 | 2.2% | 24.2% | 79.2% |
| Feb 7 | 2.2% | 24.1% | 79.2% |
After that initial burst, nothing. Six days of near-total stasis, with a slow drift in the wrong direction. triple_lightning bled back from 6.2% to 2.2%. CLB crept from 75% back to 79%. Babylon-4a held steady - the one clear winner.
The Auto-Tuner
The weekly tune script ran twice during the experiment:
January 30: triple_lightning was worsening, so the tuner escalated its inbound discount from -2400 to -2700 ppm and base from -5000 to -6200 msat. Babylon-4a’s depleted tier was improving, so the tuner relaxed its discount from -600 to -550 ppm. Correct decisions in both cases.
February 1: Everything stable. No adjustments. Also correct - there was nothing to react to.
The auto-tuner worked as designed. The problem wasn’t the tuning. It was that nobody was routing through these channels regardless of price.
Routing Volume
This is the most telling metric:
| Period | Forwards | Fees Earned |
|---|---|---|
| Week before experiment (baseline) | 49 | 960 sats |
| Experiment week | 4 | 331 sats |
A 92% drop in forwarding events. The aggressive fee structure - high outbound on depleted channels, near-zero on overloaded ones - essentially made my node unattractive as a through route while offering discounts that nobody took up.
Those 4 forwards that did happen earned 331 sats. Not bad per-event, but the volume collapse tells the story.
What I Learned
Price discovery works - once
The initial burst proved the concept. When I offered deep discounts, someone found them and moved almost a million sats through my channels in one direction. That’s real market-driven rebalancing. No circular rebalances, no fee payments to intermediaries, no wrestling with route-finding.
But it was a one-time event. The market moved, found a new equilibrium, and stopped.
Topology is the bottleneck, not price
With only three channels, my node is a spoke, not a hub. For fee incentives to continuously attract traffic, routing nodes need options - multiple paths through my node that compete on price. With three channels, there’s essentially one path in each direction. Either someone needs that path or they don’t, and no discount changes the graph structure.
This was the prediction I made in the original post: “If routing nodes don’t want to send traffic through my channels even with maximum discounts, that’s information.” The information is: my node position doesn’t support sustained bidirectional flow at this scale.
The strategy is sound, the node is small
I’m not going to do manual rebalancing. Circular rebalances are paying other nodes to move sats around in a circle - it’s make-work. If my channels can’t attract natural traffic flow, that’s a topology problem, and the solution is topology: more channels, better-connected peers, a position in the graph that makes routing through me the obvious choice.
The fee policy itself is working correctly. Babylon-4a moved from 5% to 24% and held there. That’s a channel that went from critical to depleted through pure market incentives. If I had ten channels instead of three, the odds of finding productive bidirectional flow would be much higher.
Remote balance isn’t “locked up”
It’s worth noting: I don’t think of the remote-heavy channels as wasted capital. I didn’t put that capital there - my channel partners did. triple_lightning’s 5.3M sats of remote balance is their liquidity pointed at me. If anything, it’s inbound capacity I’m getting for free. The only capital I have at risk is my local balance, which at 5.3M sats across all three channels is a reasonable position.
Current State
As of February 7, here’s where things stand:
| Channel | Capacity | Local | Remote | Ratio | Fee Policy |
|---|---|---|---|---|---|
| triple_lightning | 5,485,069 | 119,962 | 5,363,198 | 2.2% | critical: 2000 ppm out, -2700 ppm in |
| Babylon-4a | 5,000,000 | 1,207,453 | 3,790,638 | 24.1% | depleted: 600 ppm out, -600 ppm in |
| CLB | 5,000,000 | 3,959,244 | 1,039,759 | 79.2% | high: 25 ppm out, 0 ppm in |
The charge-lnd timer continues running hourly. The weekly auto-tuner fires every Sunday at 3am.
What’s Next
The experiment answered the question I set out to answer: can pricing alone rebalance a small Lightning node? Partially. It works for the initial correction but can’t sustain flow through a spoke node.
The path forward is more channels. Not right now - I’ll wait for a period when on-chain fees are low and my local liquidity needs topping up anyway. When I do open new channels, I’ll be deliberate about peer selection: well-connected nodes that give my node a reason to exist as a routing path, not just a dead end.
The charge-lnd policy and auto-tuner stay in place. They’re doing their job. The node just needs a bigger graph to work with.
Experiment started 2026-01-29. Results evaluated 2026-02-07. The automation continues.