Methodology

Mosaic shows its work.

See what goes into each Story, how your Feed Formula makes decisions, what you can inspect, and where our systems can still get it wrong.

A public operating manual

Every published method follows the same path

We show the evidence, explain the rule in plain English, name what you can control, and make the limits visible.

Story matching · Text embeddings

How Mosaic knows these reports belong together.

Text embeddings give each report a mathematical fingerprint of meaning. Mosaic News uses those fingerprints to connect individual articles into a Story and connect that Story to the larger Big Picture.

Watch three reports become one Story.

The same three reports shown on the homepage converge into one Story and then connect to the Iran Nuclear Negotiations Big Picture.

What goes in

A meaning fingerprint

An embedding turns text into a long list of numbers. Two pieces of text with similar meaning usually land near each other, even when they do not use the same words.

Mosaic News uses OpenAI text-embedding-3-small. For articles, the input is built from the title and summary snippet, with the title repeated so the main event carries extra weight. The result is stored and reused.

Plain example

Different words, nearby meaning

“electric vehicle production cuts”

“automaker reduces EV output”

Both can land near the same topic anchor.

How the decision works

From new report to stable Story

1

Compare new articles to active stories

When a new article arrives, Mosaic News compares its fingerprint to the center point of existing active story clusters. If it is close enough, and the broad topics are compatible, the article can join that story.

2

Form new stories from leftovers

Articles that do not join an existing story are compared with each other. If several articles from at least two independent sources are close enough in meaning, Mosaic News can form a new story cluster.

3

Keep clusters from drifting

Founding articles count more when calculating a cluster's center point. This helps a story stay anchored to what it was originally about as new coverage arrives.

What you can see

The same fingerprints connect content to topics.

Mosaic News keeps stable canonical topic anchors with embeddings of their own. Articles, Stories, and Big Pictures can be compared with those anchors.

Confident matches power topic pages, pinned sections, and the topic preferences you can tune or block. Broad topic gates and similarity thresholds reduce false matches.

The boundary

What embeddings do not decide

  • They do not decide whether an article is true.
  • They do not decide political lean or publisher credibility.
  • They do not write summaries, titles, or framing notes.
  • They do not make one publisher count as multiple independent sources.
  • If an article has no embedding, semantic clustering skips it instead of guessing.
  • Broad topic gates and similarity thresholds are used to reduce false matches.

Evidence · AI summaries

How a Story becomes a summary.

The model receives a selected reading list, written evidence rules, and a required response shape. It does not browse, remember previous requests, or know anything about your identity or reading habits.

The same Story, read from every side.

The Iran Nuclear Negotiations Story shows its complete Center, Left, and Right summaries, each grounded in the sources carrying that lean label.

Trump Seeks $87.6B for Iran War Costs

The Trump administration requested $87.6 billion in supplemental funding from Congress on Wednesday, with $67 billion designated for the Department of Defense to cover costs from the Iran war (Operation Epic Fury). The request includes $21 billion for munitions, $17.3 billion for operational costs, and $12.1 billion for classified programs. The package also allocates $11.1 billion for U.S. farmers and $1.4 billion for Ebola response in Africa. The funding request came one day after Congress passed a war powers resolution to limit Trump's military authority against Iran. Democratic lawmakers signaled opposition, with Senator Patty Murray calling it a “disastrous war of choice,” while Republican support remained mixed.

This summary is AI-generated and may contain errors or not fully capture all perspectives. Always verify important facts and refer to the original articles for accurate reporting. How we use AI →

17 publishers 24 articles June 23–25, 2026

What gets sent

One isolated request with three parts

Mosaic News currently uses Claude Haiku 4.5, a model made by Anthropic, for Story summaries and Big Picture narratives.

1

The instructions

A written rulebook tells the model what to produce, what evidence it may use, and what it must leave empty when evidence is missing.

2

The evidence

The model receives the article text or child story summaries in front of it, each labeled with source, lean, and timestamp context.

3

The required shape

The response must fit specific fields, such as title, what happened, left framing, right framing, and title assessment.

How evidence is chosen

The reading list is built by rules, not vibes.

A summary is only as fair as the evidence placed in front of it. Mosaic selects a bounded, diverse list before the model writes anything.

  • Up to 10 articles are selected for a story summary.
  • Left, center, and right coverage each get seats when that coverage exists.
  • Within those seats, publisher factuality, credibility, extraction quality, recency, reach, novelty, and source diversity all contribute.
  • Known syndicated copies are treated as one evidence voice, so repeated wire text cannot crowd out the reading list.
  • Full article text is used. Snippet-only content is not sent to the summary model.

Publisher factuality and credibility use Media Bias/Fact Check ratings. MBFC publishes its own methodology at mediabiasfactcheck.com/methodology .

How we reduce mistakes

The model is allowed to leave gaps.

Language models can fill missing information with plausible text. These rules make an honest empty field preferable to an invented answer.

Evidence only

The model is told not to use training-data knowledge. Every factual claim must come from the provided article texts or child summaries.

No invented perspective

If a left or right framing field has no source evidence, it must stay empty instead of being creatively filled.

Unknown stays unknown

A publisher without a lean rating is labeled UNKNOWN LEAN in the evidence rather than being quietly treated as center.

Time is anchored

Every request includes the current date and time, and every evidence item carries a timestamp when available.

Not every story gets left/right framing

Sports, entertainment, and other stories outside politics or world news skip the left/right framing fields entirely.

Summaries can change

As new reporting arrives, the system can refresh the story title and summary against the updated evidence.

Progressive disclosure

Open the exact instructions.

These are collapsed because they are technical. Open them when you want the production prompt text and evidence shapes. The prompt text is not cleaned up or rewritten for this page.

The instructions for story summaries

This is the system prompt used when a story touches politics or world news. Non-political stories use a shorter variant with the left and right framing fields removed.

✦ Production prompt Verbatim from production code as of July 6, 2026
You are a neutral news analyst. Given multiple articles covering the same story from different sources, produce a structured summary with segmented perspectives. Remember though that you are also a teacher and you must present your analysis in a way that is easy for accessible for anyone to understand. You are here to educate everyone of all media literacy levels, not confuse them.

{NOW_CONTEXT}

CRITICAL EVIDENCE RULES:
- Base your analysis ONLY on the article texts provided below. Do NOT use any knowledge from your training data.
- Every claim in "what_happened" must be supported by at least one provided article.
- Every framing observation in "sources_differ_*" must be derived from the specific articles labeled with that lean.
- If an article's body text is short or lacks detail, note what it does say rather than inferring what it might mean.
- There may be junk html elements or other web artifacts such as nav elements, comment sections, etc, that leak into the article text. Ignore these artifacts and focus on the actual article content.
- Do NOT fabricate framing observations. If left-leaning articles don't show a clear editorial angle, say they report factually rather than inventing a framing that feels plausible.
- Some stories may be nuetral and will not have an inherent lean from either side and it is ok to make note of that and communicate in our output that there is no inherent lean from one side or another.

OUTPUT RULES:
- "title": Generate a fresh less than 30 character long title for this story based on the article evidence below. Do NOT consider any prior title for this cluster — write the title that best fits the current evidence. Title case, specific to the core event ("Tehran Strikes Intensify", not "Middle East News"), neutral, do not echo any single article's headline or editorial angle, and avoid words that date the title to a single moment.
- "what_happened": Factual, neutral, non-editorialized, objective summary of the events described in the articles. Cross-reference details from multiple sources. This should be a summary of the event itself, not a summary of the articles. This should be anywhere between 50-150 words long.
- "sources_differ_left": How LEFT-LEANING outlets specifically frame, emphasize, or editorialize this story. If left-leaning articles don't show a clear editorial angle, say they report factually rather than inventing a framing that feels plausible. This should be anywhere between 50-150 words long. Set to null if no left-leaning sources are present.
- "sources_differ_right": How RIGHT-LEANING outlets specifically frame, emphasize, or editorialize this story. If left-leaning articles don't show a clear editorial angle, say they report factually rather than inventing a framing that feels plausible. This should be anywhere between 50-150 words long. Set to null if no right-leaning sources are present.
- Only populate a sources_differ field if there are articles with that lean label. Otherwise set it to null.
- All fields should populate using the english language.
- Respond ONLY with valid JSON matching the schema.
What story evidence looks like

Alongside the instructions, the model receives article evidence in this format. The placeholders below are not real reporting.

✦ Production prompt Format sample with placeholder content
Story cluster: 3 articles from 3 sources.

Coverage: 1 Left/Lean Left, 1 Center, 1 Right/Lean Right.

--- ARTICLES ---

[1] (LEFT) placeholder-outlet-a.example — Placeholder Headline One (Published Monday, June 29, 2026 at 9:14 AM ET)
    (Full article text appears here.)

[2] (CENTER) placeholder-outlet-b.example — Placeholder Headline Two (Published Monday, June 29, 2026 at 11:02 AM ET)
    (Full article text appears here.)

[3] (UNKNOWN LEAN) placeholder-outlet-c.example — Placeholder Headline Three (Published Monday, June 29, 2026 at 1:47 PM ET)
    (Full article text appears here.)
The instructions for Big Picture narratives

A Big Picture is a summary of story summaries. The model reads already-generated child story summaries, writes the narrative arc, and checks whether the current title still fits.

✦ Production prompt Verbatim from production code as of July 6, 2026
You are a neutral news analyst. You are given summaries of multiple related sub-stories that together form a larger ongoing narrative. Your job is to synthesize these into a cohesive perspective summary and evaluate whether the mega-cluster title is still accurate.

{NOW_CONTEXT}

CRITICAL EVIDENCE RULES:
- Base your analysis ONLY on the child cluster summaries provided below. Do NOT use any knowledge from your training data.
- Every observation must be traceable to a specific child cluster summary.
- If left-leaning or right-leaning framing data is sparse or absent, set the corresponding field to null rather than speculating.

OUTPUT RULES:
- "center_summary": A neutral 3-5 sentence narrative arc. Describe how the overall story developed over time — what happened first, how events escalated or shifted, and where things currently stand. This is the "big picture" overview.
- "left_summary": How left-leaning outlets' coverage and framing evolved across the sub-stories. 50-150 words. Note if their emphasis shifted (e.g., from economic impact to humanitarian concerns). Name specific outlets if mentioned in the child summaries. Set to null if no left-leaning framing data exists.
- "right_summary": How right-leaning outlets' coverage and framing evolved across the sub-stories. 50-150 words. Note if their emphasis shifted. Name specific outlets if mentioned in the child summaries. Set to null if no right-leaning framing data exists.
- "suggested_title": Evaluate the CURRENT TITLE provided in the prompt. If it accurately captures the active/current narrative, return it UNCHANGED. Suggest a NEW title when the current title is too narrow, too broad, or misleading (e.g., it names one company/person/event but the current child summaries are mostly about a broader industry, policy, or conflict). Prefer stable titles only when they are still accurate. Title rules: must be 2-3 words MAX, title case, be specific ("The Iran War" not "Middle East Conflict". 'The Iran War' is acceptable, 'The Iran War: Diplomatic Stalemate, Economic Crisis' is not acceptable.), do not use words that will date the story or be too specific to a single event.
- "title_assessment": One of "accurate", "too_narrow", "too_broad", or "misleading".
- "title_assessment_reason": One concise sentence explaining why the title was kept or changed, grounded in the child summaries.
- All fields should populate using the english language.
- Respond ONLY with valid JSON matching the schema.
What Big Picture evidence looks like

In production, each child entry is a real story summary. Long-running narratives can also include compacted history segments so the prompt stays bounded.

✦ Production prompt Format sample with placeholder content
Mega-story: "Placeholder Narrative"

CURRENT TITLE: "Placeholder Narrative"

This story has 3 summarized sub-stories (2 active/current, 1 archived/history).

For the title decision, active/current sub-stories carry the most weight. Compacted history and archived sub-stories provide background and should not force an outdated or overly narrow title.

--- CHILD CLUSTER SUMMARIES (chronological order) ---

[1] [ARCHIVED] "Placeholder Story One" (as of Friday, June 26, 2026 at 3:20 PM ET)
    What happened: (The story's summary appears here.)
    Left-leaning framing: (That story's left framing analysis appears here.)
    Right-leaning framing: (That story's right framing analysis appears here.)

[2] [ACTIVE] "Placeholder Story Two" (as of Monday, June 29, 2026 at 8:05 AM ET)
    What happened: (The story's summary appears here.)

[3] [ACTIVE] "Placeholder Story Three" (as of Tuesday, June 30, 2026 at 6:40 PM ET)
    What happened: (The story's summary appears here.)

The boundary

A summary is a starting point, not a verdict.

AI models make mistakes. A summary can misread an article, over-weight one source's account, or phrase something more confidently than the evidence deserves.

Every Story links to its original articles. Framing analysis is one structured reading of those sources, not a fact-check.

Ranking · Feed Formula

Why this Story appears in your feed.

Every item receives a visible Story Strength score. Your Feed Formula decides how much each signal can contribute, then your explicit preferences can nudge the result or remove something you blocked.

Every card explains itself.

The homepage protagonist article opens its relevance explanation and shows the visible topic, coverage, and publisher controls behind its feed placement.

Trump Asks Congress for $88 Billion, Mostly for War With Iran

June 24, 2026

You can change the ranking rules.

The Feed Formula shows the complete signal allocation and demonstrates how changing Publisher Reach changes the visible allocation.

Source 20% Trending 30% Coverage 10% Freshness 20% Publisher 20%

Trending Speed-focused (30%)

Publisher Reach How widely read is the source? 33%

What goes into Story Strength

Five visible signals, each graded from 0 to 10

Story Strength is the non-personal part of the score. It asks how strong the Story or article is under the ranking rules you can inspect.

Source Credibility

Is this publisher known for accurate reporting?

Where it comes from: Uses Media Bias/Fact Check factual reporting labels, such as Very High, High, Mostly Factual, Mixed, and Low.

How it becomes a score: Those labels become a 0 to 10 grade. A High factual rating earns 8 out of 10. Unknown publishers get a middle score instead of being treated as best or worst.

Trending Speed

How quickly is coverage arriving right now?

Where it comes from: Uses the story cluster's incoming articles, their timestamps, and their publisher domains.

How it becomes a score: Fresh articles add more than old ones. Repeat updates from the same outlet count less, so one busy publisher cannot make a story look bigger by itself.

Coverage Breadth

How many independent outlets are covering the same story?

Where it comes from: Uses the story cluster's source list, with syndicated or duplicate wire copy treated as one evidence voice where detected.

How it becomes a score: Stories with wider independent coverage score higher than stories covered by only one or two outlets.

Freshness

How recent is this article or story?

Where it comes from: Uses publication times for articles and the latest story-summary or member-article time for story clusters.

How it becomes a score: Newer items start high and gradually lose freshness points as time passes, so the feed stays current without making older stories disappear instantly.

Publisher Reach

How widely read is this publisher?

Where it comes from: Uses Media Bias/Fact Check traffic and popularity buckets: High Traffic, Medium Traffic, and Minimal Traffic.

How it becomes a score: High Traffic earns 10 out of 10, Medium Traffic earns 5, and Minimal Traffic earns 0. Unknown reach gets a middle score.

How the math works

Your Formula gives every signal a point budget.

A signal earns the matching share of its budget, then the contributions are added together before preferences are applied.

1

Grade each signal

Mosaic News gives each signal a plain 0 to 10 grade. For example, a High factual-rating source earns 8 out of 10 for Source Credibility.

2

Use your 100-point budget

Your Feed Formula decides how many points each signal is allowed to contribute. If Source Credibility is worth 20 points, that signal can add at most 20 points.

3

Multiply the grade by the budget

A signal earns the matching share of its point budget. A source with an 8 out of 10 credibility grade earns 80 percent of the 20-point budget, which is 16 points.

4

Add the pieces together

The five signal contributions add up to the story's base score, which Mosaic News calls Story Strength.

5

Apply your preferences

Your topics, publishers, and article-type settings can nudge that score up, pull it down, or remove an item you have blocked.

Simple example

Source Credibility is worth 20 points

High factual rating 8 / 10
80 percent of 20 points 16 pts

What you control

Preferences are direct, visible modifiers.

They mean “show me more of this,” “show me less of this,” or “do not show me this.” They are not inferred from a hidden behavior profile.

Favorite +20
Like +10
Neutral 0
Dislike -10
Blocked Hide

Topics

Favorite topics get a strong boost, liked topics get a smaller boost, disliked topics move down, and blocked topics are removed when the match is confident.

Publishers

Publisher preferences apply to individual articles. A favored publisher can lift its own article. A blocked publisher's articles are removed, but the larger multi-source story can still remain.

Article types

Article type preferences apply to single articles, such as news, analysis, opinion, reviews, or features. Clusters do not get an article-type modifier because they can contain several types at once.

A blocked secondary topic match is handled more carefully. Because secondary topic tags can be less certain, Mosaic News strongly lowers that item instead of always deleting it.

Where the signals come from

Publisher records, live coverage, and your controls

Publisher records

Source Credibility and Publisher Reach use Media Bias/Fact Check's factual-reporting and traffic labels.

Live Story behavior

Trending Speed and Coverage Breadth observe which independent outlets are covering a Story and when coverage arrived.

Your controls

Topic, publisher, and article-type preferences come from the settings you choose. The server uses them for the request and does not store a permanent profile.

The boundary

What this score does not mean

  • A high score is not a claim that an article is true. It means the article scored well under the visible formula.
  • Political lean is used for perspective and coverage comparison, not as a ranking reward by itself.
  • Publisher ratings can be missing or imperfect, so unknown values are handled as middle scores instead of silent penalties.
  • Preference settings are not secret behavior tracking. They are the controls you set and send with the feed request.
  • Blocked source preferences remove that publisher's articles, but they do not erase the existence of a story other outlets are also covering.