Audience Stability Floor Lens

This lens observes Audience Stability Floor Storyline, 观众稳定性下限, Broadcast Schedule, and Blackout Incidents.

It is observed through Audience Stability Index, Ratings Floor Breach, Audience Stability Triage, Last Performance, and 冠名氧气分诊.

Observable promise

Storyteller must make entertainment stability playable after custody decisions. A route can win an archive, voice, body, sponsor, or relay dispute and still fail the public entertainment floor. This lens is satisfied only when a breached audience floor becomes an assignable management fork with durable states, branch costs, counter deltas, and later route consequences.

The audience floor is not a global morale bar. It is a contract-facing broadcast pressure surface that appears when the show needs a legible reason for the public to keep watching.

State-triggered entry

Open the audience-stability surface when all of the following are true:

  1. Audience Stability Index is volatile, breached, patched, bridged, compressed, or spiraling;
  2. a public broadcast object, schedule slot, sponsor relief surface, fan oxygen ledger, public receipt, pirate relay, custody contradiction, or Blackout Incident is active or scarred;
  3. at least two claimant factions can contest the stabilizing move: sponsor desk, fan public, inspector, archive bureau, editor, artist, pirate relay, or schedule board;
  4. at least one pressure counter is live: audience_stability, audience_churn, broadcast_floor_breach, public_grief_stability, fan_oxygen_resentment, sponsor_stop_loss_pressure, inspection_heat, contract_capture, schedule_slots_occupied, or black_screen_slots.

The canonical trigger is audience-state plus claimant pressure. It is not a fixed numbered trigger.

Required observable content

Route states

A satisfying implementation must expose durable audience-floor states equivalent to at least five of:

  • floor_met
  • volatile_but_legible
  • ratings_floor_breach
  • public_receipt_floor
  • sponsor_clean_patch
  • pirate_attention_bridge
  • fan_attention_bridge
  • schedule_compressed_floor
  • floor_breach_hidden
  • audience_churn_spiral
  • clean_patch_backlash

Proof and attention objects

Audience Stability Index or an equivalent object must remember the current reason the audience is still watching. Branch results must depend on at least one assigned object from these families:

  • public receipt, body/voice receipt, source proof, or final-take object;
  • sponsor relief, escrow, stop-loss, or clean patch object;
  • fan oxygen ledger, fan witness, pirate relay, or unofficial commentary object;
  • schedule slot, timer, compression marker, or blackout scar;
  • inspector, editor, artist, sponsor, pirate, or explicit absence state.

Assignable action

The replay surface must expose Audience Stability Triage or equivalent choices that can assign:

  • audience floor state or explicit breach state;
  • one broadcast-facing object;
  • one proof, liability, attention, or schedule object;
  • one handler, claimant, or explicit absence;
  • one branch intention: publish, patch, bridge, compress, expose, or suppress.

Events

At least one of the following must be emitted, resolved, or recorded:

  • Ratings Floor Breach;
  • a sponsor clean-patch backlash event;
  • a public receipt stabilization event;
  • a pirate or fan attention bridge event;
  • a schedule compression scar event;
  • a churn spiral or hidden-breach failure event.

Required branch divergence

Branch A — Public receipt stabilization

A public branch names the breach and lets the audience keep watching because the contradiction is legible.

Expected evidence:

  • set public_receipt_floor or volatile_but_legible;
  • improve audience_stability, public_receipt_legitimacy, or fan_oxygen_balance;
  • increase sponsor, inspector, archive, or schedule pressure.

Branch B — Sponsor clean patch

A sponsor branch funds or edits attention back into place.

Expected evidence:

  • set sponsor_clean_patch;
  • reduce audience_churn or broadcast_floor_breach;
  • increase contract_capture, public_receipt_distrust, archive_fraud, sponsor_escrow_debt, or voice_integrity_risk.

Branch C — Pirate or fan attention bridge

An unofficial branch keeps attention alive through relay, fan queue, or counter-programming.

Expected evidence:

  • set pirate_attention_bridge or fan_attention_bridge;
  • reduce audience_churn, improve public_grief_stability, or save a schedule slot;
  • increase inspection_heat, relay_custody_risk, fan_oxygen_resentment, or sponsor_stop_loss_pressure.

Branch D — Schedule compression

A schedule branch changes the slot shape to avoid immediate audience failure.

Expected evidence:

  • set schedule_compressed_floor;
  • reduce broadcast_floor_breach or audience_churn;
  • increase schedule_slots_occupied, contract_timer_risk, black_screen_slots, or blackout debt.

Branch E — Hidden breach / churn spiral

A failure branch hides or ignores the breach until audience loss hardens.

Expected evidence:

  • set audience_churn_spiral, floor_breach_hidden, clean_patch_backlash, or stability_floor_missed;
  • worsen audience_churn, public_grief_stability, fan_oxygen_resentment, inspection_heat, or black_screen_slots;
  • later public receipt, sponsor negotiation, pirate bridge, or schedule recovery becomes locked or more expensive.

Oracle assertions

A sibling executable lens should fail unless all assertions below are true.

  1. Primary links existobserves and observed_through arrays are populated and point to existing Storyteller wiki surfaces.
  2. State-triggered entry — the audience-stability surface opens from breached or volatile audience-floor state plus claimant pressure, not from a fixed numbered trigger.
  3. Audience floor is stateful — replay or data inspection exposes at least five durable audience-floor states.
  4. Assignable triage exists — at least one rite or choice accepts a broadcast object, floor state, proof/liability/attention object, and handler or explicit absence.
  5. Branch outcomes diverge — public receipt, sponsor patch, pirate/fan bridge, schedule compression, and hidden-breach outcomes do not collapse into the same state or counter result.
  6. Success is costed — any stabilization improves one audience/schedule/public variable while spending or worsening another sponsor, fan, inspector, archive, relay, or schedule surface.
  7. Sponsor cleanup is not free — sponsor patch cannot reduce churn without creating capture, distrust, escrow, fraud, voice risk, or later public objection.
  8. Unofficial attention has custody risk — pirate or fan bridge cannot stabilize attention without increasing relay, fan, sponsor, or inspector pressure.
  9. Schedule compression leaves a scar — compression cannot save the floor without changing schedule slots, timers, blackout risk, or future slot availability.
  10. Failure is durable — hiding or missing the breach changes later availability, costs, tags, or counters.
  11. Replay provenance — passing evidence includes session id, seed, offered choices, assigned cards, branch outcome, durable states, and counter deltas from game state.

Replay evidence shape

lens_id: storyteller.lens.audience_stability_floor.v1
session_id: lens-audience-stability-floor-v1-<timestamp>
seed: <deterministic-seed>
replay_context:
  audience_floor_before: floor_met | volatile_but_legible | ratings_floor_breach | sponsor_clean_patch | pirate_attention_bridge | schedule_compressed_floor | audience_churn_spiral
  public_object: last_performance | sponsor_relief | fan_oxygen_ledger | public_receipt | pirate_relay | custody_contradiction | blackout_incident
  claimant_factions:
    - sponsor_or_fan_or_inspector_or_archive_or_editor_or_artist_or_pirate_or_schedule_board
    - second_claimant_or_equivalent
  live_pressures:
    - audience_churn
    - sponsor_stop_loss_pressure
    - fan_oxygen_resentment
offered_choices:
  - rite.audience_stability_triage
  - name_breach_on_air
  - sponsor_clean_patch
  - pirate_attention_bridge
  - schedule_compression
  - hide_breach
assigned_cards:
  public_branch:
    - card.audience_stability_index
    - receipt_or_source_proof
  sponsor_branch:
    - card.audience_stability_index
    - sponsor_relief_or_clean_patch
  relay_branch:
    - card.audience_stability_index
    - pirate_or_fan_attention_object
  compression_branch:
    - card.audience_stability_index
    - schedule_slot_or_blackout_scar
branches:
  public_receipt:
    outcome: public_receipt_floor
    deltas:
      audience_stability: +1
      sponsor_stop_loss_pressure: +1
  sponsor_patch:
    outcome: sponsor_clean_patch
    deltas:
      audience_churn: -1
      contract_capture: +1
  pirate_bridge:
    outcome: pirate_attention_bridge
    deltas:
      audience_churn: -1
      relay_custody_risk: +1
  compression:
    outcome: schedule_compressed_floor
    deltas:
      broadcast_floor_breach: -1
      schedule_slots_occupied: +1
  hidden_breach:
    outcome: audience_churn_spiral
    deltas:
      audience_churn: +1
      public_grief_stability: -1
assertions:
  - state_triggered_entry
  - audience_floor_stateful
  - assigned_cards_recorded
  - branch_outcomes_diverge
  - success_has_cost
  - failure_is_durable
  - sponsor_patch_not_free
  - schedule_compression_leaves_scar

Progress metric

Progress is branch coverage and state distinction, not content count.

  • 20%: audience floor state and claimant factions exist.
  • 40%: Audience Stability Index or equivalent can enter play.
  • 60%: Audience Stability Triage resolves at least two stabilization branches with costs.
  • 80%: hidden, sponsor-captured, pirate-risk, or schedule-compressed outcomes create durable penalties.
  • 100%: at least three divergent branches are replay-proven with seed, session id, assignments, outcomes, durable states, and counter deltas.

Non-goals

  • Not a global morale bar.
  • Not a fixed numbered trigger.
  • Not bulk content volume.
  • Not governance or implementation methodology.
  • Not a free sponsor cleanup.
  • Not satisfied by prose alone; proof must come from branch state and replay evidence.