|
8 | 8 | TreasuryYield, |
9 | 9 | FedInflationExpectations, |
10 | 10 | FedLaborMarket, |
| 11 | + EUMerchantAggregate, |
| 12 | + EUMerchantHierarchy, |
11 | 13 | ) |
12 | 14 | from .models.common import Sort, Order |
13 | 15 | from .models.request import RequestOptionBuilder |
@@ -168,3 +170,103 @@ def list_labor_market_indicators( |
168 | 170 | raw=raw, |
169 | 171 | options=options, |
170 | 172 | ) |
| 173 | + |
| 174 | + def list_eu_merchant_aggregates( |
| 175 | + self, |
| 176 | + transaction_date: Optional[Union[str, date]] = None, |
| 177 | + transaction_date_gt: Optional[Union[str, date]] = None, |
| 178 | + transaction_date_gte: Optional[Union[str, date]] = None, |
| 179 | + transaction_date_lt: Optional[Union[str, date]] = None, |
| 180 | + transaction_date_lte: Optional[Union[str, date]] = None, |
| 181 | + name: Optional[str] = None, |
| 182 | + name_any_of: Optional[str] = None, |
| 183 | + name_gt: Optional[str] = None, |
| 184 | + name_gte: Optional[str] = None, |
| 185 | + name_lt: Optional[str] = None, |
| 186 | + name_lte: Optional[str] = None, |
| 187 | + user_country: Optional[str] = None, |
| 188 | + user_country_any_of: Optional[str] = None, |
| 189 | + channel: Optional[str] = None, |
| 190 | + channel_any_of: Optional[str] = None, |
| 191 | + consumer_type: Optional[str] = None, |
| 192 | + consumer_type_any_of: Optional[str] = None, |
| 193 | + parent_name: Optional[str] = None, |
| 194 | + parent_name_any_of: Optional[str] = None, |
| 195 | + parent_name_gt: Optional[str] = None, |
| 196 | + parent_name_gte: Optional[str] = None, |
| 197 | + parent_name_lt: Optional[str] = None, |
| 198 | + parent_name_lte: Optional[str] = None, |
| 199 | + limit: Optional[int] = None, |
| 200 | + sort: Optional[Union[str, Sort]] = None, |
| 201 | + params: Optional[Dict[str, Any]] = None, |
| 202 | + raw: bool = False, |
| 203 | + options: Optional[RequestOptionBuilder] = None, |
| 204 | + ) -> Union[Iterator[EUMerchantAggregate], HTTPResponse]: |
| 205 | + """ |
| 206 | + Aggregated consumer transactions from European credit card panels (UK, DE, FR, IT, ES, AT). |
| 207 | + Each row represents daily credit card, debit card, or open banking transactions |
| 208 | + (7-day lag from transaction date) at a tagged merchant or payment processor. |
| 209 | +
|
| 210 | + Includes ticker (Bloomberg) and industry mapping for ~250 US public companies. |
| 211 | + User counts provided across 8- and 28-day windows for normalization. |
| 212 | + """ |
| 213 | + url = "/consumer-spending/eu/v1/merchant-aggregates" |
| 214 | + |
| 215 | + return self._paginate( |
| 216 | + path=url, |
| 217 | + params=self._get_params(self.list_eu_merchant_aggregates, locals()), |
| 218 | + deserializer=EUMerchantAggregate.from_dict, |
| 219 | + raw=raw, |
| 220 | + result_key="results", |
| 221 | + options=options, |
| 222 | + ) |
| 223 | + |
| 224 | + def list_eu_merchant_hierarchy( |
| 225 | + self, |
| 226 | + lookup_name: Optional[str] = None, |
| 227 | + lookup_name_any_of: Optional[str] = None, |
| 228 | + lookup_name_gt: Optional[str] = None, |
| 229 | + lookup_name_gte: Optional[str] = None, |
| 230 | + lookup_name_lt: Optional[str] = None, |
| 231 | + lookup_name_lte: Optional[str] = None, |
| 232 | + ticker: Optional[str] = None, |
| 233 | + ticker_any_of: Optional[str] = None, |
| 234 | + ticker_gt: Optional[str] = None, |
| 235 | + ticker_gte: Optional[str] = None, |
| 236 | + ticker_lt: Optional[str] = None, |
| 237 | + ticker_lte: Optional[str] = None, |
| 238 | + listing_status: Optional[str] = None, |
| 239 | + listing_status_any_of: Optional[str] = None, |
| 240 | + active_from: Optional[Union[str, date]] = None, |
| 241 | + active_from_gt: Optional[Union[str, date]] = None, |
| 242 | + active_from_gte: Optional[Union[str, date]] = None, |
| 243 | + active_from_lt: Optional[Union[str, date]] = None, |
| 244 | + active_from_lte: Optional[Union[str, date]] = None, |
| 245 | + active_to: Optional[Union[str, date]] = None, |
| 246 | + active_to_gt: Optional[Union[str, date]] = None, |
| 247 | + active_to_gte: Optional[Union[str, date]] = None, |
| 248 | + active_to_lt: Optional[Union[str, date]] = None, |
| 249 | + active_to_lte: Optional[Union[str, date]] = None, |
| 250 | + limit: Optional[int] = None, |
| 251 | + sort: Optional[Union[str, Sort]] = None, |
| 252 | + params: Optional[Dict[str, Any]] = None, |
| 253 | + raw: bool = False, |
| 254 | + options: Optional[RequestOptionBuilder] = None, |
| 255 | + ) -> Union[Iterator[EUMerchantHierarchy], HTTPResponse]: |
| 256 | + """ |
| 257 | + Reference data mapping merchants to parent companies, tickers, sectors, |
| 258 | + and industries across Fable's European consumer transaction panel. |
| 259 | +
|
| 260 | + Use lookup_name + active_from/active_to to join with merchant-aggregates |
| 261 | + for point-in-time queries. |
| 262 | + """ |
| 263 | + url = "/consumer-spending/eu/v1/merchant-hierarchy" |
| 264 | + |
| 265 | + return self._paginate( |
| 266 | + path=url, |
| 267 | + params=self._get_params(self.list_eu_merchant_hierarchy, locals()), |
| 268 | + deserializer=EUMerchantHierarchy.from_dict, |
| 269 | + raw=raw, |
| 270 | + result_key="results", |
| 271 | + options=options, |
| 272 | + ) |
0 commit comments