Final exam

Cumulative across all sixteen modules: alternative data in finance, data science and SQL, consumer and luxury economics, investments and equity research, library data literacy, FinTech and data products, the business of the art market, data visualization and storytelling, machine learning on auction data, time series and market indices, auction theory and behavioral economics, data engineering and the API, data ethics, quality, and coverage bias, the auction business model, art market fundamentals, and data science for art market research. Time: 150 minutes. Total: 180 points. Format: sandbox for Sections 1 through 3; Section 2 also includes one API problem using a shared class API key from your instructor.

Read all four sections before starting. Use only the documented fields: designer, model, item_title, sale_date, usd_price_decimal, sale_estimates_high_usd_price, status, vendor, stock_ticker. Confirm exact table and column names in the schema tab, and confirm exact table names via GET /v1/tables before any API problem.


Section 1: Conceptual short answer (90 points, 5 points each)

1.1. Name the three ALT/FNDATA access surfaces and briefly state what each is for.

1.2. Explain why point-in-time correctness (using sale_date, and correctly handling status) matters when building any metric from this dataset.

1.3. Define pricing power and sell-through rate, and state one thing each reveals about consumer demand that a listed company's earnings report would not directly show.

1.4. Explain the recency caveat that applies to a quarterly demand index, and what an analyst should do before drawing a conclusion from one.

1.5. What does the stock_ticker field represent, and roughly how many companies does the underlying mapping cover?

1.6. Describe, briefly, the fact pattern of the Phillips and Movado divergence example, and what it illustrates about the relationship between secondary market results and listed company share prices.

1.7. In plain language suitable for a general, non-technical reader, explain why an unsold lot should not be treated the same as a sold lot when someone is trying to understand what an item is really worth.

1.8. Explain why building discovery endpoints such as GET /v1/tables and GET /v1/tables/{name}/schema into an API is good product design.

1.9. Explain what an auction house league table is, how it is built from the fine art data (name the field grouped on and the aggregates computed), and one thing it reveals about the art market as a business.

1.10. Name one way a chart of this data can mislead a reader, and describe how you would present the same figure honestly instead.

1.11. Explain target leakage in the context of predicting realized price, and explain how a point-in-time train and test split by sale_date avoids using future information.

1.12. Why must a quarterly demand index exclude or clearly caveat the newest one to two quarters, and what does the index legitimately show once that caveat is applied?

1.13. Explain how the high estimate acts as an anchor and what a pricing power above 1.0 says about bidder behavior relative to that anchor, and define the winner's curse in one sentence.

1.14. Describe how you retrieve every matching row from the POST query endpoint (the pagination step and the stopping condition), and explain why an aggregate such as a total or a count is computed client-side.

1.15. State two limitations you would disclose alongside any finding drawn from this dataset, and explain why the recency under-ingestion pattern is a coverage artifact rather than a market signal.

1.16. Name the two revenue streams an auction house earns on a public sale, explain why neither can be computed directly from this dataset, and name one business signal about a house that you can compute from the documented fields.

1.17. Name three characteristics that help form the price of an artwork, state which of them are documented fields and which are not, and explain how you would approximate a non-documented characteristic such as medium using item_title.

1.18. Explain why an artist-level index built from median realized price per period measures method and changing composition rather than pure appreciation, and name one demand signal you can read without relying on realized price.


Section 2: Query writing (50 points)

2.1 (15 points): Write a SQL query that computes pricing power for one designer of your choice, correctly restricted to sold records with a valid, non-zero high estimate.

-- your query here

2.2 (15 points): Write a SQL query that computes sell-through rate for the same designer, correctly including both sold and unsold records in the denominator.

-- your query here

2.3 (20 points): Using the shared class API key your instructor has provided, write a JSON request body for POST /v1/tables/{name}/query that retrieves the raw fields (designer, status, sale_date, usd_price_decimal, sale_estimates_high_usd_price) needed to compute both figures above for the same designer, using the eq or like operator on designer. Then, in two to three sentences, explain how you would confirm you had retrieved every matching row rather than just the first page.

POST /v1/tables/<table_name>/query
Header: X-API-Key: <class key>
Body:
{
  ...
}

Section 3: Applied mini analysis (25 points)

Choose one of three routes: a brand (using your Section 2 designer), a publicly traded luxury company (using its stock_ticker), or an auction house (using the vendor field in the fine art data to state its league-table position by total realized value and lot count). Write a 250 to 350 word applied analysis that states the relevant figures (your Section 2 figures for the brand route; the same figures filtered by stock_ticker for the company route; or the house's league-table position and, if you wish, the pricing power or sell-through of an artist it sells, for the house route), interprets what they suggest about demand or about the house's business, and explicitly discloses at least one limitation of your analysis (sample size, single time snapshot, the secondary-market-only nature of auction data, or the recency caveat if you reference any time-bucketed figure). If you choose the ticker route, briefly note one reason a cross-category roll-up (the same ticker appearing in more than one category table) would strengthen the analysis further.


Section 4: Plain language communication (15 points)

Rewrite your Section 3 analysis's core finding as a single short paragraph, no more than 100 words, suitable for a general audience with no background in finance or data (for example, a library workshop attendee or a family member). Avoid jargon such as "pricing power," "sell-through rate," or "median"; instead, describe the same finding using plain, concrete language.


Submission. Turn in this file with all four sections completed.