{"uid":"cap_3UH_Zg16AbV1KsIvgnNK-","slug":"pjm-nowcast-historical-descriptive-statistics-1ad57a5a","name":"PJM Nowcast — Historical Descriptive Statistics","description":"Trailing and semi-live descriptive statistics on PJM RTO LMP, selected zonal LMP price spreads, and RTO load. Not a forecast, signal, trading recommendation, or advice. Not a substitute for official PJM data products. Buyer beware: figures are aggregated from public market sources; freshness equals the last successful background poll. Descriptive statistics only. Not a forecast, signal, or trading recommendation. Aggregated from public market sources. Freshness depends on the last successful background poll.","url":"https://pjm-nowcast-production.up.railway.app/v1/nowcast/history","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"families":{"type":"string","description":"Subset of rto_lmp, zonal_spread, rto_load. Default: all."},"windowHours":{"type":"integer","description":"Trailing window in hours. L2 maximum is 72."}}},"responseSchema":{"type":"object","example":{"stale":false,"mix_n_obs":40,"price_vol":2.5,"ageSeconds":120,"mix_std_price":8.1,"price_vol_missing":false},"properties":{"asOf":{"type":"string","format":"date-time"},"kStar":{"type":["integer","null"],"description":"Regime route. Dominant state index."},"stale":{"type":"boolean"},"rtoLmp":{"type":"object"},"entropy":{"type":["number","null"],"description":"Regime route. HMM entropy; not a forecast."},"product":{"type":"string"},"rtoLoad":{"type":"object"},"polledAt":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"mix_n_obs":{"type":["integer","null"],"description":"Latest only. Observation count paired with mix_std_price."},"price_vol":{"type":["number","null"],"description":"Latest only. Rolling realized LMP std in $/MWh from the last 8 SQLite RTO LMP prints (RMS of successive diffs; not annualized Black vol, not rtoLmp.std). Null when price_vol_missing is true."},"ageSeconds":{"type":"integer"},"disclaimer":{"type":"string"},"posteriors":{"type":"array","items":{"type":"number"},"description":"Regime route. State posteriors."},"resolution":{"type":"string"},"priorPeriod":{"type":"object"},"windowHours":{"type":"integer"},"zonalSpread":{"type":"object"},"maxAgeSeconds":{"type":"integer"},"mix_std_price":{"type":["number","null"],"description":"Latest only. Mixture std of RTO LMP in $/MWh from the poller mix.json sidecar. Not price_vol and not rtoLmp.std."},"observationCount":{"type":"integer"},"price_vol_missing":{"type":"boolean"}},"description":"Descriptive statistics envelope. Fields asOf, polledAt, ageSeconds, maxAgeSeconds, stale are always present."},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_EGn6VtqGz0NKcVMb6MWPX","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.1","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns trailing descriptive statistics on PJM RTO LMP (locational marginal prices), zonal LMP spreads, and RTO load over a configurable look-back window.","exampleAgentPrompt":"Pull me the PJM nowcast history for all data families — RTO LMP, zonal spreads, and load — over the last 48 hours so I can see the trailing descriptive stats.","exampleUseCases":[{"title":"Energy trader LMP price review","prompt":"Give me the descriptive stats on PJM RTO LMP prices for the past 24 hours — I want to see what prices have been doing recently."},{"title":"Grid operations load monitoring","prompt":"Fetch the trailing RTO load statistics from PJM nowcast for the last 72 hours so I can review recent grid demand patterns."},{"title":"Zonal spread analysis dashboard","prompt":"Pull the zonal LMP spread statistics from PJM for the past 48 hours — I need the summary figures for a quick market spread review."}],"resultDescription":"A JSON envelope containing descriptive statistics (mean, min, max, etc.) for the requested data families (rto_lmp, zonal_spread, rto_load) over the specified trailing window. Always includes asOf timestamp, polledAt timestamp, ageSeconds, maxAgeSeconds, staleness flag, observation count, timezone, resolution, and a disclaimer. Also includes a prior period comparison object.","failureModes":["Data may be stale if the background poll has not refreshed recently (stale: true in response)","windowHours exceeding 72 may be rejected at L2 tier","Invalid family names in the families field may result in empty or error responses","Service downtime on Railway hosting may cause HTTP 5xx errors","Figures are aggregated from public sources and may not match official PJM data products exactly"],"whenToPreferThis":"Choose this endpoint when you need quick, aggregated descriptive statistics on PJM RTO electricity prices, zonal spreads, or load over a configurable trailing window without needing official PJM data-feed access. Prefer it for lightweight market monitoring, dashboards, or agent workflows that need semi-live summaries rather than tick-level or forecast data. Not suitable when official PJM certified data is required, when a price forecast is needed, or when look-back windows exceed 72 hours.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:31:55.624Z","isFirstParty":false}