PAPrathamesh Adarkar
BUILT WITH PALANTIR FOUNDRY / FINANCIAL SERVICES

Complaint
OperationsConsole.

From 99,898 consumer complaints to a focused queue of 1,060 records flagged for review.

I built a complaint review application in Palantir Foundry, connecting a repeatable data pipeline, Complaint objects, two Workshop views, and embedded AIP Analyst.

The data comes from the Consumer Financial Protection Bureau (CFPB): approximately six months of 2026 complaints across the United States, covering credit cards, checking or savings accounts, and money transfer, virtual currency, or money services.

Explore the Foundry build
ROLE

End-to-end project builder

PLATFORM

Pipeline Builder · Ontology · Workshop · AIP Analyst

DATA SNAPSHOT

March 18–September 1, 2026

01 / THE WORKING APPLICATIONOpen full screenshot ↗
FOUNDRY WORKSHOPComplaint Operations Console
Actual Foundry Workshop console with 99,898 complaints, 8,435 in progress, 1,060 flagged, 657 companies, company and issue charts, a complaint table, and selected-object properties.
Overall details view, built in Foundry Workshop. The review queue and selected-object properties connect aggregate patterns to individual records.
99,898Complaints ingested
657Companies represented
1,060Flagged for review
8,435Reported in progress
02 / TRY IT YOURSELF Open in a new tab ↗

The Foundry app can't be
shared. This one can.

The application above runs on a Palantir Foundry developer-tier instance behind authentication. Foundry has no route to hosting a Workshop app publicly — its Public Applications feature requires a separately built Ontology SDK frontend and an Information Security Officer approval within the enrollment, neither of which exists on a developer tier.

So I rebuilt it in Python. Same data, same review rule, same two views — the 99,898 complaints, the 1,060 flagged on CFPB's Timely response? = No, and the company view with its rate compared against the 1.06% baseline. It runs on the same pipeline that feeds the Foundry build.

What this replica is not

There is no ontology here. The Foundry version models Complaint, Company and Issue as object types with link traversals, so selecting a company walks the graph and every widget follows from one object set. This version filters a dataframe. The output looks similar; the mechanism is the thing the Foundry project was built to demonstrate, and it isn't reproduced.

It is a companion to that project, and it is labelled as one — not a stand-in.

LIVE · STREAMLIT Python replica · same pipeline, same figures
Pick a company in the sidebar to see their flagged rate against the 1.06% baseline, their weekly trend and their response mix. Free-tier apps sleep after a period of inactivity — if you see a wake-up screen, give it about thirty seconds. Open full screen ↗

Which complaints
deserve a closer look?

A complaint operations team needs both a place to start and the context to investigate. A national export contains useful signals, but an operator still has to move from aggregate counts to an individual complaint.

I designed this prototype around that transition: start with the overall picture, narrow the review queue, then select a company to inspect its complaint history, response mix, and flagged count. Embedded AIP Analyst supports follow-up questions against the complaint data.

Make the reason for review visible.
Keep the complaint behind it within reach.
Workshop · Company selector · AIP Analyst

Volume and review priority
tell different stories.

Capital One has the most complaints in this export. Synchrony has the most flagged records. The company view makes both measures visible, with the received-date trend and response breakdown alongside them.

SYNCHRONY FINANCIAL
4,281Total complaints
215Flagged for review

20.3% of all 1,060 flagged records in this dataset are associated with Synchrony. Its within-company flagged rate is 5.02%.

CAPITAL ONE FINANCIAL CORPORATION
8,830Total complaints
0Flagged for review

The largest complaint volume in this export, with zero records meeting the untimely-response rule. Volume alone does not determine inclusion in the queue.

Counts verified against the source CSV. These are snapshot observations, not a ranking of company quality or a claim about future risk.

COMPANY VIEW / SYNCHRONY FINANCIALOpen full screenshot ↗
Foundry Company-wise details view with Synchrony selected, a received-date trend, 4,281 total complaints, 215 flagged, a response breakdown, and AIP Analyst grouping flagged complaints by company.
Selecting Synchrony shows its metrics and response distribution. AIP Analyst’s visible analysis groups the flagged complaint set by company and counts the records.
COMPANY VIEW / CAPITAL ONEOpen full screenshot ↗
Foundry Company-wise details view with Capital One selected, 8,830 total complaints and zero flagged, a complaint trend, a response distribution, and AIP Analyst's company-count analysis.
The same view with Capital One selected. The time-series chart describes the available received dates; partial periods and publication delays can depress counts at the edges.
AI

A question, an aggregation,
and a result you can inspect.

I embedded Palantir’s AIP Analyst widget in Workshop so a reviewer can ask questions about the complaint data. The examples show company grouping, record-count aggregation, and source links beside the generated answer.

The selected company controls the company view. The illustrated AIP analyses compare companies across their own input object sets; their scope should be checked separately.

About the AIP Analyst widget ↗
One source → one repeatable workflow

Built through Foundry,
from ingestion to interface.

01

CFPB export

99,898 records
16 source columns

02

Pipeline Builder

Cleaned dataset
18 output columns

03

Complaint objects

Unique complaint ID
Typed properties

04

Workshop

Two operational views
Embedded AIP Analyst

A

Prepare trustworthy inputs

I standardized column names, converted complaint IDs to strings, updated legacy date types, and replaced literal “None” placeholders with nulls in five fields. Two Boolean rules identify untimely responses and records reported in progress.

B

Give each complaint an identity

I backed the Complaint object type with complaints_clean, using complaint_id as its primary key and title. Company, product, issue, response, and narrative remain properties of the same complaint.

C

Put context beside the queue

I built Overall details and Company-wise details views. Queue filters, a company selector, linked metrics, time-series and response charts, and complaint properties support progressively closer inspection. I embedded AIP Analyst for natural-language questions and inspectable aggregations.

Small choices.
A more defensible result.

01

A focused banking scope

I used three CFPB product categories across the United States: credit card; checking or savings account; and money transfer, virtual currency, or money service. Credit reporting and mortgages are outside this export’s scope.

02

Missing narrative ≠ unusable complaint

69.17% of records have no public narrative. I preserved those complaints because their structured properties still support review. The detail view can use the 30,798 narratives that are available.

03

Use the response flag for its actual meaning

The review rule uses the published “Timely response?” field. The date a complaint was sent to a company measures routing, not response time. “Flagged” means historically untimely; it does not mean the complaint is currently unresolved.

07 / THE OUTCOME

A concrete path
from a public record
to human review.

An explainable queue of 1,060 complaints, with the underlying records available for inspection.

The project demonstrates a complete Foundry path: ingest, transform, model, explore, and ask follow-up questions with AIP Analyst. The counts describe this data snapshot; this prototype has not been evaluated for time savings or resolution outcomes in a live operations team.

NEXT ITERATION

Add Company, Product, Issue, and State object links; introduce Review Cases with ownership and status Actions; then extend the existing time-series charts with baseline comparisons and alerts that account for publication delays.

SOURCE & SCOPE

Source: Consumer Financial Protection Bureau (CFPB), Consumer Complaint Database. This nationwide extract covers approximately six months of 2026: received dates March 18–September 1, 2026 (UTC), exported September 6, 2026. It includes credit card; checking or savings account; and money transfer, virtual currency, or money service complaints across the United States. Public complaint records are not a representative measure of customer experience; company counts should not be treated as market-share-adjusted comparisons.

CFPB Consumer Complaint Database ↗Field definitions ↗