Federal Infrastructure Milestone Monitor avatar

Federal Infrastructure Milestone Monitor

Pricing

from $3.00 / 1,000 public permitting milestone observations

Go to Apify Store
Federal Infrastructure Milestone Monitor

Federal Infrastructure Milestone Monitor

Track official federal infrastructure review milestones, published target dates and saved changes. Filter mining, power and industrial projects; no API key required.

Pricing

from $3.00 / 1,000 public permitting milestone observations

Rating

0.0

(0)

Developer

Brandt May

Brandt May

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Share

Keep permitting milestone dates in view — illustrative project review table

Keep permitting milestone dates in view

Maintain a source-linked review list for mining, transmission and other infrastructure projects. Collect official review milestones, target dates, baseline dates and published completion dates from the federal Permitting Dashboard, then compare them with your last saved observations.

One result is one milestone within a project action. Use the data to maintain project research and flag published date revisions for review. Dashboard inclusion does not establish funding, permit approval or federal endorsement.

Open in Console · First run · Output preview · Saved comparisons · Pricing

Try five mining milestones

Copy this input into Console's JSON editor. It requests up to five milestones for in-progress mining projects in the default FAST-41 Covered and Transparency categories. No API key, login or proxy subscription is required.

{
"sectors": [
"Mining"
],
"maxSourceEntries": 5,
"maxResults": 5
}

Open Saved observations or CSV export for the rows, then Run report for coverage. Repeated project titles are expected because a project can have many milestones. Empty input saves up to five rows from a larger default source window of 100 milestones.

Output preview

Review questionFieldsInterpretation
Which project and milestone?recordId, projectId, actionId, milestoneId, projectTitle, milestoneNameStable source identifiers; recordId preserves unique_id and matches milestoneId
Which organizations and action?leadAgency, sponsor, actionAgency, actionType, actionStatusPublished organizations and review/authorization wording
What dates are published?targetDate, baselineTargetDate, actualCompletionDate, conditionalTargetDateDate-only values; unpublished dates stay null
How far from the agency baseline?baselineTargetShiftDaysCurrent target minus the dashboard's baseline target
What changed since my saved check?targetDateChangeDays, changedFields, previous, previousObservedAtCurrent target minus your prior saved target; positive means later
What qualifications apply?complete, notApplicable, dateChangeReasonSource flags and explanation when provided; unknown values stay null
Where is the evidence?projectUrl, sourceUrl, observedAt, contentHashOfficial project page, dataset source and observation metadata

Rows also include projectCategory, projectStatus, sector, state and literal matchedKeywords. sourceFetchedAt is the source dataset's ingestion timestamp, preserved without an invented time zone. It is not the date a milestone changed. JSON preserves previous values; CSV supports a milestone register.

Without comparison, comparisonStatus is not_requested. A first saved comparison is new, followed by changed or unchanged. New means new to your saved snapshot, not newly announced by the government. Date revisions do not establish their cause, delay damages or future outcomes.

Inspect transmission milestones

This example includes all project statuses while retaining the two default FAST-41 categories.

{
"sectors": [
"Electricity Transmission"
],
"projectStatuses": [],
"maxSourceEntries": 5,
"maxResults": 5
}

Follow an exact project

{
"projectIds": [
"116841"
],
"sectors": [
"Mining"
],
"projectStatuses": [
"In Progress"
],
"maxSourceEntries": 5,
"maxResults": 5
}

Project 116841 is Michigan Potash in the retained sample. A later category or status change can make this filtered watchlist empty. Missing observations do not establish cancellation or removal.

Keep a saved milestone watchlist

  1. Choose a project or focused sector filter. Add comparePrevious: true and a dedicated snapshotName to the input.
  2. Run once to save initial new observations. Repeat with the same snapshot name to compare later values.
  3. Keep comparePrevious: true and add onlyChanges: true to skip unchanged rows. This Actor requires both flags for changes-only output; an unchanged repeat can correctly save zero rows.
  4. Read the completed run's SUMMARY, then upsert into your spreadsheet or CRM using recordId. Retain the run ID for delivery replay. Route positive targetDateChangeDays for review with the official project link.

History lives in maydit-infrastructure-<snapshotName>, separately per milestone. Only confirmed saved rows advance it; unsaved failures preserve prior values. Use one writer per snapshot name. Detected concurrent changes produce an explicit partial result; this check is not an atomic lock. Inspect historyUpdated and failedSources before relying on the baseline.

Ingestion and retrieval timestamps are excluded from the substantive comparison, so refreshes alone do not create milestone changes. No absence becomes cancellation, removal, permit denial or approval. Agency-maintained records can lag events. Configure daily or weekly recurrence to suit your review process; the Actor creates no schedule or downstream connection.

Filters and source window

Sector, category, project status, project ID and state filters use exact official values. Empty lists include all values for that filter. Changing the sector leaves the default FAST-41 categories in place. Single-state filters match the exact source value, so multi-state or blank locations may not match.

Supported sector values include Mining, Electricity Transmission, Manufacturing, Energy Storage, Renewable Energy Production, Conventional Energy Production, Data Storage and Data Management, Pipelines, Broadband, Water Resources, Surface Transportation, Aviation, Ports and Waterways, Carbon Capture and Sequestration, and High-performance computing and advanced computer hardware and software.

Project statuses are In Progress, Planned, Paused, Complete, Cancelled and Class of Action Changed. Categories are FAST-41 Covered Projects, FAST-41 Transparency Projects, DOT Projects and Other Projects.

The Actor fetches at most maxSourceEntries milestones in stable project/action/milestone order, with pages of up to 100. Keywords then match literally without case sensitivity within that bounded window's project title, sponsor, action type and milestone name. Any keyword can match; filter groups use AND. maxResults caps confirmed writes. This is not a complete history or guaranteed set of all keyword matches in the dashboard.

Defaults are 100 source entries, five saved rows and 240 seconds. Bounds are 10,000 source entries, 5,000 saved rows and 30–3,600 seconds, with a separate 25-second platform reserve. Requests honor robots rules and published crawl delay, use bounded responses and remain on the official public data host.

Official source and meaning

Source: Permitting Dashboard full dataset, using its public structured endpoint. See the data dictionary and project dashboard.

Each row describes a milestone within an environmental review or authorization action. The Actor returns metadata and dates, without private contacts or attachments. It is independent of the Permitting Council and supplies no legal conclusion, risk score, procurement opportunity or completion forecast.

Pricing and run outcomes

Base result rate on the FREE tier: $5 per 1,000 saved milestone observations, plus the listed Actor Start charge. The Pricing tab is authoritative for your plan's current rates. Saved unchanged rows are billable; changes-only skips create no dataset-item charge. Platform usage charges may apply. Set an Apify maximum charge as well as your result cap.

SUMMARY and Run report show source-window coverage, saved counts, history commits, failed records/sources and stop flags. Intentional source/result caps can finish successfully. Source failures, malformed records, time limits and spending stops are incomplete. A valid no-match succeeds; an all-failed run fails. Errors never become paid data rows.

For help, open Issues with the run URL, project ID or filter and expected field. Remove credentials and private information before posting.