From 3e9db4c69a83c68bf587ddad434ab3479159516a Mon Sep 17 00:00:00 2001 From: Jose Miralles Date: Wed, 26 Nov 2025 18:00:39 +0000 Subject: [PATCH 1/4] Updating Readme.md to include public offer text and example. #20693 --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index 7ba01722..16af1277 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,56 @@ Period Range .InRelativePeriodRange(Period.FromWeeks(2), Period.FromDays(20)) ``` + +### GME Public Offer + +Artesian supports querying GME Public Offers which come in a custom and dedicated format. + +Performance note: +GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same file to be fetched multiple times. +For this reason: + • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page. + • Loop over markets explicitly to cover all required markets without redundant fetches. + +### Extract GME Public Offer + const int PAGE_SIZE = 250000; + + /* your Artesian configuration */; + + var _cfg = new ArtesianServiceConfig( + new Uri("https://arkive.artesian.cloud/{TENANT_NAME}/"), + your_API_Key); + + var poService = new GMEPublicOfferService(_cfg); + + # List of markets to cover. Extend as needed for your use case. + var markets = new Market[] + { + Market.MGP, + # Market.MSD, + # Market.MIA1 + }; + + + var gmePoResults = await poService.CreateRawCurveQuery() + .ForDate(new LocalDate(2025, 11, 1)) + .ForStatus(Status.ACC) + .ForPurpose(Purpose.BID) + .ForMarket(markets) + .WithPagination(1, PAGE_SIZE) + .ExecuteAsync(); + + Console.WriteLine($"Total offers fetched: {allData.Count}"); + + To construct a GME Public Offer Extraction the following must be provided. + + + + + + +
GME Public Offer QueryDescription
Time Extraction WindowAn extraction time window for data to be queried
StatusProvide a status to query
PurposeProvide a purpose or set of purposes to query
+ ### Unit of Measure Conversion Functionality ### Overview From be6bb86e07144f87e64c84355a496cfddbe17eaa Mon Sep 17 00:00:00 2001 From: Jose Miralles Date: Wed, 26 Nov 2025 18:00:39 +0000 Subject: [PATCH 2/4] Updating Readme.md to include public offer text and example. #20693 --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index 7ba01722..16af1277 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,56 @@ Period Range .InRelativePeriodRange(Period.FromWeeks(2), Period.FromDays(20)) ``` + +### GME Public Offer + +Artesian supports querying GME Public Offers which come in a custom and dedicated format. + +Performance note: +GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same file to be fetched multiple times. +For this reason: + • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page. + • Loop over markets explicitly to cover all required markets without redundant fetches. + +### Extract GME Public Offer + const int PAGE_SIZE = 250000; + + /* your Artesian configuration */; + + var _cfg = new ArtesianServiceConfig( + new Uri("https://arkive.artesian.cloud/{TENANT_NAME}/"), + your_API_Key); + + var poService = new GMEPublicOfferService(_cfg); + + # List of markets to cover. Extend as needed for your use case. + var markets = new Market[] + { + Market.MGP, + # Market.MSD, + # Market.MIA1 + }; + + + var gmePoResults = await poService.CreateRawCurveQuery() + .ForDate(new LocalDate(2025, 11, 1)) + .ForStatus(Status.ACC) + .ForPurpose(Purpose.BID) + .ForMarket(markets) + .WithPagination(1, PAGE_SIZE) + .ExecuteAsync(); + + Console.WriteLine($"Total offers fetched: {allData.Count}"); + + To construct a GME Public Offer Extraction the following must be provided. + + + + + + +
GME Public Offer QueryDescription
Time Extraction WindowAn extraction time window for data to be queried
StatusProvide a status to query
PurposeProvide a purpose or set of purposes to query
+ ### Unit of Measure Conversion Functionality ### Overview From f98ed85fa6ee8af5a11369987aaa40810e15efdf Mon Sep 17 00:00:00 2001 From: Jose Miralles Date: Mon, 1 Dec 2025 09:53:44 +0000 Subject: [PATCH 3/4] Resolving comments in PR. #20693 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16af1277..72b54c63 100644 --- a/README.md +++ b/README.md @@ -316,7 +316,7 @@ Period Range Artesian supports querying GME Public Offers which come in a custom and dedicated format. Performance note: -GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same file to be fetched multiple times. +GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same dataset to be fetched multiple times. For this reason: • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page. • Loop over markets explicitly to cover all required markets without redundant fetches. From 4004ad398ac8c4e62718bdb066524ed370911f38 Mon Sep 17 00:00:00 2001 From: Jose Miralles Date: Tue, 9 Dec 2025 13:12:45 +0000 Subject: [PATCH 4/4] Resolving comments from PR. #20693 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 72b54c63..17bdd1cf 100644 --- a/README.md +++ b/README.md @@ -316,7 +316,7 @@ Period Range Artesian supports querying GME Public Offers which come in a custom and dedicated format. Performance note: -GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same dataset to be fetched multiple times. +GME Public Offer data is partitioned by date, offerType, status, and market. Requesting very narrow subsets (for example a single status or offerType in several separate requests) does not improve performance and can cause the same data to be fetched multiple times. For this reason: • Use a large page size so that all data for a given (date, market, filters) is typically returned in a single page. • Loop over markets explicitly to cover all required markets without redundant fetches.