How we research the news
Methods · Updated 10 October 2026
Every story on our news pages has passed through one research system, kept in our research repository, niagaraassembly/na-research. The repository is private for now: it holds reviewer notes and unreviewed findings that are not published. This page explains that system in full: where news comes from, how it is recorded, how it is checked, how it is approved, and exactly what reaches this site. It also explains every label you will see on a story.
The short version: AI research agents find and record news. Every finding is reviewed under a person’s authority. Approved findings are merged into our research database once a week. Only then can an editor clear a story for publication. Nothing skips a step, and the steps never run in reverse.
On this page
- The principles
- The four layers of the system
- Where news comes from
- Article dossiers
- Breaking a story into records
- Matching companies and organizations
- Scores, and why they never approve anything
- Review
- Follow-up research
- Weekly integration
- How a story is classified
- How a story is marked
- Money and totals
- The publishing gate
- What reaches this site, and what never does
- Legislative districts
- Issues, updates and corrections
- Automation and its safeguards
- Record IDs
The principles
- Nothing is invented. A missing fact is shown as missing. A scan that finds nothing is a valid result, and an agent must never invent findings to fill a quota.
- Every fact keeps its source. Each claim records where it came from, down to a locator in the source, so it can be checked again later.
- People approve; scores don’t. The system scores matches, sources and searches to help reviewers. A score never approves anything.
- Disagreement is kept, not resolved by guessing. When sources differ, we show each value with its source. We never average them, pick one, or round them together.
- Everything is auditable. Decisions are added to a log, never written over. Rejected and conflicting records stay on file.
- A blank is not a no. A record with no decision is unreviewed, not rejected, and it never appears here.
- We report what records say. We do not conclude that a site is vacant, that a named business is underperforming, or that an owner is neglecting a property.
The four layers of the system
The research is kept in plain files, each with one job. When two layers disagree, the higher one in this list wins.
| Layer | What it holds | Who writes it |
|---|---|---|
| Research database | The approved, merged record of organizations, people, relationships, events, conflicting values and market figures. This is the source of truth. | Only the weekly integration, from approved records |
| Article dossiers | One file per article: what it says, why it matters, and how we read it. | Research agents, updated by follow-up research |
| Inbox and decision log | Candidate records waiting for review, the log of every review decision, and the record of every scan run. | Research agents (candidates); reviewers (decisions) |
| Publications | Exports such as this site’s data, mapping exports and newsletter drafts. Always derived, never edited by hand. | Generated after integration |
Spreadsheets are also generated for offline review, but they are only an editing surface: just the documented review columns flow back into the decision log.
Where news comes from
As of 10 October 2026 the system tracks 78 sources of 38 kinds. They include government newsrooms and bulletins, economic development agencies, industrial development agencies, county and municipal governments, planning records and public notices, regulatory filings, procurement publications, company newsrooms and wires, universities, unions, trade and manufacturing associations, regional business publications, local newspapers and television.
Each source has a record of its kind, the places and sectors it covers, how often it is scanned, and running counts: results seen, relevant articles, approved events, duplicates and false positives.
Every domain cited in published stories is listed on our sources page.
Searching is driven by 196 saved queries in 21 families. Some run against web search, some against sources we check on a schedule, and some against government dashboards. Each query has a geography, a sector and a cadence. Every run records what it found, how much of it was relevant, how much was approved, and how long review took, so searches that produce noise can be retired.
A scan can start in five ways: on a schedule, by hand for a region, from a single submitted link, as follow-up research, or as part of the weekly integration. All five use the same intake, the same duplicate checks and the same record formats. A link submitted by hand never skips review.
The agents work from versioned instruction files, one per routine (daily regional discovery, follow-up, weekly resolution and publishing), so every run of a routine follows the same written instructions. 36 scan runs have been recorded so far.
Article dossiers
Each article we keep gets one permanent file with an ID like ART-2026-000027. It records the article’s address, outlet, dates, how it was found, and its tags. Its body covers:
- a factual summary;
- why the story matters to the region;
- each organization named that could be its own record;
- the events in the story, and each individual claim;
- how organizations were matched, and why;
- conflicts with other sources;
- open questions for follow-up;
- considerations before publishing.
We never store a full copyrighted article: only concise paraphrases, short excerpts where essential, and pointers to the source. Dossier prose can inform later writing, but the approved facts in the research database always control what is published.
Breaking a story into records
The dossier is split into structured rows, each reviewed on its own:
| Record | What it captures |
|---|---|
| Article | Address, outlet, dates, author, type (news report, company release, government release, regulatory filing, announcement, media advisory), places and sectors. |
| Mention | Each organization named, as the article names it, with its role and location. |
| Event | Something that happened or was announced: an expansion, a contract, a closure. It gets a type, a date, a location, and a rating of how material it is (high, medium or low). |
| Claim | One fact inside an event: a dollar figure, a job count, a date, a square footage. Each claim carries its value, its unit, where in the source it appears, and a confidence rating. |
| Relationship | A link between two organizations, such as supplier, funder, partner or parent company. |
| New organization | An organization not yet in the database, proposed with its legal name, type, headquarters and website. |
Events use a fixed list of 21 types: startup formation, capital investment, facility opening, facility expansion, facility closure, equipment investment, manufacturing capacity, funding round, grant or incentive, acquisition, divestiture, ownership change, major contract, production partnership, research commercialization, certification, workforce expansion, layoff, bankruptcy or restructuring, product or process launch, and other material update.
Confidence is always one of low, medium or high.
Matching companies and organizations
Each organization mentioned is compared with the organizations already in the database, so one company isn’t recorded twice under two names, and two companies with similar names aren’t merged. Matching weighs the evidence:
| Evidence | Points |
|---|---|
| Exact canonical name | 20 |
| Known alias or former name | 15 |
| Exact website domain | 25 |
| Compatible location | 20 |
| Compatible parent company | up to 10 |
| Compatible line of business | up to 5 |
| Executive or registration corroboration | up to 5 |
Contradictions subtract points: normally 25 for a conflicting domain, 30 for an incompatible jurisdiction, 40 for an incompatible registration and 20 for incompatible business. Missing evidence scores zero, not a penalty, and every component is shown to the reviewer.
A match is one of: proposed, unresolved, no match, a new organization, a facility of a known organization, an alias, or an incidental mention. Name collisions, mergers, contradictory websites and parent-or-facility questions always go to a person, whatever the score. New organization IDs are only assigned during the weekly integration.
Scores, and why they never approve anything
- Identity match is the evidence score above. It measures who an organization is, never how good an article is.
- Source quality is planned as 35% approved-event rate, 25% primary-evidence rate, 20% novelty, 10% geographic relevance and 10% accessibility. Until every part can be measured, the score is left blank rather than estimated.
- Search yield tracks relevant and approved results per result inspected, new sources, new organizations, duplicates, false positives and reviewer minutes. The aim is more approved, material findings, not more results.
Every formula carries a version number. When a formula changes, the version goes up, and past scores are not quietly recalculated.
Review
Every record is reviewed and given one of eight decisions. A person makes each decision, or authorizes an agent to record it, and the log names who recorded it. Reviewers work in a local review desk, which runs only on the reviewer’s own computer, or in a generated spreadsheet. Both write to the same decision log.
| Code | Decision | What happens next |
|---|---|---|
| A | Approve | Eligible for the weekly integration. |
| E | Edit or correct | The correction is logged beside the original value. |
| R | Reject | Kept on file, never integrated. |
| D | Retain with doubt | Kept, with the doubt stated. |
| F | Follow-up research | Becomes a research task. |
| H | Hold | Waits for a later review. |
| X | Conflicting evidence | Sources disagree; becomes a research task, and the values are shown side by side. |
| N | Not applicable | Out of scope for this record. |
Decisions are made field by field. A reviewer can settle one organization in an article while holding another, and an event or claim moves forward only when the records it depends on are settled. Review never changes the original evidence; it only adds decisions.
Each record has two kinds of note. A reviewer note is internal and never published. A public note is written for readers, and becomes usable only after its record passes integration and the publishing gate.
Follow-up research
Records marked F or X become narrow research tasks: the question, the evidence so far, the evidence missing, and suggested sources. Each task is open, assigned, resolved or cancelled. Agents answer them from a versioned instruction template, and the task row records the run and the result. Follow-up research updates dossiers and candidate records, never the research database directly.
Weekly integration
Once a week, on Saturday, approved findings are merged into the research database:
- Import reviewed spreadsheets and validate every decision.
- Run and review high-priority follow-ups.
- Resolve duplicate articles and events, identities, relationships and conflicts.
- Assign IDs to approved new organizations and aliases.
- Run the integration as a dry run, and inspect its manifest.
- Merge only approved records, then regenerate the review spreadsheets.
- Validate, and propose the result for review rather than merging it automatically.
- After it is accepted, generate publishing and export packages.
Only records a person approved, and whose organization identity is settled, are merged. Each merged event gets a permanent ID like IEVT-2026-000004. A failed export is recorded and retried; it never rolls back or damages the database.
How a story is classified
At integration, each event is given these fields. They describe the story; none of them authorizes publication.
| Field | Answers | Values |
|---|---|---|
| Section (lane) | Which section does it belong in? | Investment and industry, In development, Corridor news, or excluded |
| Stage | How real is the underlying fact? | Stated intent, Application only, Announced, Plan approved, Contract or award, Under way, Completed, Reported |
| Flags | What must the reader be warned about? | Listed below |
| Amount and kind | What money is stated, and what kind? | An amount with its currency and kind; a contract’s ceiling is kept separately |
| Jurisdiction | Which state or province? | NY or ON |
| Sources | Which articles support it? | Every article for the event, the primary one first |
| Conflicting values | Where do sources disagree? | One row per value, each with its source |
Duplicate reports of the same event become extra sources on one story; they are never separate stories.
How a story is marked
Section: where the story belongs
| Investment and industry | Direct investment, contracts and closures. |
| In development | Stated intentions and applications. Nothing is built or confirmed yet. |
| Corridor news | Real regional news outside direct investment and hiring, such as research grants or base-support contracts. Good news, but never added to an investment or jobs total. |
Some findings are excluded altogether and never published. A story in development or in corridor news must also have a public note before it can appear.
Stage: how real the underlying fact is
One badge per story, from earliest to latest: Stated intent, Application only, Announced, Plan approved, Contract or award, Under way, Completed. A story we know only from a report, with no stage confirmed, is marked Reported.
Flags: what the reader should know
| Sources disagree | Sources give different values. Each value is shown with its source. |
| Not disclosed | A fact that matters, such as a location or a local share, was not stated by any source. |
| Being confirmed | An open research task is checking this point. |
| Company-reported | The only source is the company itself. |
| Secondary listing | Found in a secondary listing; we have not read the original notice. |
| Contract ceiling | The figure is the most a contract could be worth, not money committed or spent. |
| Identity being confirmed | Which company this is has not been settled. |
| Research funding | A research award, not a production or hiring commitment. |
| Not counted in production totals | Kept out of any regional production figures. |
Warnings (sources disagree, identity being confirmed) and notes about the source (company-reported, research funding) appear as labels. The rest are folded into one sentence under the story.
Explainer and sources
The line under each headline is the public note, written for readers: one or two sentences on what the story does and doesn’t establish. Where it is blank, we show nothing rather than generate one. Each story links its sources, marked as a primary source (a government release or regulatory filing), a company source, or a news report.
Money and totals
Dollar figures come only from amounts recorded as data, never from prose. Each amount has a kind:
| Kind | Recorded as | Meaning |
|---|---|---|
| Investment | investment | Announced capital spending, such as facilities, equipment or expansion. |
| Contracts: money committed | obligated | Government money committed under a contract. |
| Awards as reported | award | The value of an award as reported, often by the company itself. |
| Deals | transaction | A purchase or sale price. |
| Grants | grant | Grant funding. |
| Proposed | proposed | An amount in a plan or application not yet approved. |
| Charges | charge | A cost a company books, such as a closure charge. |
Public incentives, such as tax credits, are recorded separately from these amounts and never added to them. Job figures are shown as each source states them; where sources disagree, every figure is shown with its source and none is chosen.
A contract’s ceiling, the most it could ever be worth, is recorded separately. It is shown on its story, labelled as a ceiling, and never counted.
Totals follow three rules. Every kind of money gets its own total line, which counts investment and industry stories only and says how many other lines it leaves out. Each kind is totalled on its own. And the kinds are never added together, because a purchase price, a reported award and money committed under a contract are different things. Amounts are coloured by stage: green when completed, dark yellow when only announced.
The publishing gate
Every merged event carries a publishing status that only a person can change:
| Not ready | Merged into the database, not yet considered for publication. |
| Eligible | Could be published. |
| Drafted | Written up in a draft. |
| Approved | Cleared for the public by an editor. |
| Published | Out in the world. |
Only approved and published stories reach this site. The classification fields never authorize publication; only this status does. Generated briefs and newsletters are drafts, and sending or deploying them needs its own approval.
What reaches this site, and what never does
This site reads an export of the research database. The export reads the research and never changes it. For each approved story it carries the headline, the public note, the date, the place as the record states it, the organization, the section, the stage, the flags, the amounts and their kinds, any ceiling, the sources, the conflicting values, any stated job figures, any public support such as tax credits, the next step and its date, and the dates each stage was observed.
It never carries reviewer notes, the reasons behind a claim’s uncertainty, internal summaries, dossier prose, unreviewed records, or anything from the inbox. People named in a story are listed only from approved records attached to a published story.
Legislative districts
Each story lists the Congressional, State Senate and State Assembly districts that cover the places it names, so readers can find stories in a given district. The districts are the ones current officeholders were elected under, taken from the Census Bureau’s district lines, which are public domain. They are worked out for the town or city, not the exact address: we sample points evenly across the place and keep any district covering at least 2% of it. A story in Buffalo therefore lists every Assembly district Buffalo touches, even if the site itself sits in one. This is the site’s own mapping, not a finding of the research.
Issues, updates and corrections
Once a week, after the integration is accepted, we export the approved stories. Each run reports which stories were added, changed or removed since the last one, and the research version it came from, so every update can be traced to the research behind it.
A magazine issue is a frozen copy of that export: it does not change when next week’s news arrives. Lists of all articles and all dollar figures always read the latest export. When a published fact is corrected in the research, the next export carries the correction, and an affected issue is republished from the corrected data.
Automation and its safeguards
Every routine, whether started by a person, a scheduler or a hosted agent, calls the same scripts, so there is only one path for data. The rules for running them:
- Each run works in its own clean copy and on its own branch, and proposes its changes for review. No routine merges its own work.
- Discovery writes only to the inbox and dossiers, never to the research database.
- The weekly integration stops if human approval is missing; publishing stops if the integration record is missing.
- A lock prevents two runs from changing the same copy at once, and a retry must not duplicate IDs, addresses or branches.
- Each run records its trigger, instruction version, research version, outcome and any errors.
- Credentials stay outside the research, with the least access needed. Logs never hold credentials or copyrighted full text.
Planned, not yet running: a single scheduled wrapper that runs every routine under a lock with a full run record is specified but not yet switched on. Scans currently run as agent research sessions that each propose their changes for review.
Record IDs
ART- | Article dossier |
MEN- | An organization mentioned in an article |
EVT- | An event awaiting or under review |
CLM- | A single claim |
E#### | An organization in the research database |
IEVT- | An event merged into the research database (the IDs used on this site) |
ICV- | One sourced value in a disagreement |
DEC- | A review decision |