D2 sql+markdown, run 2: the query session
17 queries0 failed5 rounds
The opening prompt
## The data
You can't see the data, but you can query it. It is in DuckDB, in the tables below. Write DuckDB SQL.
To run queries, reply with one or more fenced blocks (```sql), and nothing else is needed:
each is run and its results sent back to you. You have up to 8 rounds of queries.
When you have what you need, reply with the final answers and no queries.
All columns are text (VARCHAR); dates are ISO strings.
- `entities` (370 rows): entity_id, name, lei, country, entity_type, parent_id, source_system
- `instruments` (115 rows): instrument_id, description, issuer_id, guarantor_id, seniority, currency, maturity
- `rating_actions` (787 rows): action_id, date, rated_id, rating_type, ccy_basis, action, rating, outlook, watch, comment
### ontology.md (the vocabulary the data uses)
# Credit ratings: a teaching ontology
Entities, instruments, rating actions and the codes the data uses, each with a definition that states what it means and how to read it. Invented for an experiment; not a model of any real rating agency.
## Classes
### Entity
A legal entity: a company, bank, finance subsidiary or sovereign. An entity is identified by its LEI (LEI), not by its name or record ID. The data holds records from more than one source system (source system), so the same entity can appear as several records with different IDs and differently spelled names: two records with the same LEI are the same entity, and every fact recorded against either record is a fact about that one entity.
### Instrument
A debt instrument, such as a bond or note, issued by an entity (issuer). An instrument's rating is not the issuer's rating: it can sit above or below it depending on seniority (seniority) and on any guarantee (guarantor).
### Rating action
Something a rating agency did to a rating on a date (date): assigned, affirmed, upgraded, downgraded, placed on Watch or withdrawn it. Each action applies to one rated thing (rated thing), one rating type (rating type) and, for issuer ratings, one currency basis (currency basis). A rating holds from its action date until the next action on the same thing, type and basis: so the rating on a date D is the one set by the latest action on or before D, and the current rating is the latest action overall. rating always holds the rating as it stands after the action, including when it did not change.
## Properties
### name (CSV column `name`)
The name as the source system spells it. Names are not identifiers: the same entity can be spelled differently in different systems.
### LEI (CSV column `lei`)
Legal Entity Identifier: the identifier that says which legal entity a record describes. Same LEI, same entity. Sovereigns have none.
### country (CSV column `country`)
ISO-style code of the country where the entity is domiciled. It decides which Country Ceiling, if any, applies to the entity's foreign-currency ratings. VD is the Republic of Valdoria and CV the Republic of Corvenia (both invented).
### entity type (CSV column `entity_type`)
What kind of entity it is: a concept of the scheme Entity types.
### parent (CSV column `parent_id`)
The entity that owns and controls this one.
### source system (CSV column `source_system`)
The internal system the record comes from (RATINGS, RESEARCH, QA). Each system keeps its own records of the same entities; see Entity. RATINGS is the system of record: where records of the same entity disagree on name, country or parent, the RATINGS record holds. QA records are test data, created to check the systems: they describe no real entity, so a QA record, and every action recorded against it, must be ignored.
### description (CSV column `description`)
The instrument's name: issuer, coupon and maturity year.
### issuer (CSV column `issuer_id`)
The entity that issued the instrument and owes the payments. Not necessarily the entity whose credit risk the investor takes: see guarantor.
### guarantor (CSV column `guarantor_id`)
An entity that guarantees the instrument's payments if the issuer does not pay. A guaranteed instrument carries the guarantor's credit risk, so it is rated in line with the guarantor's issuer rating, not the issuer's.
### seniority (CSV column `seniority`)
Where the instrument ranks in repayment if the issuer fails: a concept of the scheme Seniorities.
### currency (CSV column `currency`)
The currency the instrument pays in, as an ISO 4217 code, or one of two local codes: XVD, the Valdorian dollar, the domestic currency of VD; and CVK, the Corvenian krone, the domestic currency of CV. Debt in a currency other than the domestic one of the issuer's country is exposed to that country's transfer and convertibility risk: see Country Ceiling (CC). Debt in the domestic currency is local-currency debt and is not capped by the ceiling.
### maturity (CSV column `maturity`)
The date the instrument is due to be repaid.
### date (CSV column `date`)
The date the action took effect.
### rated thing (CSV column `rated_id`)
What the action is about: an entity (for issuer ratings and Country Ceilings) or an instrument (for instrument ratings).
### rating type (CSV column `rating_type`)
Which kind of rating the action concerns: a concept of the scheme Rating types. Different types are different ratings and are never compared or combined with each other.
### currency basis (CSV column `ccy_basis`)
For issuer ratings, whether the rating covers foreign-currency (FC) or local-currency (LC) obligations: a concept of the scheme Currency bases. An entity can have both, with different values.
### action (CSV column `action`)
What was done: a concept of the scheme Action types. Only upgrades and downgrades change a rating.
### rating (CSV column `rating`)
The rating after the action, on the scale of its rating type. Long-term scale, strongest to weakest: AAA, AA+, AA, AA-, A+, A, A-, BBB+, BBB, BBB-, BB+, BB, BB-, B+, B, B-, CCC, CC, C, RD, D. Investment grade means BBB- or higher; BB+ and below is speculative grade (high yield). RD (restricted default) means the issuer has defaulted on some material obligations, for instance by completing a distressed debt exchange, without being wound up: RD is a default. D means a general default. Short-term scale, strongest to weakest: F1+, F1, F2, F3, B, C, RD, D. WD means the rating was withdrawn (see Withdrawn (WD)): it is not a point on either scale.
### outlook (CSV column `outlook`)
The likely direction of a long-term rating over the next one to two years: a concept of the scheme Outlooks. An outlook is not a rating: revising it does not change the rating.
### rating watch (CSV column `watch`)
Set when the rating is on Rating Watch: a concept of the scheme Rating Watches. A Watch is not a rating change.
### comment (CSV column `comment`)
The analyst's note on the action, such as the reason for a withdrawal.
## Codes
The codes as they appear in the data, grouped by list.
### Rating types
- **LTIDR**, Long-term Issuer Default Rating: The issuer's own creditworthiness: how likely it is to default on its obligations, on the long-term scale. This is what people usually mean by an entity's rating. The foreign-currency (FC) one is the headline rating; there may also be a local-currency (LC) one.
- **STIDR**, Short-term Issuer Default Rating: The issuer's ability to meet obligations falling due within about a year, on the short-term scale (F1+ to D). Not comparable with long-term ratings.
- **INST**, Instrument rating: The rating of one specific instrument. It starts from the issuer's long-term rating and is notched for the instrument's seniority and expected recovery: subordinated debt is usually rated below the issuer, and guaranteed debt is rated on the guarantor. An instrument rating is never the rating of the issuer.
- **CC**, Country Ceiling: Not a rating of anyone. A cap, set for a country, on the foreign-currency ratings of entities domiciled there and of their foreign-currency debt. It reflects transfer and convertibility risk: the risk that the government stops money being converted or sent abroad, so even a sound company could not pay foreign-currency debt. Foreign-currency ratings of entities in the country are generally no higher than the ceiling; local-currency ratings are not capped. A Country Ceiling is not the sovereign's own issuer rating.
- **CO**, Credit opinion: A private, point-in-time view of an entity's credit, given to one client. It is not a published rating and not an issuer rating: never count it as a rating, and never report its value as the entity's rating.
### Currency bases
- **FC**, Foreign currency: Covers obligations in foreign currency, so it is subject to the Country Ceiling.
- **LC**, Local currency: Covers obligations in the currency of the entity's own country; not subject to the Country Ceiling.
### Action types
- **AS**, Assigned: A first rating is given.
- **AF**, Affirmed: The rating is reviewed and kept the same. The outlook may be revised in the same action; that does not make it an upgrade or a downgrade.
- **UG**, Upgraded: The rating is raised.
- **DG**, Downgraded: The rating is lowered. The only action that counts as a downgrade.
- **RW**, Placed on Rating Watch: The rating is flagged as likely to change soon, usually within about six months, in the direction rating watch gives. The rating itself is unchanged: not a downgrade.
- **WD**, Withdrawn: The agency stops maintaining the rating, often for commercial reasons (the issuer no longer pays for it, or the debt is repaid). After a withdrawal the entity has no rating of that type. A withdrawal is not a credit event: it says nothing about default, and is not a downgrade.
- **EX**, Expected rating: A rating signalled before an instrument's final documents are signed. It is not yet a rating: the instrument stays unrated until an Assigned (AS) action confirms it.
### Outlooks
- **STA**, Stable: No direction expected.
- **POS**, Positive: The rating may go up over one to two years.
- **NEG**, Negative: The rating may go down over one to two years. Not a downgrade.
### Rating Watches
- **RWN**, Rating Watch Negative: A downgrade is likely in the near term. Not a downgrade yet.
### Seniorities
- **SU**, Senior unsecured: Ranks with the issuer's ordinary debts; usually rated at the level of the issuer's long-term rating.
- **SUB**, Subordinated: Repaid only after senior debt, so investors recover less in a default; usually rated one or more notches below the issuer's long-term rating.
### Entity types
- **CORP**, Corporate: A non-financial company.
- **BANK**, Bank: A bank.
- **FINSUB**, Finance subsidiary: A subsidiary that exists to raise debt for its parent group. It usually has no issuer rating of its own; its debt is guaranteed by the parent, so investors take the parent's credit risk.
- **SOV**, Sovereign: A national government. A sovereign record can carry a Country Ceiling, issuer ratings, or both: they are different things, and the ceiling is not the sovereign's rating.
## Questions
Answer each question below from the data above. Start each answer on a new line with its
number in bold, like **Q1.**, give the direct answer first, then at most two sentences of
reasoning that cite the records (IDs) you relied on.
Then end with one JSON block (```json) holding the structured answer to each question listed
here, with exactly these fields, shaped like {"Q1": {"field": value}, ...}. Name entities by their record ID: the entity_id in the CSV files, or the part of the IRI after lad: in the RDF (E01, not Kestrel Energy plc).
- Q1: rating (a rating, or "none")
- Q2: downgraded ("yes", "no" or "depends")
- Q3: investment_grade ("yes", "no" or "depends"), rating (a rating, or "none")
- Q4: outlook (an outlook)
- Q5: risk_of (a record ID), rating (a rating, or "none")
- Q7: issuers (a list of record IDs)
- Q8: entities (a list of record IDs)
- Q9: count (a number)
- Q10: investment_grade ("yes", "no" or "depends")
- Q11: rating (a rating, or "none")
- Q12: rating (a rating, or "none")
- Q13: count (a number)
- Q14: rating (a rating, or "none")
- Q15: rating (a rating, or "none")
- Q16: changed ("yes", "no" or "depends")
- Q17: downgraded ("yes", "no" or "depends")
- Q18: issuers (a list of record IDs)
- Q19: issuers (a list of record IDs)
- Q20: in_default ("yes", "no" or "depends")
- Q21: entities (a list of record IDs)
- Q22: entities (a list of record IDs)
- Q23: rating (a rating, or "none")
- Q24: investment_grade ("yes", "no" or "depends")
- Q25: count (a number)
- Q26: rating (a rating, or "none")
- Q27: rating (a rating, or "none")
- Q28: rating (a rating, or "none")
- Q29: rating (a rating, or "none")
- Q30: entities (a list of record IDs)
- Q31: any ("yes", "no" or "depends")
- Q32: parent (a record ID)
- Q33: risk_of (a record ID), rating (a rating, or "none")
- Q34: same_group ("yes", "no" or "depends")
- Q35: count (a number)
- Q36: count (a number)
- Q37: count (a number)
- Q38: same ("yes", "no" or "depends")
- Q39: rating (a rating, or "none")
- Q40: count (a number)
- Q41: rating (a rating, or "none")
- Q42: country (a country code)
- Q43: count (a number)
- Q44: local_currency ("yes", "no" or "depends")
- Q45: above_ceiling ("yes", "no" or "depends")
- Q46: issuer_rating ("yes", "no" or "depends")
- Q47: rating (a rating, or "none")
- Q48: count (a number)
Q1. What was Kestrel Energy's rating on 1 January 2025?
Q2. Has Kestrel Energy been downgraded in 2026?
Q3. Is Kestrel Energy's 2031 note investment grade?
Q4. What is Northwind Holdings' current outlook?
Q5. Whose credit risk does a holder of the Northwind Finance 2030 notes take, and how is it rated?
Q6. Why is Valdoria Telecom's foreign-currency rating lower than its local-currency rating?
Q7. Which issuers were downgraded in 2026?
Q8. Which entities were in default on 1 October 2026?
Q9. As of 1 October 2026, how many distinct issuers hold an issuer rating?
Q10. Is Valdoria Telecom investment grade?
Q11. What was Marlow Utilities' rating on 1 June 2025?
Q12. What was Marlow Utilities' rating on 1 January 2024?
Q13. How many times has Marlow Utilities been downgraded?
Q14. What was Halden Foods' rating on 1 January 2024?
Q15. What was Halden Bank's rating on 1 January 2026?
Q16. Has Marlow Utilities' rating changed since 1 January 2025?
Q17. Was Orrin Bank downgraded in 2026?
Q18. Which issuers were on Rating Watch Negative on 1 October 2026?
Q19. Which issuers had a Negative outlook on 1 October 2026?
Q20. Is Pellam Retail in default?
Q21. Which entities had an issuer rating at some point but no longer had one on 1 October 2026?
Q22. Which entities have ever been in default?
Q23. What is Kestrel Energy's short-term rating?
Q24. Is Kestrel Energy's issuer rating investment grade?
Q25. How many instruments held an investment-grade rating on 1 October 2026?
Q26. What is Corvenia Power's local-currency rating?
Q27. How is Corvenia Power's 2032 note rated?
Q28. What is the Republic of Corvenia's foreign-currency issuer rating?
Q29. What is the Republic of Valdoria's issuer rating?
Q30. Which entities had a foreign-currency issuer rating exactly at their country's ceiling on 1 October 2026?
Q31. Did any company have a foreign-currency issuer rating above its country's ceiling on 1 October 2026?
Q32. Who is Halden Leasing's ultimate parent?
Q33. Whose credit risk does a holder of the Halden Leasing 2028 notes take, and how is it rated?
Q34. Is Halden Foods part of the same group as Halden Bank?
Q35. How many entities are in the Halden group, the parent included?
Q36. How many entities are in the Northwind group, the parent included?
Q37. How many distinct legal entities does the data describe?
Q38. Are Orrin Bank AG and Orrin Bancorp Inc the same entity?
Q39. What is Northwind Holdings' current rating?
Q40. How many distinct issuers domiciled in GB held an issuer rating on 1 October 2026?
Q41. What is Brindle Capital's current rating?
Q42. In which country is Halden Bank domiciled?
Q43. How many distinct entities are domiciled in Luxembourg (LU)?
Q44. Is Valdoria Telecom's 2027 note a local-currency obligation?
Q45. Is Valdoria Telecom's 2027 note rated above what Valdoria's Country Ceiling allows?
Q46. Does Halden Leasing have an issuer rating?
Q47. How is Corvenia Power's 2034 note rated?
Q48. How many instruments held a rating on 1 October 2026?The model
I'll start by exploring the entities.
```sql
SELECT * FROM entities ORDER BY name;
```
```sql
SELECT * FROM instruments ORDER BY issuer_id;
```Query results
Query 1:
| entity_id | name | lei | country | entity_type | parent_id | source_system |
|---|---|---|---|---|---|---|
| E1057 | Batan Foods plc | 2138009BPHEDKSZHFF68 | GB | BANK | | RATINGS |
| E1278 | Bavil Chemicals plc | 815600LDQIUCNNTOL286 | GB | CORP | | RATINGS |
| E1308 | Bavom Logistics AG | 549300IGMPC8HEIKND87 | DE | CORP | | RATINGS |
| E1292 | Bavon Industries plc | 549300RN36RWXRZPV988 | GB | CORP | E1061 | RATINGS |
| E1335 | Belor Telecom Finance plc | 9695001Q1J0GREF1Y798 | NL | FINSUB | E1234 | RATINGS |
| E1234 | Belor Telecom SpA | 815600HZK0IK4Q5GF769 | IT | CORP | | RATINGS |
| E1159 | Benem Property AG | 213800VMJXKPLM9ZIL74 | DE | BANK | | RATINGS |
| E1105 | Betin Pharma SA | 3912002RB0IGZZN6RN49 | GR | CORP | | RATINGS |
| E1288 | Binod Foods AG | 213800QEX3DTCPW3E621 | DE | BANK | | RATINGS |
| E1340 | Biram Steel plc | 213800CSTQH7UO0A8E29 | GB | CORP | | QA |
| E1351 | Bisad Property plc | 969500MERFFSB2CHQE09 | GB | CORP | | QA |
| E1322 | Bivid Mining SA | 7245003MRSQ8C823Z590 | FR | CORP | | RATINGS |
| E1343 | Bolem Energy plc | 969500F1DAQZF8FNJS41 | GB | CORP | | QA |
| E1191 | Boler Steel SA | 815600G5CMC2QEQUCG23 | FR | CORP | E1177 | RATINGS |
| E1135 | Bosar Retail plc | 549300C138N2A3615Y70 | GB | BANK | | RATINGS |
| E1242 | Botin Logistics SpA | 213800VNDQV0VN6FVU72 | IT | BANK | | RATINGS |
| E16 | Brindle Capital Ltd | 5493003Z3PXXR7KNFM81 | GB | CORP | | QA |
| E1010 | Buvir Industries Inc | 3912004R2GZJL49URX69 | US | CORP | | RATINGS |
| E1180 | COTAN FOODS SA | 391200USHZVHBK9FHP01 | IT | CORP | | RESEARCH |
| E1112 | Calem Logistics Inc | 969500QJ1AV6AZJSB088 | US | CORP | | RATINGS |
| E1305 | Cenin Media SA | 724500OHVHFTDDP42261 | FR | CORP | | RATINGS |
| E1320 | Cetem Industries SpA | 549300P8CEPUO96H4Y59 | IT | CORP | | RATINGS |
| E1228 | Cevad Chemicals plc | 724500JFK718P3DNW233 | GB | CORP | E1023 | RATINGS |
| E1211 | Cinam Energy plc | 2138006JVQYZA2IAU357 | GB | CORP | | RATINGS |
| E1015 | Civen Steel Inc | 815600JSNIJ4UFCBF662 | US | CORP | | RATINGS |
| E1131 | Conan Capital SA | 213800Q6JLQDFM0X9H13 | FR | CORP | | RATINGS |
| E15 | Corvenia Power SA | 213800PBQVHVBBH6GV02 | CV | CORP | | RATINGS |
| E1179 | Cotan Foods SA | 391200USHZVHBK9FHP01 | ES | CORP | E1162 | RATINGS |
| E1266 | Culed Chemicals BV | 724500CD625Q9LIJG838 | NL | BANK | | RATINGS |
| E1342 | Cuvol Water AG | 7245000RRKYSQSJ2DB31 | DE | CORP | | QA |
| E1148 | DAREN MINING SA | 391200E9TAHDZV7CY568 | FR | CORP | | RESEARCH |
| E1161 | DILED STEEL SA | 969500PM41NS2PBZU440 | FR | CORP | | RESEARCH |
| E1183 | Danad Pharma plc | 96950015W720OD9VIA28 | GB | CORP | E1025 | RATINGS |
| E1140 | Danem Industries Inc | 391200IBY0WQGAT3R586 | US | CORP | | RATINGS |
| E1147 | Daren Mining SA | 391200E9TAHDZV7CY568 | FR | CORP | | RATINGS |
| E1091 | Darod Holdings BV | 549300JYTOP4HB983N35 | NL | BANK | | RATINGS |
| E1142 | Dasem Media BV | 3912006CF5A1XYZZT210 | NL | CORP | | RATINGS |
| E1293 | Datod Airlines plc | 391200BREGDXY5M1LW07 | GB | CORP | E1166 | RATINGS |
| E1132 | Deler Logistics Inc | 549300WSZI986L1XA988 | US | BANK | | RATINGS |
| E1072 | Delil Chemicals plc | 969500W1RDU3ZPX1YB94 | GB | CORP | | RATINGS |
| E1279 | Denim Water SA | 8156000D8CUMX9DLYO45 | VD | CORP | | RATINGS |
| E1240 | Desar Steel BV | 724500VXDHSZ84PQJ546 | NL | CORP | | RATINGS |
| E1264 | Devam Water plc | 549300HH75F3NXLKV336 | GB | CORP | | RATINGS |
| E1160 | Diled Steel SA | 969500PM41NS2PBZU440 | FR | CORP | | RATINGS |
| E1130 | Dirim Capital SA | 391200TSQ5VA0DA4C007 | FR | CORP | | RATINGS |
| E1046 | Ditin Shipping Inc | 549300ZM08IADSAK3L87 | US | BANK | E1026 | RATINGS |
| E1189 | Divid Property plc | 549300EK7E9K0SBA9583 | GB | CORP | | RATINGS |
| E1313 | Divim Holdings SA | 213800P5J80HH9LC8L85 | VD | BANK | | RATINGS |
| E1113 | Dolal Telecom SA | 815600803W084A3YEL77 | ES | BANK | | RATINGS |
| E1164 | Dolod Capital SA | 815600XR7HVA2RVFKS52 | FR | CORP | | RATINGS |
| E1124 | Dolom Steel plc | 815600NAKDQJ2L7WWJ01 | GB | CORP | | RATINGS |
| E1040 | Dorid Mining AG | 549300SPMD9MEMFWMR12 | DE | CORP | | RATINGS |
| E1101 | Doror Telecom SA | 815600YUVYKAXDN9LE93 | VD | CORP | E1083 | RATINGS |
| E1061 | Dotan Retail AG | 5493002BLV266QJVIH90 | DE | CORP | | RATINGS |
| E1204 | Dular Logistics SA | 724500GM0Q12M8QDTL69 | FR | CORP | | RATINGS |
| E1314 | Dulem Retail plc | 815600VWY9ZIH3XVHE31 | GB | CORP | | RATINGS |
| E1280 | Dunim Utilities Inc | 391200R9GYZ7FHNTJR87 | US | CORP | | RATINGS |
| E1056 | Duver Shipping SpA | 969500DMA3PCFLMC4U98 | IT | BANK | | RATINGS |
| E1299 | FANER STEEL SA | 815600RCZP0ISY44E024 | ES | CORP | | RESEARCH |
| E1282 | Falan Mining Inc | 724500GZZJO3VTZ5OY05 | US | CORP | | RATINGS |
(310 more rows not shown)
Query 2:
| instrument_id | description | issuer_id | guarantor_id | seniority | currency | maturity |
|---|---|---|---|---|---|---|
| I02 | Kestrel Energy 6.25% notes due 2031 | E01 | | SUB | GBP | 2031-09-30 |
| I01 | Kestrel Energy 4.50% notes due 2030 | E01 | | SU | GBP | 2030-03-15 |
| I03 | Northwind Finance 3.75% notes due 2030 | E04 | E02 | SU | EUR | 2030-05-01 |
| I04 | Valdoria Telecom 5.00% notes due 2029 | E05 | | SU | USD | 2029-11-20 |
| I07 | Valdoria Telecom 4.25% notes due 2027 | E05 | | SU | XVD | 2027-08-31 |
| I1001 | Soson Airlines 5.50% notes due 2031 | E1006 | | SUB | USD | 2035-06-30 |
| I1002 | Golod Property 8.75% notes due 2031 | E1007 | | SU | USD | 2033-06-30 |
| I1003 | Sotil Retail 3.00% notes due 2031 | E1008 | | SU | GBP | 2034-06-30 |
| I1004 | Malam Chemicals 2.25% notes due 2035 | E1009 | | SU | USD | 2028-06-30 |
| I1005 | Posad Industries 4.00% notes due 2033 | E1012 | | SU | EUR | 2031-06-30 |
| I1006 | Pisol Pharma 4.75% notes due 2030 | E1013 | | SUB | USD | 2030-06-30 |
| I1007 | Toral Utilities 7.75% notes due 2028 | E1014 | | SU | EUR | 2033-06-30 |
| I1008 | Ponar Telecom 4.75% notes due 2035 | E1016 | | SU | EUR | 2033-06-30 |
| I1009 | Tosem Mining 2.75% notes due 2031 | E1018 | | SUB | USD | 2036-06-30 |
| I1010 | Finel Media 6.50% notes due 2035 | E1020 | | SU | EUR | 2036-06-30 |
| I1011 | Niner Pharma 3.25% notes due 2029 | E1021 | | SU | USD | 2035-06-30 |
| I1012 | Heled Water 6.25% notes due 2030 | E1023 | | SU | GBP | 2031-06-30 |
| I1013 | Kuvir Logistics 2.00% notes due 2027 | E1031 | | SU | EUR | 2027-06-30 |
| I1014 | Kavod Utilities 2.50% notes due 2032 | E1035 | | SU | USD | 2036-06-30 |
| I1015 | Lanon Telecom 4.75% notes due 2033 | E1038 | | SUB | EUR | 2032-06-30 |
| I1016 | Hiral Steel 6.00% notes due 2035 | E1041 | | SU | USD | 2034-06-30 |
| I1017 | Lised Pharma 4.50% notes due 2036 | E1048 | | SU | EUR | 2029-06-30 |
| I1018 | Paser Utilities 3.75% notes due 2027 | E1049 | | SUB | GBP | 2034-06-30 |
| I1019 | Sunar Holdings 8.50% notes due 2036 | E1050 | | SUB | USD | 2034-06-30 |
| I1020 | Witad Steel 5.00% notes due 2033 | E1052 | | SU | EUR | 2027-06-30 |
| I1021 | Duver Shipping 8.50% notes due 2032 | E1056 | | SU | EUR | 2030-06-30 |
| I1022 | Levem Foods 6.50% notes due 2035 | E1067 | | SUB | EUR | 2030-06-30 |
| I1023 | Mored Utilities 4.25% notes due 2032 | E1071 | | SUB | USD | 2033-06-30 |
| I1024 | Ganed Holdings 5.75% notes due 2035 | E1077 | | SU | EUR | 2032-06-30 |
| I1025 | Menir Shipping 7.50% notes due 2028 | E1078 | | SUB | EUR | 2034-06-30 |
| I1026 | Nevar Property 6.75% notes due 2036 | E1079 | | SU | GBP | 2028-06-30 |
| I1027 | Gilen Capital 2.00% notes due 2031 | E1082 | | SUB | USD | 2034-06-30 |
| I1028 | Givim Mining 5.75% notes due 2036 | E1085 | | SU | EUR | 2034-06-30 |
| I1029 | Gorar Steel 7.25% notes due 2033 | E1086 | | SUB | USD | 2035-06-30 |
| I1030 | Vitid Holdings 5.75% notes due 2032 | E1087 | | SU | EUR | 2034-06-30 |
| I1031 | Koved Holdings 2.50% notes due 2032 | E1088 | | SUB | EUR | 2033-06-30 |
| I1032 | Getel Utilities 7.25% notes due 2033 | E1090 | | SU | USD | 2032-06-30 |
| I05 | Halden Leasing 2.90% notes due 2028 | E11 | E10 | SU | EUR | 2028-06-30 |
| I1033 | Vavam Pharma 8.75% notes due 2032 | E1103 | | SUB | USD | 2032-06-30 |
| I1034 | Kisil Logistics 8.50% notes due 2031 | E1108 | | SU | EUR | 2033-06-30 |
| I1035 | Verod Logistics 3.00% notes due 2035 | E1114 | | SU | GBP | 2029-06-30 |
| I1036 | Piren Foods 2.50% notes due 2030 | E1115 | | SU | USD | 2033-06-30 |
| I1037 | Reter Shipping 8.00% notes due 2028 | E1118 | | SU | EUR | 2027-06-30 |
| I1038 | Conan Capital 4.75% notes due 2033 | E1131 | | SU | EUR | 2031-06-30 |
| I1039 | Larid Steel 8.50% notes due 2028 | E1141 | | SU | GBP | 2033-06-30 |
| I1040 | Woner Media 5.75% notes due 2027 | E1143 | | SUB | EUR | 2027-06-30 |
| I1041 | Kanim Pharma 3.25% notes due 2033 | E1145 | | SUB | EUR | 2036-06-30 |
| I1042 | Daren Mining 5.75% notes due 2030 | E1147 | | SU | EUR | 2035-06-30 |
| I1043 | Honel Shipping 4.50% notes due 2028 | E1149 | | SUB | EUR | 2029-06-30 |
| I1044 | Wavad Foods 6.75% notes due 2035 | E1155 | | SU | USD | 2036-06-30 |
| I1045 | Ruven Airlines 5.75% notes due 2032 | E1156 | | SUB | EUR | 2036-06-30 |
| I1046 | Diled Steel 8.75% notes due 2027 | E1160 | | SU | EUR | 2029-06-30 |
| I1047 | Wunam Telecom 5.25% notes due 2032 | E1162 | | SU | EUR | 2029-06-30 |
| I1048 | Wenar Water 8.25% notes due 2028 | E1163 | | SUB | EUR | 2028-06-30 |
| I1049 | Ranim Shipping 8.00% notes due 2028 | E1166 | | SUB | USD | 2036-06-30 |
| I1050 | Fivan Holdings 2.25% notes due 2035 | E1168 | | SU | EUR | 2027-06-30 |
| I1051 | Molar Shipping 3.25% notes due 2031 | E1188 | | SU | EUR | 2028-06-30 |
| I1052 | Divid Property 4.25% notes due 2033 | E1189 | | SUB | GBP | 2032-06-30 |
| I1053 | Piran Logistics 7.25% notes due 2034 | E1190 | | SU | EUR | 2028-06-30 |
| I1054 | Lenam Industries 2.50% notes due 2036 | E1195 | | SU | GBP | 2030-06-30 |
(55 more rows not shown)
Run more queries, or give the final answers.The model
<invoke name="sql">
</invoke>
```sql
SELECT * FROM entities WHERE entity_id IN ('E01','E02','E03','E04','E05','E06','E07','E08','E09','E10','E11','E12','E13','E14','E15','E16','E17','E18','E19','E20') OR entity_id NOT LIKE 'E1%' ORDER BY entity_id;
```
```sql
SELECT * FROM rating_actions WHERE rated_id NOT LIKE 'E1%' AND rated_id NOT LIKE 'I1%' ORDER BY rated_id, rating_type, ccy_basis, date;
```Query results
Query 1:
| entity_id | name | lei | country | entity_type | parent_id | source_system |
|---|---|---|---|---|---|---|
| CV | Republic of Corvenia | | CV | SOV | | RATINGS |
| E01 | Kestrel Energy plc | 7245002OOPBG04092E43 | GB | CORP | | RATINGS |
| E02 | Northwind Holdings plc | 213800PHEIYNJMHTDV74 | GB | CORP | | RATINGS |
| E03 | NORTHWIND HLDGS | 213800PHEIYNJMHTDV74 | GB | CORP | | RESEARCH |
| E04 | Northwind Finance BV | 213800LA5RYJLGXV2T85 | NL | FINSUB | E02 | RATINGS |
| E05 | Valdoria Telecom SA | 391200LESH03LMOY2U61 | VD | CORP | | RATINGS |
| E06 | Orrin Bank AG | 549300AMVE3VRVG7HK43 | DE | BANK | | RATINGS |
| E07 | Pellam Retail Ltd | 969500B6IUACELPI2291 | GB | CORP | | RATINGS |
| E08 | Saxby Shipping SA | 969500KOTZ1JFIZSG796 | GR | CORP | | RATINGS |
| E09 | Halden Group plc | 815600ASM9EHDG931T89 | GB | CORP | | RATINGS |
| E10 | Halden Bank AG | 391200QYPVFF2O9K2039 | DE | BANK | E09 | RATINGS |
| E11 | Halden Leasing SA | 549300XBZH4ULO9MQV55 | FR | FINSUB | E10 | RATINGS |
| E12 | Halden Foods Ltd | 213800IJDL4OJ4DG5T19 | GB | CORP | | RATINGS |
| E13 | Orrin Bancorp Inc | 815600O8X8K2F154N214 | US | BANK | | RATINGS |
| E14 | Marlow Utilities plc | 3912005AH2C1I9YF8106 | GB | CORP | | RATINGS |
| E15 | Corvenia Power SA | 213800PBQVHVBBH6GV02 | CV | CORP | | RATINGS |
| E16 | Brindle Capital Ltd | 5493003Z3PXXR7KNFM81 | GB | CORP | | QA |
| E17 | HALDEN BANK | 391200QYPVFF2O9K2039 | LU | BANK | | RESEARCH |
| VD | Republic of Valdoria | | VD | SOV | | RATINGS |
Query 2:
| action_id | date | rated_id | rating_type | ccy_basis | action | rating | outlook | watch | comment |
|---|---|---|---|---|---|---|---|---|---|
| A37 | 2024-01-01 | CV | CC | | AS | A | | | |
| A38 | 2024-01-01 | CV | LTIDR | FC | AS | BBB+ | STA | | |
| A39 | 2024-01-01 | CV | LTIDR | LC | AS | A- | STA | | |
| A01 | 2024-03-12 | E01 | LTIDR | FC | AS | A- | STA | | |
| A02 | 2025-06-20 | E01 | LTIDR | FC | DG | BBB | STA | | weaker cash flow after asset sale |
| A03 | 2026-02-10 | E01 | LTIDR | FC | AF | BBB | NEG | | |
| A04 | 2026-02-10 | E01 | STIDR | FC | AF | F2 | | | |
| A08 | 2023-11-01 | E02 | LTIDR | FC | AS | A | STA | | |
| A09 | 2025-09-15 | E03 | LTIDR | FC | AF | A | POS | | |
| A14 | 2025-04-01 | E05 | LTIDR | FC | AS | BB | STA | | |
| A13 | 2025-04-01 | E05 | LTIDR | LC | AS | BBB- | STA | | |
| A16 | 2024-05-01 | E06 | LTIDR | FC | AS | A- | STA | | |
| A17 | 2026-09-03 | E06 | LTIDR | FC | RW | A- | | RWN | |
| A18 | 2024-01-10 | E07 | LTIDR | FC | AS | BB | STA | | |
| A19 | 2026-05-12 | E07 | LTIDR | FC | WD | WD | | | commercial reasons |
| A20 | 2024-06-01 | E08 | LTIDR | FC | AS | B | STA | | |
| A21 | 2026-01-20 | E08 | LTIDR | FC | DG | CCC | | | |
| A22 | 2026-07-08 | E08 | LTIDR | FC | DG | RD | | | distressed debt exchange completed |
| A24 | 2023-05-01 | E09 | LTIDR | FC | AS | A | STA | | |
| A25 | 2026-03-01 | E09 | LTIDR | FC | AF | A | NEG | | |
| A05 | 2024-03-12 | I01 | INST | | AS | A- | | | |
| A06 | 2025-06-20 | I01 | INST | | DG | BBB | | | |
| A23 | 2024-03-12 | I02 | INST | | AS | BBB | | | |
| A07 | 2025-06-20 | I02 | INST | | DG | BB+ | | | |
| A10 | 2023-11-01 | I03 | INST | | AS | A | | | |
| A11 | 2025-09-15 | I03 | INST | | AF | A | | | |
| A15 | 2025-04-01 | I04 | INST | | AS | BB | | | |
| A28 | 2023-06-01 | I05 | INST | | AS | A- | | | |
| A29 | 2026-04-15 | I05 | INST | | DG | BBB+ | | | |
| A42 | 2024-03-01 | I06 | INST | | AS | A- | | | |
| A45 | 2025-04-01 | I07 | INST | | AS | BBB- | | | |
| A47 | 2026-09-01 | I08 | INST | | EX | A | | | |
| A12 | 2025-04-01 | VD | CC | | AS | BB | | | |
Run more queries, or give the final answers.The model
```sql
SELECT * FROM instruments WHERE instrument_id NOT LIKE 'I1%' ORDER BY instrument_id;
```
```sql
SELECT rating_type, ccy_basis, action, count(*) FROM rating_actions GROUP BY ALL ORDER BY ALL;
```
```sql
SELECT count(*) n, count(DISTINCT coalesce(lei, entity_id)) d, count(DISTINCT CASE WHEN source_system<>'QA' THEN coalesce(lei, entity_id) END) d_noqa FROM entities;
```
```sql
SELECT e.entity_id, e.name, e.country, e.source_system, e.parent_id, e.lei FROM entities e WHERE lei IN (SELECT lei FROM entities WHERE lei IS NOT NULL GROUP BY lei HAVING count(*)>1) ORDER BY lei, entity_id;
```
```sql
SELECT country, count(*) , count(DISTINCT coalesce(lei,entity_id)) FROM entities WHERE source_system<>'QA' AND country IN ('LU','GB') GROUP BY country;
```
<invoke name="sql">
</invoke>Query results
Query 1:
| instrument_id | description | issuer_id | guarantor_id | seniority | currency | maturity |
|---|---|---|---|---|---|---|
| I01 | Kestrel Energy 4.50% notes due 2030 | E01 | | SU | GBP | 2030-03-15 |
| I02 | Kestrel Energy 6.25% notes due 2031 | E01 | | SUB | GBP | 2031-09-30 |
| I03 | Northwind Finance 3.75% notes due 2030 | E04 | E02 | SU | EUR | 2030-05-01 |
| I04 | Valdoria Telecom 5.00% notes due 2029 | E05 | | SU | USD | 2029-11-20 |
| I05 | Halden Leasing 2.90% notes due 2028 | E11 | E10 | SU | EUR | 2028-06-30 |
| I06 | Corvenia Power 7.10% notes due 2032 | E15 | | SUB | USD | 2032-02-15 |
| I07 | Valdoria Telecom 4.25% notes due 2027 | E05 | | SU | XVD | 2027-08-31 |
| I08 | Corvenia Power 6.00% notes due 2034 | E15 | | SU | USD | 2034-09-01 |
Query 2:
| rating_type | ccy_basis | action | count_star() |
|---|---|---|---|
| CC | | AS | 2 |
| CO | | AS | 7 |
| INST | | AF | 1 |
| INST | | AS | 106 |
| INST | | DG | 3 |
| INST | | EX | 9 |
| LTIDR | FC | AF | 81 |
| LTIDR | FC | AS | 326 |
| LTIDR | FC | DG | 88 |
| LTIDR | FC | RW | 45 |
| LTIDR | FC | UG | 45 |
| LTIDR | FC | WD | 39 |
| LTIDR | LC | AF | 4 |
| LTIDR | LC | AS | 19 |
| LTIDR | LC | DG | 4 |
| LTIDR | LC | RW | 3 |
| LTIDR | LC | UG | 3 |
| LTIDR | LC | WD | 1 |
| STIDR | FC | AF | 1 |
Query 3:
| n | d | d_noqa |
|---|---|---|
| 370 | 344 | 331 |
Query 4:
| entity_id | name | country | source_system | parent_id | lei |
|---|---|---|---|---|---|
| E02 | Northwind Holdings plc | GB | RATINGS | | 213800PHEIYNJMHTDV74 |
| E03 | NORTHWIND HLDGS | GB | RESEARCH | | 213800PHEIYNJMHTDV74 |
| E1001 | Tunod Steel SA | FR | RATINGS | | 3912003R00FP6CNV6210 |
| E1002 | TUNOD STEEL SA | FR | RESEARCH | | 3912003R00FP6CNV6210 |
| E1147 | Daren Mining SA | FR | RATINGS | | 391200E9TAHDZV7CY568 |
| E1148 | DAREN MINING SA | FR | RESEARCH | | 391200E9TAHDZV7CY568 |
| E1116 | Hener Energy plc | GB | RATINGS | | 391200JN4T4KY2HCRU75 |
| E1117 | HENER ENERGY | GB | RESEARCH | | 391200JN4T4KY2HCRU75 |
| E1021 | Niner Pharma plc | GB | RATINGS | | 391200KLG6G4KVIMIU52 |
| E1022 | NINER PHARMA | GB | RESEARCH | | 391200KLG6G4KVIMIU52 |
| E10 | Halden Bank AG | DE | RATINGS | E09 | 391200QYPVFF2O9K2039 |
| E17 | HALDEN BANK | LU | RESEARCH | | 391200QYPVFF2O9K2039 |
| E1179 | Cotan Foods SA | ES | RATINGS | E1162 | 391200USHZVHBK9FHP01 |
| E1180 | COTAN FOODS SA | IT | RESEARCH | | 391200USHZVHBK9FHP01 |
| E1238 | Wevin Capital SA | GR | RATINGS | | 5493004IM0PRT8BSDK29 |
| E1239 | WEVIN CAPITAL SA | GR | RESEARCH | | 5493004IM0PRT8BSDK29 |
| E1213 | Winim Mining SA | FR | RATINGS | | 549300A64I73OEIC4R87 |
| E1214 | WINIM MINING SA | NL | RESEARCH | | 549300A64I73OEIC4R87 |
| E1059 | Kelim Media SA | CV | RATINGS | E1015 | 549300CRXZL5I1OT6L14 |
| E1060 | KELIM MEDIA SA | CV | RESEARCH | | 549300CRXZL5I1OT6L14 |
| E1152 | Kivel Property plc | GB | RATINGS | | 549300E50JHDJNBUGF22 |
| E1153 | KIVEL PROPERTY | GB | RESEARCH | | 549300E50JHDJNBUGF22 |
| E1261 | Munam Water SA | ES | RATINGS | | 549300H1N0EQEAZLE362 |
| E1262 | MUNAM WATER SA | ES | RESEARCH | | 549300H1N0EQEAZLE362 |
| E1209 | Malid Mining SpA | IT | RATINGS | | 549300HWTXXHJP2HKU38 |
| E1210 | MALID MINING SPA | DE | RESEARCH | | 549300HWTXXHJP2HKU38 |
| E1096 | Ravon Capital SA | CV | RATINGS | | 549300NTCTGRKRYIAN83 |
| E1097 | RAVON CAPITAL SA | CV | RESEARCH | | 549300NTCTGRKRYIAN83 |
| E1169 | Seren Telecom plc | GB | RATINGS | | 549300XV49ES64RGNQ00 |
| E1170 | SEREN TELECOM | GB | RESEARCH | | 549300XV49ES64RGNQ00 |
| E1138 | Konel Energy BV | NL | RATINGS | | 724500BSV4X2J7KUR535 |
| E1139 | KONEL ENERGY BV | NL | RESEARCH | | 724500BSV4X2J7KUR535 |
| E1318 | Sutem Water plc | GB | RATINGS | | 724500UQKUINIUB80J18 |
| E1319 | SUTEM WATER | GB | RESEARCH | | 724500UQKUINIUB80J18 |
| E1258 | Nirad Retail SA | FR | RATINGS | | 724500YEJSJ19G17TW94 |
| E1259 | NIRAD RETAIL SA | FR | RESEARCH | | 724500YEJSJ19G17TW94 |
| E1029 | Leson Telecom Inc | US | RATINGS | | 8156008DPX4I9DNKWN26 |
| E1030 | LESON TELECOM INC | US | RESEARCH | | 8156008DPX4I9DNKWN26 |
| E1103 | Vavam Pharma Inc | US | RATINGS | | 815600HDI8Y3IWGOOH22 |
| E1104 | VAVAM PHARMA INC | US | RESEARCH | | 815600HDI8Y3IWGOOH22 |
| E1245 | Gater Holdings SA | CV | RATINGS | | 815600LRX1P8142NMF42 |
| E1246 | GATER HOLDINGS SA | FR | RESEARCH | | 815600LRX1P8142NMF42 |
| E1298 | Faner Steel SA | ES | RATINGS | | 815600RCZP0ISY44E024 |
| E1299 | FANER STEEL SA | ES | RESEARCH | | 815600RCZP0ISY44E024 |
| E1310 | Natil Retail SpA | IT | RATINGS | | 9695000PSF2HLPO9AE57 |
| E1311 | NATIL RETAIL SPA | IT | RESEARCH | | 9695000PSF2HLPO9AE57 |
| E1156 | Ruven Airlines AG | DE | RATINGS | | 969500KYKHRI6N2WRN19 |
| E1157 | RUVEN AIRLINES | US | RESEARCH | | 969500KYKHRI6N2WRN19 |
| E1160 | Diled Steel SA | FR | RATINGS | | 969500PM41NS2PBZU440 |
| E1161 | DILED STEEL SA | FR | RESEARCH | | 969500PM41NS2PBZU440 |
| E1253 | Vusir Telecom SA | ES | RATINGS | | 969500QXEZ0NSV6EIW69 |
| E1254 | VUSIR TELECOM SA | ES | RESEARCH | | 969500QXEZ0NSV6EIW69 |
Query 5:
| country | count_star() | count(DISTINCT COALESCE(lei, entity_id)) |
|---|---|---|
| LU | 1 | 1 |
| GB | 84 | 78 |
Run more queries, or give the final answers.The model
<invoke name="sql">
<parameter name="query">
CREATE OR REPLACE TEMP VIEW canon AS
SELECT e.entity_id, e.source_system, e.country, e.entity_type, coalesce(e.lei,e.entity_id) k,
first(r.entity_id) OVER (PARTITION BY coalesce(e.lei,e.entity_id) ORDER BY (r.source_system='RATINGS') DESC) cid
FROM entities e JOIN entities r ON coalesce(r.lei,r.entity_id)=coalesce(e.lei,e.entity_id)
WHERE e.source_system<>'QA' AND r.source_system<>'QA';
</parameter>
</invoke>
```sql
CREATE OR REPLACE TEMP VIEW canon AS
SELECT DISTINCT e.entity_id, coalesce(e.lei,e.entity_id) k
FROM entities e WHERE e.source_system<>'QA';
```
```sql
CREATE OR REPLACE TEMP VIEW st AS
WITH a AS (
SELECT c.k, ra.*, row_number() OVER (PARTITION BY c.k, ra.rating_type, coalesce(ra.ccy_basis,'') ORDER BY ra.date DESC, ra.action_id DESC) rn
FROM rating_actions ra JOIN canon c ON c.entity_id=ra.rated_id
WHERE ra.date<='2026-10-01')
SELECT * FROM a WHERE rn=1;
SELECT 'Q9 issuers w/ LTIDR' q, count(DISTINCT k) v FROM st WHERE rating_type='LTIDR' AND rating<>'WD'
UNION ALL SELECT 'Q9b incl STIDR', count(DISTINCT k) FROM st WHERE rating_type IN('LTIDR','STIDR') AND rating<>'WD';
```
```sql
SELECT 'Q8 default', string_agg(DISTINCT rated_id,',') FROM st WHERE rating_type='LTIDR' AND rating IN('RD','D')
UNION ALL SELECT 'Q18 RWN', string_agg(DISTINCT rated_id,',') FROM st WHERE rating_type='LTIDR' AND watch='RWN'
UNION ALL SELECT 'Q19 NEG', string_agg(DISTINCT rated_id,',') FROM st WHERE rating_type='LTIDR' AND outlook='NEG' AND rating<>'WD' AND coalesce(watch,'')<>'x'
UNION ALL SELECT 'Q7 DG2026', string_agg(DISTINCT rated_id,',') FROM rating_actions WHERE action='DG' AND date BETWEEN '2026-01-01' AND '2026-12-31' AND rating_type IN('LTIDR')
UNION ALL SELECT 'Q22 ever default', string_agg(DISTINCT rated_id,',') FROM rating_actions WHERE rating IN('RD','D') AND rating_type IN('LTIDR','STIDR')
UNION ALL SELECT 'Q21 no longer', string_agg(DISTINCT rated_id,',') FROM st WHERE rating_type='LTIDR' AND rating='WD'
UNION ALL SELECT 'Q25 inst IG', count(*)::varchar FROM st WHERE rating_type='INST' AND rating IN('AAA','AA+','AA','AA-','A+','A','A-','BBB+','BBB','BBB-')
UNION ALL SELECT 'Q48 inst rated', count(*)::varchar FROM st WHERE rating_type='INST' AND rating NOT IN ('WD')
UNION ALL SELECT 'parents', string_agg(entity_id||'>'||parent_id,',') FROM entities WHERE parent_id IN ('E09','E10','E02','E03','E17');
```Query results
Query 1:
(no rows)
Query 2:
| q | v |
|---|---|
| Q9 issuers w/ LTIDR | 278 |
| Q9b incl STIDR | 278 |
Query 3:
| 'Q8 default' | string_agg(DISTINCT rated_id, ',') |
|---|---|
| Q8 default | E08 |
| Q18 RWN | E1132,E1260,E1099,E1133,E06,E1181,E1210,E1264,E1019,E1006,E1126,E1098,E1168,E1109,E1066,E1314,E1146,E1203,E1323,E1088,E1194,E1242,E1037,E1317,E1266,E1039,E1059,E1238,E1297,E1061,E1013,E1267 |
| Q19 NEG | E1056,E1282,E1294,E1055,E1046,E1064,E01,E1118,E1105,E1158,E1161,E1029,E1188,E1034,E1248,E1079,E1271,E1190,E1072,E1211,E1060,E09,E1262,E1300,E1005,E1080,E1263,E1228 |
| Q7 DG2026 | E1159,E1057,E1299,E1243,E1053,E1144,E1347,E1051,E1080,E08,E1112,E1186,E1348,E1344,E1350,E1151,E1294,E1285,E1290,E1064,E1343,E1093,E10,E1351,E1161,E1342,E1034,E1170,E1058,E1341,E1167,E16,E1346,E1340,E1163,E1213,E1300,E1307,E1228,E1349,E1263,E1255,E1229,E1345 |
| Q22 ever default | E08 |
| Q21 no longer | E1206,E1320,E1219,E1205,E1121,E1106,E1218,E1002,E1007,E1057,E1159,E1308,E1155,E1032,E1062,E1277,E1234,E1225,E1200,E1233,E1172,E1124,E1166,E07,E1021,E1279,E1254,E1063,E1041,E1140,E1138,E1107,E1244,E1316,E1084,E1048,E1076 |
| Q25 inst IG | 0 |
| Q48 inst rated | 0 |
| parents | E04>E02,E10>E09,E11>E10 |
Run more queries, or give the final answers.The model
```sql
SELECT * FROM rating_actions WHERE rated_id IN ('E10','E11','E12','E13','E14','E15','E17','E03','E16','I06','I07','I08') ORDER BY rated_id, rating_type, ccy_basis, date;
```
```sql
CREATE OR REPLACE TEMP VIEW rep AS
SELECT c.entity_id, c.k, (SELECT min(e2.entity_id) FROM entities e2 WHERE coalesce(e2.lei,e2.entity_id)=c.k AND e2.source_system='RATINGS') rid FROM canon c;
```
```sql
CREATE OR REPLACE TEMP VIEW st2 AS
SELECT * FROM (SELECT r.rid, r.k, ra.*, row_number() OVER (PARTITION BY r.k, ra.rating_type, coalesce(ra.ccy_basis,'') ORDER BY ra.date DESC, ra.action_id DESC) rn
FROM rating_actions ra JOIN rep r ON r.entity_id=ra.rated_id WHERE ra.date<='2026-10-01' AND ra.rating_type IN ('LTIDR','STIDR')) WHERE rn=1;
```
```sql
SELECT 'Q7' q, string_agg(DISTINCT r.rid, ',' ) v FROM rating_actions ra JOIN rep r ON r.entity_id=ra.rated_id WHERE ra.action='DG' AND ra.date BETWEEN '2026-01-01' AND '2026-12-31' AND ra.rating_type='LTIDR'
UNION ALL SELECT 'Q18', string_agg(DISTINCT rid||':'||rating||':'||coalesce(watch,'')||':'||ccy_basis, ',') FROM st2 WHERE rating_type='LTIDR' AND watch='RWN'
UNION ALL SELECT 'Q19', string_agg(DISTINCT rid||':'||action||':'||ccy_basis, ',') FROM st2 WHERE rating_type='LTIDR' AND outlook='NEG' AND rating<>'WD'
UNION ALL SELECT 'Q21', string_agg(DISTINCT rid, ',') FROM (SELECT rid, k FROM st2 WHERE rating_type='LTIDR' GROUP BY rid,k HAVING bool_and(rating='WD'))
UNION ALL SELECT 'Q9', count(DISTINCT k)::varchar FROM st2 WHERE rating_type='LTIDR' AND rating<>'WD'
UNION ALL SELECT 'Q40 GB', count(DISTINCT s.k)::varchar FROM st2 s JOIN entities e ON e.entity_id=s.rid WHERE s.rating_type='LTIDR' AND s.rating<>'WD' AND e.country='GB'
UNION ALL SELECT 'Q30 at ceiling', string_agg(DISTINCT s.rid||':'||s.rating||':'||e.country, ',') FROM st2 s JOIN entities e ON e.entity_id=s.rid WHERE s.rating_type='LTIDR' AND s.ccy_basis='FC' AND e.country IN ('CV','VD') AND e.entity_type<>'SOV'
UNION ALL SELECT 'Q22 ever default', string_agg(DISTINCT r.rid, ',') FROM rating_actions ra JOIN rep r ON r.entity_id=ra.rated_id WHERE ra.rating IN ('RD','D') AND ra.rating_type IN ('LTIDR','STIDR');
```
```sql
WITH s AS (SELECT ra.*, row_number() OVER (PARTITION BY rated_id ORDER BY date DESC, action_id DESC) rn FROM rating_actions ra WHERE rating_type='INST' AND date<='2026-10-01' AND action<>'EX')
SELECT count(*) FILTER (WHERE rating<>'WD') rated, count(*) FILTER (WHERE rating IN ('AAA','AA+','AA','AA-','A+','A','A-','BBB+','BBB','BBB-')) ig FROM s JOIN instruments i ON i.instrument_id=s.rated_id WHERE rn=1;
```Query results
Query 1:
| action_id | date | rated_id | rating_type | ccy_basis | action | rating | outlook | watch | comment |
|---|---|---|---|---|---|---|---|---|---|
| A09 | 2025-09-15 | E03 | LTIDR | FC | AF | A | POS | | |
| A26 | 2023-05-01 | E10 | LTIDR | FC | AS | A- | STA | | support from parent |
| A27 | 2026-04-15 | E10 | LTIDR | FC | DG | BBB+ | STA | | |
| A46 | 2025-02-01 | E11 | CO | | AS | BBB | | | |
| A30 | 2024-02-01 | E12 | LTIDR | FC | AS | BB- | STA | | |
| A31 | 2025-08-01 | E12 | LTIDR | FC | UG | BB | STA | | |
| A32 | 2024-07-01 | E13 | LTIDR | FC | AS | BBB | STA | | |
| A34 | 2023-01-15 | E14 | LTIDR | FC | AS | A- | STA | | |
| A36 | 2024-09-30 | E14 | LTIDR | FC | DG | BBB+ | STA | | |
| A35 | 2025-11-20 | E14 | LTIDR | FC | RW | BBB+ | | RWN | |
| A33 | 2026-05-01 | E14 | LTIDR | FC | AF | BBB+ | STA | | |
| A41 | 2024-03-01 | E15 | LTIDR | FC | AS | A | STA | | |
| A40 | 2024-03-01 | E15 | LTIDR | LC | AS | A+ | STA | | |
| A43 | 2024-04-01 | E16 | LTIDR | FC | AS | BBB- | STA | | |
| A44 | 2026-06-01 | E16 | LTIDR | FC | DG | BB+ | STA | | |
| A42 | 2024-03-01 | I06 | INST | | AS | A- | | | |
| A45 | 2025-04-01 | I07 | INST | | AS | BBB- | | | |
| A47 | 2026-09-01 | I08 | INST | | EX | A | | | |
Query 2:
(no rows)
Query 3:
(no rows)
Query 4:
| q | v |
|---|---|
| Q7 | E1151,E1294,E1159,E1057,E1243,E1053,E1144,E1058,E1167,E1080,E1285,E1290,E1034,E1051,E1064,E1093,E08,E1112,E1169,E1186,E1307,E1228,E1263,E1298,E1255,E1229,E10,E1160,E1163,E1213,E1300 |
| Q18 | E1194:A:RWN:FC,E1314:BBB:RWN:FC,E1264:B+:RWN:FC,E1146:BB:RWN:FC,E1317:BB:RWN:FC,E1238:AA-:RWN:FC,E1297:BBB:RWN:FC,E1059:BB-:RWN:LC,E1039:A:RWN:FC,E1061:A:RWN:FC,E1019:BBB-:RWN:LC,E1099:BB+:RWN:FC,E1203:BBB+:RWN:FC,E1242:BBB:RWN:FC,E1066:A-:RWN:FC,E1126:BB:RWN:FC,E1088:B+:RWN:FC,E1098:BBB-:RWN:FC,E1132:B+:RWN:FC,E1168:BBB-:RWN:FC,E1006:AA:RWN:FC,E1260:BBB-:RWN:FC,E1109:A+:RWN:FC,E1323:AA-:RWN:FC,E1266:BBB:RWN:FC,E1037:A:RWN:FC,E06:A-:RWN:FC,E1013:BB-:RWN:FC,E1267:A-:RWN:FC,E1181:A-:RWN:FC,E1209:BB:RWN:FC,E1133:B+:RWN:FC |
| Q19 | E1005:DG:FC,E1055:UG:FC,E1072:AF:FC,E1160:DG:FC,E1211:AF:FC,E1263:DG:FC,E1282:AF:FC,E1271:AF:FC,E1294:DG:FC,E1118:DG:FC,E1080:DG:FC,E01:AF:FC,E1064:UG:FC,E1190:UG:FC,E1158:AF:FC,E1228:DG:FC,E1029:UG:FC,E1248:AF:FC,E1188:UG:FC,E1059:AF:FC,E1034:DG:FC,E1079:AF:FC,E1105:UG:FC,E1046:UG:FC,E1261:AF:FC,E1300:DG:FC,E09:AF:FC,E1056:DG:FC |
| Q21 | E1206,E1320,E1219,E1218,E1225,E1233,E1200,E1234,E1076,E1121,E1205,E1062,E1244,E1316,E1063,E1138,E1140,E1041,E1107,E1277,E1166,E07,E1021,E1172,E1124,E1001,E1048,E1084,E1007,E1253,E1032,E1308,E1155,E1057,E1159 |
| Q9 | 278 |
| Q40 GB | 66 |
| Q30 at ceiling | E1307:BB-:VD,E1028:BB:VD,E1243:BB:CV,E1304:BB:CV,E1279:WD:VD,E1283:BB:CV,E1194:A:CV,E1071:B+:CV,E1101:BB:VD,E1245:B+:CV,E1106:B+:VD,E1136:A-:CV,E1039:A:CV,E1019:BB+:CV,E1126:BB:VD,E1236:BB:VD,E1217:BB-:CV,E1223:BB+:CV,E1229:BB+:CV,E05:BB:VD,E1059:BB-:CV,E1313:BB-:VD,E1096:BBB:CV,E15:A:CV,E1144:B+:CV,E1185:BB+:CV |
| Q22 ever default | E08 |
Query 5:
| rated | ig |
|---|---|
| 106 | 66 |
Run more queries, or give the final answers.The model
**Q1.** A-. E01's LTIDR FC was A- from A01 (2024-03-12). The downgrade to BBB (A02) came on 2025-06-20, after that date.
**Q2.** No. E01's only 2026 actions are affirmations (A03, A04). A03 moved the outlook to NEG without changing the rating.
**Q3.** No. The 2031 note I02 is subordinated and was downgraded to BB+ (A07), which is speculative grade.
**Q4.** Positive (POS). E02 and E03 share an LEI, so they are one entity. The latest action is A09 (E03, 2025-09-15), which gives outlook POS.
**Q5.** The holder takes Northwind Holdings' credit risk (E02, the guarantor of I03). E02's rating is A (A08, A09), and I03 itself is rated A.
**Q6.** The foreign-currency rating is capped by Valdoria's Country Ceiling, which is BB (A12). E05's FC rating is BB (A14) and its LC rating is BBB- (A13), which is not capped.
**Q7.** 31 issuers had a downgrade (DG) on a long-term issuer rating in 2026, listed in the JSON below. QA records are excluded and same-LEI records are merged. Instrument-only downgrades such as I05 are not counted.
**Q8.** E08. Its latest action is a downgrade to RD on 2026-07-08 (A22), and no later action exists.
**Q9.** 278 distinct issuers held a non-withdrawn long-term issuer rating on 2026-10-01. QA records are excluded and same-LEI records are merged.
**Q10.** Depends. E05's local-currency rating is BBB- (investment grade), but its foreign-currency rating is BB (speculative grade).
**Q11.** BBB+. This is the DG of A36 (2024-09-30). The Rating Watch on A35 came later and did not change the rating.
**Q12.** A-. This is A34 (2023-01-15), before any later action.
**Q13.** 1. Only A36 is a downgrade for E14. The watch (A35) and affirmation (A33) are not downgrades.
**Q14.** None. E12's first action is A30 on 2024-02-01, after the date asked.
**Q15.** A-. E10 was A- (A26) until the downgrade to BBB+ on 2026-04-15 (A27).
**Q16.** No. E14 was BBB+ on 2025-01-01 and is still BBB+ (A33). The watch and the affirmation did not change the rating.
**Q17.** No. E06's only 2026 action is a Rating Watch Negative (A17), which is not a downgrade.
**Q18.** 32 issuers were on RWN on 2026-10-01, listed in the JSON below. This includes E1059 and E1019, whose RWN is on the local-currency rating.
**Q19.** 28 issuers had a Negative outlook on 2026-10-01 on their latest long-term issuer rating, listed in the JSON below. Withdrawn ratings are excluded.
**Q20.** No. E07 was withdrawn for commercial reasons (A19), and a withdrawal is not a default. Its rating before that was BB.
**Q21.** 35 entities had an issuer rating that was later withdrawn, listed in the JSON below. Each had a withdrawn latest rating on 2026-10-01 and no active issuer rating of any basis.
**Q22.** E08. It is the only entity with RD or D (A22).
**Q23.** F2. E01's STIDR was affirmed at F2 (A04).
**Q24.** Yes. E01's LTIDR is BBB (A03), which is investment grade.
**Q25.** 66. Of the 106 instruments with a live rating (EX actions are ignored), 66 are rated BBB- or higher.
**Q26.** A+ (A40).
**Q27.** A- (I06, A42).
**Q28.** BBB+ (A38).
**Q29.** None. VD has only a Country Ceiling (A12, BB), which is not an issuer rating.
**Q30.** 8 entities had an FC rating exactly at the ceiling. At CV's ceiling of A: E1194, E1039, E15. At VD's ceiling of BB: E1028, E1101, E1126, E1236, E05.
**Q31.** No. No company in CV rates above A or in VD above BB.
**Q32.** E09, Halden Group plc. E11's parent is E10 (RATINGS record), and E10's parent is E09.
**Q33.** The holder takes Halden Bank's credit risk (E10, the guarantor of I05). E10's current rating is BBB+ (A27).
**Q34.** No. E12 has no parent and no link to E09, so it is not in the E09 group.
**Q35.** 3. The group is E09, E10 and E11. E17 shares E10's LEI and is the same entity.
**Q36.** 2. The group is E02 and E04. E03 is a duplicate record of E02.
**Q37.** 331. This counts distinct LEIs (sovereigns by their own ID) and excludes QA records.
**Q38.** No. E06 and E13 have different LEIs and different countries, so they are different entities.
**Q39.** A (A08, A09, same entity).
**Q40.** 66 distinct GB-domiciled issuers had a live issuer rating on 2026-10-01.
**Q41.** None. E16 is a QA record and must be ignored.
**Q42.** DE. The RATINGS record E10 holds, over RESEARCH record E17 (LU).
**Q43.** 0. The only LU record is E17, which is a duplicate of E10, and RATINGS says E10 is in DE.
**Q44.** Yes. I07 pays in XVD, VD's domestic currency.
**Q45.** No. I07 is rated BBB- (A45), above the BB ceiling, but a local-currency obligation is not capped by the ceiling.
**Q46.** No. E11 has only a Credit Opinion (A46), which is not a rating, and it has no LTIDR.
**Q47.** None. I08 has only an Expected rating (A47), so it stays unrated.
**Q48.** 106 instruments held a live rating on 2026-10-01 (EX actions ignored).
```json
{
"Q1":{"rating":"A-"},
"Q2":{"downgraded":"no"},
"Q3":{"investment_grade":"no","rating":"BB+"},
"Q4":{"outlook":"POS"},
"Q5":{"risk_of":"E02","rating":"A"},
"Q7":{"issuers":["E1151","E1294","E1159","E1057","E1243","E1053","E1144","E1058","E1167","E1080","E1285","E1290","E1034","E1051","E1064","E1093","E08","E1112","E1169","E1186","E1307","E1228","E1263","E1298","E1255","E1229","E10","E1160","E1163","E1213","E1300"]},
"Q8":{"entities":["E08"]},
"Q9":{"count":278},
"Q10":{"investment_grade":"depends"},
"Q11":{"rating":"BBB+"},
"Q12":{"rating":"A-"},
"Q13":{"count":1},
"Q14":{"rating":"none"},
"Q15":{"rating":"A-"},
"Q16":{"changed":"no"},
"Q17":{"downgraded":"no"},
"Q18":{"issuers":["E1194","E1314","E1264","E1146","E1317","E1238","E1297","E1059","E1039","E1061","E1019","E1099","E1203","E1242","E1066","E1126","E1088","E1098","E1132","E1168","E1006","E1260","E1109","E1323","E1266","E1037","E06","E1013","E1267","E1181","E1209","E1133"]},
"Q19":{"issuers":["E1005","E1055","E1072","E1160","E1211","E1263","E1282","E1271","E1294","E1118","E1080","E01","E1064","E1190","E1158","E1228","E1029","E1248","E1188","E1059","E1034","E1079","E1105","E1046","E1261","E1300","E09","E1056"]},
"Q20":{"in_default":"no"},
"Q21":{"entities":["E1206","E1320","E1219","E1218","E1225","E1233","E1200","E1234","E1076","E1121","E1205","E1062","E1244","E1316","E1063","E1138","E1140","E1041","E1107","E1277","E1166","E07","E1021","E1172","E1124","E1001","E1048","E1084","E1007","E1253","E1032","E1308","E1155","E1057","E1159"]},
"Q22":{"entities":["E08"]},
"Q23":{"rating":"F2"},
"Q24":{"investment_grade":"yes"},
"Q25":{"count":66},
"Q26":{"rating":"A+"},
"Q27":{"rating":"A-"},
"Q28":{"rating":"BBB+"},
"Q29":{"rating":"none"},
"Q30":{"entities":["E1194","E1039","E15","E1028","E1101","E1126","E1236","E05"]},
"Q31":{"any":"no"},
"Q32":{"parent":"E09"},
"Q33":{"risk_of":"E10","rating":"BBB+"},
"Q34":{"same_group":"no"},
"Q35":{"count":3},
"Q36":{"count":2},
"Q37":{"count":331},
"Q38":{"same":"no"},
"Q39":{"rating":"A"},
"Q40":{"count":66},
"Q41":{"rating":"none"},
"Q42":{"country":"DE"},
"Q43":{"count":0},
"Q44":{"local_currency":"yes"},
"Q45":{"above_ceiling":"no"},
"Q46":{"issuer_rating":"no"},
"Q47":{"rating":"none"},
"Q48":{"count":106}
}
```