Welcome SAP-RPT-1! What is it? How can you try it out?
sap
rpt-1
tabular
Author
Christian Wittmann
Published
December 12, 2025
SAP announced SAP-RPT-1 at TechEd 2025 in Berlin. What is it good for, and how can you try it out? In this blog post, I’ll walk you through the announcement and show you how to get started, both in a no-code approach and in Python.
SAP-RPT-1 - [ˈræpɪd] [wʌn]
What is SAP-RPT-1?
RPT stands for Relational Pre-Trained Transformer which SAP wants us to pronounce as ‘rapid one’. To make sure this is pronounced correctly, they even write out phonetic transcription [ˈræpɪd] [wʌn] - so no excuses here 😉.
If you are looking for a quick executive summary, check out Philipp Herzig’s Keynote presentation which explains that RPT-1 is a new type of AI model that is optimized for making predictions on tabular data. Unlike LLMs which generate the next word (token) for a text sequence, RPT-1 predicts the next field in a table row. Putting this in a practical example, Philipp mentions that RPT-1 can predict, for example, delivery times or customer churn, essentially replacing traditional ML models like XGBoost or Random Forest with a single RPT-1 model.
For now, SAP-RPT-1 comes in 3 flavors:
SAP-RPT-1-Small: A small model optimized for super-fast predictions
SAP-RPT-1-Large: A larger model optimized for highest accuracy
SAP-RPT-1-OSS: An “open source” version for everybody to learn (Github / Huggingface)
The way Philipp talked about the OSS version, I assume that this is also the version which is available in the RPT Playground, your starting point to try out RPT-1 in a no-code environment.
Trying out SAP-RPT-1 in the RPT Playground
The easiest way to get started with RPT-1 is the RPT Playground. SAP has prepared some data, but you can also upload your own tabular data (CSV files) and use RPT-1 to make predictions on it. The trick for making predictions with RPT-1 is to mask the field you want to predict with [PREDICT]. Once you click on the “Predict” button, RPT-1 will fill in the masked field with its prediction.
While SAP’s prepared use cases work well, you’ll get a better sense of RPT-1’s capabilities by trying it with your own data. To help you get started, I’ve prepared the example data from the coding tutorial (allowing you to predict sales groups from Product, Price, Customer, Country) in a CSV file for you to download. You can easily modify this file in Excel (or any other editor), save as CSV and try your own data in the RPT Playground. If you’d prefer to start simple, try out the example CSV file I have prepared for you.
If you’re not a coder, simply skip the coding section and jump right to the conclusion.
Trying out SAP-RPT-1 in Python
If you want to get your hands dirty with code, I have prepared a Jupyter Notebook that shows in detail how to use RPT-1.
Prerequisites
Assuming you have access to the RPT Playground and that you have downloaded the Jupyter notebook, you need to fetch your access token from the bottom of the playground page.
To avoid storing your credentials in the notebook, copy & paste the token (RPT_TOKEN) into a .env file in the same folder where you have stored the Jupyter notebook. It should look like this:
RPT_TOKEN="eyJhbGciOiJIUzI1" # truncated, your token is a lot longer
Once you’ve done that, you’re ready to run the notebook.
For better readability, here is the data in table format:
Code
import pandas as pdsample_data = pd.DataFrame(payload["rows"])sample_data
ID
PRODUCT
PRICE
CUSTOMER
COUNTRY
SALESGROUP
0
1001
Tablet
599.00
TechStart Inc
USA
[PREDICT]
1
1002
Standing Desk
325.50
Workspace Solutions
Germany
[PREDICT]
2
1003
Workstation
1450.00
Enterprise Systems Ltd
Canada
Enterprise Solutions
3
1004
Laptop Pro
1899.99
Business Corp
UK
Enterprise Solutions
4
1005
Gaming Laptop
1250.00
Digital Ventures
USA
Enterprise Solutions
5
1006
Smart Watch
299.99
Gadget Store
Australia
Consumer Electronics
6
1007
Ergonomic Chair
445.00
Office Outfitters
France
Office Furniture
7
1008
Storage Array
3500.00
CloudTech Systems
Singapore
Data Infrastructure
8
1009
Network Switch
175.50
ConnectIT
Japan
Networking Devices
As you can see, we have 4 attribute columns: Product, Price, Customer, Country. Our target column is the Sales Group. Therefore, the sales group is masked in 2 lines with the value [PREDICT], so that RPT-1 can demonstrate that it can fill in the missing values.
Running the predictions
To run the predictions, we will use the requests library to send an HTTP POST request to the RPT-1 API endpoint. The request will include our test data and the authorization token.
Code
from dotenv import load_dotenvimport osload_dotenv()auth_token = os.getenv("RPT_TOKEN")
Let’s merge these predictions back into the tabular format to see the results more clearly.
Code
preds_df = sample_data.copy(deep=True)preds_df["ID"] = preds_df["ID"].astype(int)for pred in preds: row_idx =int(pred["ID"]) predicted_value = pred["SALESGROUP"][0]["prediction"] preds_df.loc[preds_df["ID"] == row_idx, "SALESGROUP"] = predicted_valuepreds_df
ID
PRODUCT
PRICE
CUSTOMER
COUNTRY
SALESGROUP
0
1001
Tablet
599.00
TechStart Inc
USA
Enterprise Solutions
1
1002
Standing Desk
325.50
Workspace Solutions
Germany
Office Furniture
2
1003
Workstation
1450.00
Enterprise Systems Ltd
Canada
Enterprise Solutions
3
1004
Laptop Pro
1899.99
Business Corp
UK
Enterprise Solutions
4
1005
Gaming Laptop
1250.00
Digital Ventures
USA
Enterprise Solutions
5
1006
Smart Watch
299.99
Gadget Store
Australia
Consumer Electronics
6
1007
Ergonomic Chair
445.00
Office Outfitters
France
Office Furniture
7
1008
Storage Array
3500.00
CloudTech Systems
Singapore
Data Infrastructure
8
1009
Network Switch
175.50
ConnectIT
Japan
Networking Devices
For comparison, here is the original sample data before predictions:
Code
sample_data
ID
PRODUCT
PRICE
CUSTOMER
COUNTRY
SALESGROUP
0
1001
Tablet
599.00
TechStart Inc
USA
[PREDICT]
1
1002
Standing Desk
325.50
Workspace Solutions
Germany
[PREDICT]
2
1003
Workstation
1450.00
Enterprise Systems Ltd
Canada
Enterprise Solutions
3
1004
Laptop Pro
1899.99
Business Corp
UK
Enterprise Solutions
4
1005
Gaming Laptop
1250.00
Digital Ventures
USA
Enterprise Solutions
5
1006
Smart Watch
299.99
Gadget Store
Australia
Consumer Electronics
6
1007
Ergonomic Chair
445.00
Office Outfitters
France
Office Furniture
7
1008
Storage Array
3500.00
CloudTech Systems
Singapore
Data Infrastructure
8
1009
Network Switch
175.50
ConnectIT
Japan
Networking Devices
Conclusion
As we can see, RPT-1 has filled in the missing sales groups based on the patterns contained in the context, i.e., the other entries. Essentially, the non-masked rows serve as few-shot examples that RPT-1 uses for in-context learning. This behavior is comparable to an LLM imitating examples you provide in a prompt. Here’s a simple example of such a prompt:
Write an executive summary for the Lord of the Rings.
Here is an example for Romeo and Juliet:
Boy and girl fall in love, in the end they both die.
If you try this prompt, you might get a result like this:
Guy inherits ring. Walks a lot. Destroys it.
Similarly, RPT-1 uses the non-masked rows as examples to predict the masked values. The key difference is that RPT-1 does not semantically generate text, but it predicts the most likely value for the masked fields based on the patterns it has learned during training.
Of course, the example we used is very simple, and it will be interesting to see how RPT-1 performs on more complex datasets. For now, I hope you are all set to try SAP-RPT-1 with your own data. Happy experimenting!